{"version":3,"sources":["webpack:///./node_modules/ag-grid-community/dist/lib/rendering/columnHoverService.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellEditors/selectCellEditor.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/beans.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/checkboxSelectionComponent.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/overlays/overlayWrapperComponent.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/dndSourceComp.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellEditors/popupEditorWrapper.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/detailRowCompCache.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellEditors/popupSelectCellEditor.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellEditors/textCellEditor.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/maxDivHeightScaler.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/overlays/noRowsOverlayComponent.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/autoWidthCalculator.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellRenderers/loadingCellRenderer.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellEditors/popupTextCellEditor.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellRenderers/animateShowChangeCellRenderer.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellComp.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/overlays/loadingOverlayComponent.js","webpack:///./node_modules/ag-grid-community/dist/lib/propertyKeys.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellRenderers/groupCellRenderer.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/features/setLeftFeature.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellEditors/largeTextCellEditor.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellRenderers/animateSlideCellRenderer.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/autoHeightCalculator.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/columnAnimationService.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/cellRendererFactory.js"],"names":["__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","k","v","metadata","exports","value","eventService_1","context_1","events_1","beanStub_1","columnApi_1","gridApi_1","ColumnHoverService","_super","apply","setMouseOver","columns","selectedColumns","event","type","Events","EVENT_COLUMN_HOVER_CHANGED","api","gridApi","columnApi","eventService","dispatchEvent","clearMouseOver","isHovered","column","indexOf","Autowired","EventService","ColumnApi","GridApi","Bean","BeanStub","popupComponent_1","constants_1","gridOptionsWrapper_1","valueFormatterService_1","utils_1","SelectCellEditor","_this","call","eSelect","getGui","querySelector","init","params","focusAfterAttached","cellStartedEdit","_","missing","values","console","warn","forEach","option","document","createElement","valueFormatted","valueFormatterService","formatValue","valueFormattedExits","undefined","text","selected","appendChild","gridOptionsWrapper","isFullRowEdit","addDestroyableEventListener","stopEditing","isNavigationKey","keyCode","Constants","KEY_UP","KEY_DOWN","stopPropagation","afterGuiAttached","focus","focusIn","getValue","isPopup","GridOptionsWrapper","ValueFormatterService","PopupComponent","columnController_1","expressionService_1","rowRenderer_1","templateService_1","valueService_1","columnAnimationService_1","focusedCellController_1","cellRendererFactory_1","popupService_1","stylingService_1","columnHoverService_1","paginationProxy_1","animationFrameService_1","userComponentFactory_1","dragAndDropService_1","sortController_1","filterManager_1","maxDivHeightScaler_1","tooltipManager_1","detailRowCompCache_1","cellPosition_1","rowPosition_1","Beans","registerGridComp","gridPanel","postConstruct","doingMasterDetail","isMasterDetail","PaginationProxy","Context","ExpressionService","RowRenderer","TemplateService","ValueService","ColumnController","ColumnAnimationService","Optional","FocusedCellController","CellRendererFactory","PopupService","StylingService","Boolean","UserComponentFactory","AnimationFrameService","DragAndDropService","SortController","FilterManager","MaxDivHeightScaler","TooltipManager","DetailRowCompCache","CellPositionUtils","RowPositionUtils","PostConstruct","Function","component_1","rowNode_1","CheckboxSelectionComponent","createAndAddIcons","eCheckedIcon","createIconNoSpan","eUncheckedIcon","eIndeterminateIcon","element","onDataChanged","onSelectionChanged","onSelectableChanged","showOrHideSelect","state","rowNode","isSelected","setDisplayed","onCheckedClicked","groupSelectsFiltered","isGroupSelectsFiltered","updatedCount","setSelectedParams","newValue","onUncheckedClicked","rangeSelect","shiftKey","onIndeterminateClicked","result","addGuiEventListener","stopPropagationForAgGrid","bind","RowNode","EVENT_ROW_SELECTED","EVENT_DATA_CHANGED","EVENT_SELECTABLE_CHANGED","isRowSelectableFunc","getIsRowSelectableFunc","checkboxVisibleIsDynamic","checkboxCallbackExists","EVENT_DISPLAYED_COLUMNS_CHANGED","selectable","isCellCheckboxSelection","colDef","getColDef","checkboxSelection","Component","LoadingType","componentAnnotations_1","OverlayWrapperComponent","TEMPLATE","addLayoutElement","eOverlayWrapper","setWrapperTypeClass","loadingType","addOrRemoveCssClass","Loading","NoRows","showLoadingOverlay","destroyActiveOverlay","getApi","userComponentFactory","newLoadingOverlayComponent","then","comp","activeOverlay","showNoRowsOverlay","newNoRowsOverlayComponent","destroy","clearElement","hideOverlay","RefSelector","HTMLElement","DndSourceComp","cellValue","beans","eCell","eGui","addDragSource","checkVisibility","onDragStart","dragEvent","providedOnRowDrag","dndSourceOnRowDrag","isIE","isBrowserIE","dataTransfer","setDragImage","defaultOnRowDrag","jsonData","JSON","stringify","data","setData","e","visible","isDndSource","PopupEditorWrapper","cellEditor","getGuiCalledOnChild","onKeyDown","isUserSuppressingKeyboardEvent","node","setDomData","DOM_KEY_POPUP_EDITOR_WRAPPER","addDestroyFunc","isCancelBeforeStart","isCancelAfterEnd","focusOut","column_1","cacheItems","active","isKeepDetailRows","maxCacheSize","getKeepDetailRowsCount","addOrDestroy","pinned","doNotUseCache","detail","destroyFullWidthRow","item","getCacheItem","Column","PINNED_LEFT","left","PINNED_RIGHT","right","center","sort","a","lastAccessedTime","purgeCache","autoCreate","res","push","stampCacheItem","Date","getTime","startIndex","get","PreDestroy","selectCellEditor_1","PopupSelectCellEditor","TextCellEditor","eInput","startValue","keyPressBackspaceOrDelete","keyPress","KEY_BACKSPACE","KEY_DELETE","charPress","getStartValue","KEY_F2","highlightAllOnFocus","exists","pageUp","KEY_PAGE_UP","pageDown","KEY_PAGE_DOWN","preventDefault","select","length_1","setSelectionRange","parseValue","useFormatter","refData","eventKeys_1","scrollY","uiBodyHeight","EVENT_BODY_HEIGHT_CHANGED","updateOffset","scrollBarWidth","getScrollbarWidth","maxDivHeight","getMaxDivHeight","isScaling","scaling","getOffset","offset","newScrollY","getVScrollPosition","top","newBodyHeight","getUiBodyHeight","atLeastOneChanged","calculateOffset","uiContainerHeight","pixelsToShave","modelHeight","maxScrollY","scrollPercent","setOffset","clearOffset","newOffset","newOffsetFloor","Math","floor","EVENT_HEIGHT_SCALE_CHANGED","setModelHeight","getUiContainerHeight","getRealPixelPosition","modelPixel","pos","bottom","getScrollPositionForPixel","rowTop","modelMaxScroll","scrollPixel","NoRowsOverlayComponent","template","getOverlayNoRowsTemplate","DEFAULT_NO_ROWS_TEMPLATE","localeTextFunc","getLocaleTextFunc","localisedTemplate","replace","setTemplate","headerWrapperComp_1","AutoWidthCalculator","registerHeaderRootComp","headerRootComp","getPreferredWidthForColumn","eHeaderCell","getHeaderCellForColumn","eDummyContainer","style","position","eBodyContainer","getCenterContainer","putRowCellsIntoDummyContainer","cloneItemIntoDummy","dummyContainerWidth","offsetWidth","removeChild","autoSizePadding","getAutoSizePadding","forEachHeaderElement","headerElement","HeaderWrapperComp","headerWrapperComp","getColumn","eCells","rowRenderer","getAllCellsForColumn","eCellClone","cloneNode","width","eCloneParent","display","LoadingCellRenderer","eLoadingIcon","eLoadingText","innerText","refresh","textCellEditor_1","PopupTextCellEditor","ARROW_UP","ARROW_DOWN","AnimateShowChangeCellRenderer","refreshCount","eValue","queryForHtmlElement","eDelta","showDelta","delta","absDelta","abs","valueToUse","deltaUp","innerHTML","setTimerToRemoveDelta","refreshCountCopy","window","setTimeout","hideDeltaValue","removeCssClass","lastValue","filterManager","isSuppressFlashingCellsBecauseFiltering","addCssClass","__assign","assign","t","s","n","checkboxSelectionComponent_1","iRangeController_1","rowDragComp_1","popupEditorWrapper_1","dndSourceComp_1","CellComp","scope","rowComp","autoHeightCell","printLayout","editingCell","suppressRefreshCell","cellEditorVersion","cellRendererVersion","createGridCellVo","rangeSelectionEnabled","isEnableRangeSelection","cellFocused","focusedCellController","isCellFocused","cellPosition","firstRightPinned","isFirstRightPinned","lastLeftPinned","isLastLeftPinned","rangeController","rangeCount","getCellRangeCount","hasChartRange","getCellRanges","every","range","getValueAndFormat","setUsingWrapper","chooseCellRenderer","setupColSpan","rowSpan","getRowSpan","getCreateTemplate","unselectable","isEnableCellTextSelection","templateParts","col","getCellWidth","modifyLeftForPrintLayout","getCellLeft","valueToRender","getInitialValueToRender","valueSanitised","escape","tooltip","getToolTip","tooltipSanitised","colIdSanitised","getId","wrapperStartTemplate","wrapperEndTemplate","stylesFromColDef","preProcessStylesFromColDef","cssClasses","getInitialCssClasses","stylesForRowSpanning","getStylesForRowSpanning","usingWrapper","getCompId","join","isEnableBrowserTooltips","singleRowHeight","getRowHeightAsNumber","totalRowHeight","afterAttached","eParentRow","setGui","addDomData","populateTemplate","createCellRendererInstance","angular1Compile","shouldHaveSelectionHandle","addSelectionHandle","tooltipManager","registerTooltip","onColumnHover","columnHoverService","onCellChanged","eventImpactsThisCell","refreshCell","mostLeftCol","isEnableRtl","colsSpanning","last","getLeft","getActualWidth","onFlashCells","cellId","cellPositionUtils","createId","shouldFlash","cells","animateCell","getComponentHolder","colSpan","onDisplayColumnsChanged","EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED","onWidthChanged","getColSpanningList","getColSpan","pointer","getPinned","columnController","getDisplayedColAfter","compareArrays","onLeftChanged","doingFocusCss","isSuppressCellSelection","pushAll","preProcessClassesFromColDef","preProcessCellClassRules","getInitialRangeClasses","usingCellRenderer","cellRendererGui","templateUrl","templateService","getTemplate","getValueToUse","getRenderedRow","isSuppressNavigable","getCellRenderer","cellRenderer","getCellEditor","newData","suppressFlash","suppressCellFlash","forceRefresh","oldValue","valuesDifferent","valuesAreEqual","dataNeedsUpdating","cellRendererRefreshed","attemptCellRendererRefresh","replaceContentsAfterRefresh","processingFilterChange","flashCell","isEnableCellChangeFlash","enableCellChangeFlash","postProcessStylesFromColDef","postProcessClassesFromColDef","updateAngular1ScopeAndCompile","refreshToolTip","postProcessCellClassRules","cssName","fullName","animationFullName","eParentOfValue","putDataIntoCellAfterRefresh","isAngularCompileRows","classList","contains","childElementCount","compiledElement_1","$compile","remove","stylesToUse","processStylesFromColDef","addStylesToElement","cssStyleObjectToMarkup","cellStyle","cssToUse","cellStyleParams","$scope","context","getContext","cellStyleFunc","processClassesFromColDef","className","onApplicableClass","stylingService","processStaticCellClasses","rowIndex","getColumnApi","createCellRendererParams","finalParams","createFinalParams","cellRendererType","newTooltip","hasNewTooltip","hadTooltip","toString","setAttribute","removeAttribute","unregisterTooltip","val1","val2","equalsMethod","equals","tooltipField","getValueUsingField","isTooltipFieldContainsDots","valueGetter","tooltipValueGetter","getTooltipText","processCellClassRules","onNotApplicableClass","processClassRules","cellClassRules","rowPinned","includeSelectionComponent","includeRowDraggingComponent","includeDndSourceComponent","cbSelectionIsFunc","rowDraggableIsFunc","rowDrag","dndSourceIsFunc","dndSource","lookupComponentClassDef","pinnedRowCellRenderer","CELL_RENDERER_TYPE_PINNED","CELL_RENDERER_TYPE_NORMAL","useTaskService","angularCompileRows","suppressAnimationFrame","isSuppressAnimationFrame","callback","afterCellRendererCreated","cellRendererTypeNormal","task","componentPromise","newCellRenderer","newPinnedRowCellRenderer","taskQueue","addP2Task","isAlive","setValue","valueService","eGridCell","addRowCompListener","addEventListener","addRenderedRowListener","eventType","listener","valueFormattedExists","lockedClosedGroup","leafGroup","isPivotMode","isOpenGroup","group","expanded","footer","groupFootersEnabled","isGroupIncludeFooter","groupAlwaysShowAggData","isGroupSuppressBlankHeader","ignoreAggData","onMouseEvent","eventName","mouseEvent","isStopPropagationForAgGrid","onCellClicked","onMouseDown","onCellDoubleClicked","onMouseOut","onMouseOver","dispatchCellContextMenuEvent","cellContextMenuEvent","createEvent","EVENT_CELL_CONTEXT_MENU","onCellContextMenu","domEvent","cellMouseOutEvent","EVENT_CELL_MOUSE_OUT","cellMouseOverEvent","EVENT_CELL_MOUSE_OVER","cellDoubleClickedEvent","EVENT_CELL_DOUBLE_CLICKED","editOnDoubleClick","isSingleClickEdit","isSuppressClickEdit","startRowOrCellEdit","startRowEditing","startEditingIfEnabled","isCellEditable","afterCellEditorCreated","createCellEditorParams","createCellEditor","cellEditorAsync","focusCell","cellEditorPromise","newCellEditor","map","popupEditorWrapper","wireBean","versionMismatch","render","cellEditorInPopup","setInlineEditingClass","addPopupCellEditor","addInCellEditor","EVENT_CELL_EDITING_STARTED","ePopupGui","hideEditorPopup","popupService","addAsModalPopup","onPopupEditorClosed","positionPopupOverComponent","eventSource","ePopup","keepWithinBounds","stopRowOrCellEdit","editingInline","popupEditorShowing","parentNode","stopEditingAndFocus","suppressNavigateAfterEdit","navigateAfterEdit","valueParser","expressionService","evaluate","forceBrowserFocus","setFocusedCell","setFocusInOnEditor","isEditing","which","KEY_ENTER","onEnterKeyDown","onF2KeyDown","KEY_ESCAPE","onEscapeKeyDown","KEY_TAB","onTabKeyDown","onBackspaceOrDeleteKeyPressed","KEY_RIGHT","KEY_LEFT","onNavigationKeyPressed","setFocusOutOnEditor","onShiftRangeSelect","navigateToNextCell","endCell","extendLatestRangeInDirection","ensureCellVisible","isEnterMovesDown","fullRowEdit","enterMovesDownAfterEdit","isEnterMovesDownAfterEdit","onKeyPress","eventTarget","getTarget","eventOnChildComponent","pressedChar","String","fromCharCode","charCode","onSpaceKeyPressed","isEventFromPrintableCharacter","isRowSelection","setSelected","button","ctrlKey","metaKey","_a","cellInRange","isCellInAnyRange","getCellPosition","isElementChildOfClass","leftMouseButtonClick","isLeftClick","thisCell","extendLatestRangeToCell","ctrlKeyPressed","setRangeToCell","cellMouseDownEvent","EVENT_CELL_MOUSE_DOWN","isDoubleClickOnIPad","isUserAgentIPad","nowMillis","lastIPadMouseClickEvent","cellClickedEvent","EVENT_CELL_CLICKED","editOnSingleClick","singleClickEdit","doIeFocusHack","getParentRow","setParentRow","detach","selectionHandle","leftPosition","leftWidth_1","getPinnedLeftContainerWidth","bodyWidth","getBodyContainerWidth","leftWidth","getRangeBorders","leftCol","rightCol","isRtl","thisCol","getDisplayedColBefore","ranges","filter","isCellInSpecificRange","startRow","getRangeStartRow","endRow","getRangeEndRow","rowPositionUtils","sameRow","count","min","isMoreThanOneCell","borders","onRowIndexChanged","onCellFocused","onRangeSelectionChanged","enterprise","newRangeCount","updateRangeBorders","isSingleCell","refreshHandle","el","cellRanges","rangesLen","lastRange","isFirstRangeCategory","CellRangeType","DIMENSION","handlesAllowed","isEnableFillHandle","isEnableRangeHandle","isCategory","isContiguousRange","containsClass","cellRangeType","getType","createComponentFromElement","updateRangeBordersIfRangeCount","rangeBorders","isTop","isRight","isBottom","isLeft","onFirstRightPinnedChanged","onLastLeftPinnedChanged","getRefElement","eCellWrapper","addRowDragging","addDndSource","addSelectionCheckbox","getFrameworkOverrides","frameworkOverrides","pagination","isPagination","rowDragManaged","isRowDragManaged","clientSideRowModelActive","isRowModelDefault","doOnce","rowDraggingComp","RowDragComp","addFeature","insertBefore","dndSourceComp","cbSelectionComponent","visibleFunc","DOM_DATA_KEY_CELL_COMP","cancel","stopRowEditing","newValueExists","userWantsToCancel","setDataValue","EVENT_CELL_EDITING_STOPPED","LoadingOverlayComponent","getOverlayLoadingTemplate","DEFAULT_LOADING_OVERLAY_TEMPLATE","PropertyKeys","STRING_PROPERTIES","OBJECT_PROPERTIES","ARRAY_PROPERTIES","NUMBER_PROPERTIES","BOOLEAN_PROPERTIES","FUNCTION_PROPERTIES","ALL_PROPERTIES","concat","FRAMEWORK_PROPERTIES","mouseEventService_1","GroupCellRenderer","isGroupIncludeTotalFooter","assignBlankValueToGroupFooterCell","embeddedRowMismatch","isEmbeddedRowMismatch","cellIsEmpty","cellIsBlank","setupDragOpenParents","addExpandAndContract","addCheckboxIfNeeded","addValueElement","setupIndent","level","fullWidth","isEmbedFullWidthRows","pinnedLeftCell","pinnedRightCell","bodyCell","isPinningLeft","setIndent","isGroupHideOpenParents","paddingCount","uiLevel","userProvidedPaddingPixelsTheDeprecatedWay","padding","setPaddingDeprecatedWay","indentClass","paddingPx","paddingRight","paddingLeft","suppressPadding","EVENT_UI_LEVEL_CHANGED","displayedGroup","createFooterCell","hasChildren","createGroupCell","addChildCount","createLeafCell","footerValue","footerValueGetter","paramsClone","cloneObject","rendererPromise","rowGroupColumn","columnToUse","groupName","useFullWidth","useInnerRenderer","cellRendererParams","innerCellRenderer","groupCellRendererParams","groupedColumnDef","cellRendererPromise","groupInnerRendererClass","component","source","ComponentSource","DEFAULT","newInnerCellRenderer","groupColumnRendererClass","rendererToUse","bindCellRendererToHtmlElement","newFullWidthGroupRowInnerCellRenderer","suppressCount","EVENT_ALL_CHILDREN_COUNT_CHANGED","updateChildCount","allChildrenCount","eChildCount","isUserWantsSelected","paramsCheckbox","checkbox","checkboxNeeded","cbSelectionComponent_1","eCheckbox","eGroupCell","eExpandedIcon","eContractedIcon","eExpanded","eContracted","onExpandClicked","EVENT_EXPANDED_CHANGED","showExpandAndContractIcons","onAllChildrenCountChanged","isEnableGroupEdit","isExpandable","suppressDoubleClickExpand","onCellDblClicked","enterKeyPressed","isKeyPressed","suppressEnterExpand","cellEditable","onExpandOrContract","draggedFromHideOpenParents","isRowGroupDisplayed","parent","targetIsExpandIcon","isElementInEventPath","setExpanded","reducedLeafNode","pivotModeAndLeafGroup","notExpandable","addLeafIndentClass","MouseEventService","SetLeftFeature","columnOrGroup","getDomLayout","DOM_LAYOUT_PRINT","setColsSpanning","getColumnOrGroup","EVENT_LEFT_CHANGED","setLeftFirstTime","suppressMoveAnimation","isSuppressColumnMoveAnimation","oldLeftExists","getOldLeft","animateColumnMove","columnAnimationService","isActive","animateInLeft","oldLeft","setLeft","actualLeft","executeNextVMTurn","colOrGroup","LargeTextCellEditor","textarea","maxLength","cols","rows","AnimateSlideCellRenderer","eCurrent","addSlideAnimation","ePrevious","loadTemplate","beans_1","cellComp_1","AutoHeightCalculator","getPreferredHeightForRow","cellComps","autoRowHeightCols","getAllAutoRowHeightCols","visibleAutoRowHeightCols","isVisible","cellComp","maxCellHeight","children","child","offsetHeight","executeNextFuncs","executeLaterFuncs","animationThreadCount","start","ensureAnimationCssClassPresent","finish","flush","func","executeLaterVMTurn","animationThreadCountCopy","setColumnMovingCss","nowFuncs","waitFuncs","animateSlideCellRenderer_1","animateShowChangeCellRenderer_1","groupCellRenderer_1","cellRendererMap","CellRendererFactory_1","ANIMATE_SLIDE","ANIMATE_SHOW_CHANGE","GROUP","addCellRenderer"],"mappings":"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","file":"js/chunk-vendors~3ce17f82.658b2009.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})();\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 eventService_1 = require(\"../eventService\");\nvar context_1 = require(\"../context/context\");\nvar events_1 = require(\"../events\");\nvar beanStub_1 = require(\"../context/beanStub\");\nvar columnApi_1 = require(\"../columnController/columnApi\");\nvar gridApi_1 = require(\"../gridApi\");\nvar ColumnHoverService = /** @class */ (function (_super) {\n __extends(ColumnHoverService, _super);\n function ColumnHoverService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnHoverService.prototype.setMouseOver = function (columns) {\n this.selectedColumns = columns;\n var event = {\n type: events_1.Events.EVENT_COLUMN_HOVER_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnHoverService.prototype.clearMouseOver = function () {\n this.selectedColumns = null;\n var event = {\n type: events_1.Events.EVENT_COLUMN_HOVER_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnHoverService.prototype.isHovered = function (column) {\n return this.selectedColumns && this.selectedColumns.indexOf(column) >= 0;\n };\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], ColumnHoverService.prototype, \"eventService\", void 0);\n __decorate([\n context_1.Autowired('columnApi'),\n __metadata(\"design:type\", columnApi_1.ColumnApi)\n ], ColumnHoverService.prototype, \"columnApi\", void 0);\n __decorate([\n context_1.Autowired('gridApi'),\n __metadata(\"design:type\", gridApi_1.GridApi)\n ], ColumnHoverService.prototype, \"gridApi\", void 0);\n ColumnHoverService = __decorate([\n context_1.Bean('columnHoverService')\n ], ColumnHoverService);\n return ColumnHoverService;\n}(beanStub_1.BeanStub));\nexports.ColumnHoverService = ColumnHoverService;\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 popupComponent_1 = require(\"../../widgets/popupComponent\");\nvar constants_1 = require(\"../../constants\");\nvar context_1 = require(\"../../context/context\");\nvar gridOptionsWrapper_1 = require(\"../../gridOptionsWrapper\");\nvar valueFormatterService_1 = require(\"../valueFormatterService\");\nvar utils_1 = require(\"../../utils\");\nvar SelectCellEditor = /** @class */ (function (_super) {\n __extends(SelectCellEditor, _super);\n function SelectCellEditor() {\n var _this = _super.call(this, '
';\n return TextCellEditor;\n}(popupComponent_1.PopupComponent));\nexports.TextCellEditor = TextCellEditor;\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 beanStub_1 = require(\"../context/beanStub\");\nvar context_1 = require(\"../context/context\");\nvar eventService_1 = require(\"../eventService\");\nvar eventKeys_1 = require(\"../eventKeys\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar utils_1 = require(\"../utils\");\n/**\n * This class solves the 'max height' problem, where the user might want to show more data than\n * the max div height actually allows.\n */\nvar MaxDivHeightScaler = /** @class */ (function (_super) {\n __extends(MaxDivHeightScaler, _super);\n function MaxDivHeightScaler() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // the scrollY position\n _this.scrollY = 0;\n // how tall the body is\n _this.uiBodyHeight = 0;\n return _this;\n }\n MaxDivHeightScaler.prototype.postConstruct = function () {\n this.addDestroyableEventListener(this.eventService, eventKeys_1.Events.EVENT_BODY_HEIGHT_CHANGED, this.updateOffset.bind(this));\n this.scrollBarWidth = this.gridOptionsWrapper.getScrollbarWidth();\n this.maxDivHeight = utils_1._.getMaxDivHeight();\n };\n MaxDivHeightScaler.prototype.registerGridComp = function (gridPanel) {\n this.gridPanel = gridPanel;\n };\n MaxDivHeightScaler.prototype.isScaling = function () {\n return this.scaling;\n };\n MaxDivHeightScaler.prototype.getOffset = function () {\n return this.offset;\n };\n MaxDivHeightScaler.prototype.updateOffset = function () {\n if (!this.scaling) {\n return;\n }\n var newScrollY = this.gridPanel.getVScrollPosition().top;\n var newBodyHeight = this.getUiBodyHeight();\n var atLeastOneChanged = newScrollY !== this.scrollY || newBodyHeight !== this.uiBodyHeight;\n if (atLeastOneChanged) {\n this.scrollY = newScrollY;\n this.uiBodyHeight = newBodyHeight;\n this.calculateOffset();\n }\n };\n MaxDivHeightScaler.prototype.calculateOffset = function () {\n this.uiContainerHeight = this.maxDivHeight;\n this.pixelsToShave = this.modelHeight - this.uiContainerHeight;\n this.maxScrollY = this.uiContainerHeight - this.uiBodyHeight;\n var scrollPercent = this.scrollY / this.maxScrollY;\n this.setOffset(scrollPercent * this.pixelsToShave);\n };\n MaxDivHeightScaler.prototype.clearOffset = function () {\n this.uiContainerHeight = this.modelHeight;\n this.pixelsToShave = 0;\n this.setOffset(0);\n };\n MaxDivHeightScaler.prototype.setOffset = function (newOffset) {\n // because we are talking pixels, no point in confusing things with half numbers\n var newOffsetFloor = typeof newOffset === 'number' ? Math.floor(newOffset) : null;\n if (this.offset === newOffsetFloor) {\n return;\n }\n this.offset = newOffsetFloor;\n this.eventService.dispatchEvent({ type: eventKeys_1.Events.EVENT_HEIGHT_SCALE_CHANGED });\n };\n MaxDivHeightScaler.prototype.setModelHeight = function (modelHeight) {\n this.modelHeight = modelHeight;\n this.scaling = this.maxDivHeight > 0 && modelHeight > this.maxDivHeight;\n if (this.scaling) {\n this.calculateOffset();\n }\n else {\n this.clearOffset();\n }\n };\n MaxDivHeightScaler.prototype.getUiContainerHeight = function () {\n return this.uiContainerHeight;\n };\n MaxDivHeightScaler.prototype.getRealPixelPosition = function (modelPixel) {\n return modelPixel - this.offset;\n };\n MaxDivHeightScaler.prototype.getUiBodyHeight = function () {\n var pos = this.gridPanel.getVScrollPosition();\n return pos.bottom - pos.top;\n };\n MaxDivHeightScaler.prototype.getScrollPositionForPixel = function (rowTop) {\n if (this.pixelsToShave <= 0) {\n return rowTop;\n }\n var modelMaxScroll = this.modelHeight - this.getUiBodyHeight();\n var scrollPercent = rowTop / modelMaxScroll;\n var scrollPixel = this.maxScrollY * scrollPercent;\n return scrollPixel;\n };\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], MaxDivHeightScaler.prototype, \"eventService\", void 0);\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], MaxDivHeightScaler.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 ], MaxDivHeightScaler.prototype, \"postConstruct\", null);\n MaxDivHeightScaler = __decorate([\n context_1.Bean('maxDivHeightScaler')\n ], MaxDivHeightScaler);\n return MaxDivHeightScaler;\n}(beanStub_1.BeanStub));\nexports.MaxDivHeightScaler = MaxDivHeightScaler;\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 gridOptionsWrapper_1 = require(\"../../gridOptionsWrapper\");\nvar context_1 = require(\"../../context/context\");\nvar component_1 = require(\"../../widgets/component\");\nvar NoRowsOverlayComponent = /** @class */ (function (_super) {\n __extends(NoRowsOverlayComponent, _super);\n function NoRowsOverlayComponent() {\n return _super.call(this) || this;\n }\n NoRowsOverlayComponent.prototype.init = function (params) {\n var template = this.gridOptionsWrapper.getOverlayNoRowsTemplate() ?\n this.gridOptionsWrapper.getOverlayNoRowsTemplate() : NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var localisedTemplate = template.replace('[NO_ROWS_TO_SHOW]', localeTextFunc('noRowsToShow', 'No Rows To Show'));\n this.setTemplate(localisedTemplate);\n };\n NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE = '[NO_ROWS_TO_SHOW]';\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], NoRowsOverlayComponent.prototype, \"gridOptionsWrapper\", void 0);\n return NoRowsOverlayComponent;\n}(component_1.Component));\nexports.NoRowsOverlayComponent = NoRowsOverlayComponent;\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 rowRenderer_1 = require(\"./rowRenderer\");\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar headerWrapperComp_1 = require(\"../headerRendering/header/headerWrapperComp\");\nvar AutoWidthCalculator = /** @class */ (function () {\n function AutoWidthCalculator() {\n }\n AutoWidthCalculator.prototype.registerGridComp = function (gridPanel) {\n this.gridPanel = gridPanel;\n };\n AutoWidthCalculator.prototype.registerHeaderRootComp = function (headerRootComp) {\n this.headerRootComp = headerRootComp;\n };\n // this is the trick: we create a dummy container and clone all the cells\n // into the dummy, then check the dummy's width. then destroy the dummy\n // as we don't need it any more.\n // drawback: only the cells visible on the screen are considered\n AutoWidthCalculator.prototype.getPreferredWidthForColumn = function (column) {\n var eHeaderCell = this.getHeaderCellForColumn(column);\n // cell isn't visible\n if (!eHeaderCell) {\n return -1;\n }\n var eDummyContainer = document.createElement('span');\n // position fixed, so it isn't restricted to the boundaries of the parent\n eDummyContainer.style.position = 'fixed';\n // we put the dummy into the body container, so it will inherit all the\n // css styles that the real cells are inheriting\n var eBodyContainer = this.gridPanel.getCenterContainer();\n eBodyContainer.appendChild(eDummyContainer);\n // get all the cells that are currently displayed (this only brings back\n // rendered cells, rows not rendered due to row visualisation will not be here)\n this.putRowCellsIntoDummyContainer(column, eDummyContainer);\n // also put header cell in\n // we only consider the lowest level cell, not the group cell. in 99% of the time, this\n // will be enough. if we consider groups, then it gets to complicated for what it's worth,\n // as the groups can span columns and this class only considers one column at a time.\n this.cloneItemIntoDummy(eHeaderCell, eDummyContainer);\n // at this point, all the clones are lined up vertically with natural widths. the dummy\n // container will have a width wide enough just to fit the largest.\n var dummyContainerWidth = eDummyContainer.offsetWidth;\n // we are finished with the dummy container, so get rid of it\n eBodyContainer.removeChild(eDummyContainer);\n // we add padding as I found sometimes the gui still put '...' after some of the texts. so the\n // user can configure the grid to add a few more pixels after the calculated width\n var autoSizePadding = this.gridOptionsWrapper.getAutoSizePadding();\n return dummyContainerWidth + autoSizePadding;\n };\n AutoWidthCalculator.prototype.getHeaderCellForColumn = function (column) {\n var comp = null;\n // find the rendered header cell\n this.headerRootComp.forEachHeaderElement(function (headerElement) {\n if (headerElement instanceof headerWrapperComp_1.HeaderWrapperComp) {\n var headerWrapperComp = headerElement;\n if (headerWrapperComp.getColumn() === column) {\n comp = headerWrapperComp;\n }\n }\n });\n return comp ? comp.getGui() : null;\n };\n AutoWidthCalculator.prototype.putRowCellsIntoDummyContainer = function (column, eDummyContainer) {\n var _this = this;\n var eCells = this.rowRenderer.getAllCellsForColumn(column);\n eCells.forEach(function (eCell) { return _this.cloneItemIntoDummy(eCell, eDummyContainer); });\n };\n AutoWidthCalculator.prototype.cloneItemIntoDummy = function (eCell, eDummyContainer) {\n // make a deep clone of the cell\n var eCellClone = eCell.cloneNode(true);\n // the original has a fixed width, we remove this to allow the natural width based on content\n eCellClone.style.width = '';\n // the original has position = absolute, we need to remove this so it's positioned normally\n eCellClone.style.position = 'static';\n eCellClone.style.left = '';\n // we put the cell into a containing div, as otherwise the cells would just line up\n // on the same line, standard flow layout, by putting them into divs, they are laid\n // out one per line\n var eCloneParent = document.createElement('div');\n // table-row, so that each cell is on a row. i also tried display='block', but this\n // didn't work in IE\n eCloneParent.style.display = 'table-row';\n // the twig on the branch, the branch on the tree, the tree in the hole,\n // the hole in the bog, the bog in the clone, the clone in the parent,\n // the parent in the dummy, and the dummy down in the vall-e-ooo, OOOOOOOOO! Oh row the rattling bog....\n eCloneParent.appendChild(eCellClone);\n eDummyContainer.appendChild(eCloneParent);\n };\n __decorate([\n context_1.Autowired('rowRenderer'),\n __metadata(\"design:type\", rowRenderer_1.RowRenderer)\n ], AutoWidthCalculator.prototype, \"rowRenderer\", void 0);\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], AutoWidthCalculator.prototype, \"gridOptionsWrapper\", void 0);\n AutoWidthCalculator = __decorate([\n context_1.Bean('autoWidthCalculator')\n ], AutoWidthCalculator);\n return AutoWidthCalculator;\n}());\nexports.AutoWidthCalculator = AutoWidthCalculator;\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 context_1 = require(\"../../context/context\");\nvar component_1 = require(\"../../widgets/component\");\nvar gridOptionsWrapper_1 = require(\"../../gridOptionsWrapper\");\nvar componentAnnotations_1 = require(\"../../widgets/componentAnnotations\");\nvar utils_1 = require(\"../../utils\");\nvar LoadingCellRenderer = /** @class */ (function (_super) {\n __extends(LoadingCellRenderer, _super);\n function LoadingCellRenderer() {\n return _super.call(this, LoadingCellRenderer.TEMPLATE) || this;\n }\n LoadingCellRenderer.prototype.init = function (params) {\n var eLoadingIcon = utils_1._.createIconNoSpan('groupLoading', this.gridOptionsWrapper, null);\n this.eLoadingIcon.appendChild(eLoadingIcon);\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eLoadingText.innerText = localeTextFunc('loadingOoo', 'Loading');\n };\n LoadingCellRenderer.prototype.refresh = function (params) {\n return false;\n };\n LoadingCellRenderer.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], LoadingCellRenderer.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eLoadingIcon'),\n __metadata(\"design:type\", HTMLElement)\n ], LoadingCellRenderer.prototype, \"eLoadingIcon\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eLoadingText'),\n __metadata(\"design:type\", HTMLElement)\n ], LoadingCellRenderer.prototype, \"eLoadingText\", void 0);\n return LoadingCellRenderer;\n}(component_1.Component));\nexports.LoadingCellRenderer = LoadingCellRenderer;\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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar textCellEditor_1 = require(\"./textCellEditor\");\nvar PopupTextCellEditor = /** @class */ (function (_super) {\n __extends(PopupTextCellEditor, _super);\n function PopupTextCellEditor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PopupTextCellEditor.prototype.isPopup = function () {\n return true;\n };\n return PopupTextCellEditor;\n}(textCellEditor_1.TextCellEditor));\nexports.PopupTextCellEditor = PopupTextCellEditor;\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 utils_1 = require(\"../../utils\");\nvar filterManager_1 = require(\"../../filter/filterManager\");\nvar context_1 = require(\"../../context/context\");\nvar ARROW_UP = '\\u2191';\nvar ARROW_DOWN = '\\u2193';\nvar AnimateShowChangeCellRenderer = /** @class */ (function (_super) {\n __extends(AnimateShowChangeCellRenderer, _super);\n function AnimateShowChangeCellRenderer() {\n var _this = _super.call(this, AnimateShowChangeCellRenderer.TEMPLATE) || this;\n _this.refreshCount = 0;\n return _this;\n }\n AnimateShowChangeCellRenderer.prototype.init = function (params) {\n // this.params = params;\n this.eValue = this.queryForHtmlElement('.ag-value-change-value');\n this.eDelta = this.queryForHtmlElement('.ag-value-change-delta');\n this.refresh(params);\n };\n AnimateShowChangeCellRenderer.prototype.showDelta = function (params, delta) {\n var absDelta = Math.abs(delta);\n var valueFormatted = params.formatValue(absDelta);\n var valueToUse = utils_1._.exists(valueFormatted) ? valueFormatted : absDelta;\n var deltaUp = (delta >= 0);\n if (deltaUp) {\n this.eDelta.innerHTML = ARROW_UP + valueToUse;\n }\n else {\n // because negative, use ABS to remove sign\n this.eDelta.innerHTML = ARROW_DOWN + valueToUse;\n }\n // class makes it green (in ag-fresh)\n utils_1._.addOrRemoveCssClass(this.eDelta, 'ag-value-change-delta-up', deltaUp);\n // class makes it red (in ag-fresh)\n utils_1._.addOrRemoveCssClass(this.eDelta, 'ag-value-change-delta-down', !deltaUp);\n };\n AnimateShowChangeCellRenderer.prototype.setTimerToRemoveDelta = function () {\n var _this = this;\n // the refreshCount makes sure that if the value updates again while\n // the below timer is waiting, then the below timer will realise it\n // is not the most recent and will not try to remove the delta value.\n this.refreshCount++;\n var refreshCountCopy = this.refreshCount;\n window.setTimeout(function () {\n if (refreshCountCopy === _this.refreshCount) {\n _this.hideDeltaValue();\n }\n }, 2000);\n };\n AnimateShowChangeCellRenderer.prototype.hideDeltaValue = function () {\n utils_1._.removeCssClass(this.eValue, 'ag-value-change-value-highlight');\n utils_1._.clearElement(this.eDelta);\n };\n AnimateShowChangeCellRenderer.prototype.refresh = function (params) {\n var value = params.value;\n if (value === this.lastValue) {\n return;\n }\n if (utils_1._.exists(params.valueFormatted)) {\n this.eValue.innerHTML = params.valueFormatted;\n }\n else if (utils_1._.exists(params.value)) {\n this.eValue.innerHTML = value;\n }\n else {\n utils_1._.clearElement(this.eValue);\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return;\n }\n if (typeof value === 'number' && typeof this.lastValue === 'number') {\n var delta = value - this.lastValue;\n this.showDelta(params, delta);\n }\n // highlight the current value, but only if it's not new, otherwise it\n // would get highlighted first time the value is shown\n if (this.lastValue) {\n utils_1._.addCssClass(this.eValue, 'ag-value-change-value-highlight');\n }\n this.setTimerToRemoveDelta();\n this.lastValue = value;\n return true;\n };\n AnimateShowChangeCellRenderer.TEMPLATE = '' +\n '' +\n '' +\n '';\n __decorate([\n context_1.Autowired('filterManager'),\n __metadata(\"design:type\", filterManager_1.FilterManager)\n ], AnimateShowChangeCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateShowChangeCellRenderer;\n}(component_1.Component));\nexports.AnimateShowChangeCellRenderer = AnimateShowChangeCellRenderer;\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 column_1 = require(\"../entities/column\");\nvar constants_1 = require(\"../constants\");\nvar events_1 = require(\"../events\");\nvar component_1 = require(\"../widgets/component\");\nvar checkboxSelectionComponent_1 = require(\"./checkboxSelectionComponent\");\nvar iRangeController_1 = require(\"../interfaces/iRangeController\");\nvar rowDragComp_1 = require(\"./rowDragComp\");\nvar popupEditorWrapper_1 = require(\"./cellEditors/popupEditorWrapper\");\nvar utils_1 = require(\"../utils\");\nvar dndSourceComp_1 = require(\"./dndSourceComp\");\nvar CellComp = /** @class */ (function (_super) {\n __extends(CellComp, _super);\n function CellComp(scope, beans, column, rowNode, rowComp, autoHeightCell, printLayout) {\n var _this = _super.call(this) || this;\n _this.editingCell = false;\n _this.suppressRefreshCell = false;\n _this.scope = null;\n // every time we go into edit mode, or back again, this gets incremented.\n // it's the components way of dealing with the async nature of framework components,\n // so if a framework component takes a while to be created, we know if the object\n // is still relevant when creating is finished. eg we could click edit / un-edit 20\n // times before the first React edit component comes back - we should discard\n // the first 19.\n _this.cellEditorVersion = 0;\n _this.cellRendererVersion = 0;\n _this.scope = scope;\n _this.beans = beans;\n _this.column = column;\n _this.rowNode = rowNode;\n _this.rowComp = rowComp;\n _this.autoHeightCell = autoHeightCell;\n _this.printLayout = printLayout;\n _this.createGridCellVo();\n _this.rangeSelectionEnabled = beans.gridOptionsWrapper.isEnableRangeSelection();\n _this.cellFocused = _this.beans.focusedCellController.isCellFocused(_this.cellPosition);\n _this.firstRightPinned = _this.column.isFirstRightPinned();\n _this.lastLeftPinned = _this.column.isLastLeftPinned();\n if (_this.rangeSelectionEnabled) {\n var rangeController = _this.beans.rangeController;\n _this.rangeCount = rangeController.getCellRangeCount(_this.cellPosition);\n if (_this.rangeCount) {\n _this.hasChartRange = rangeController.getCellRanges().every(function (range) { return utils_1._.exists(range.type); });\n }\n }\n _this.getValueAndFormat();\n _this.setUsingWrapper();\n _this.chooseCellRenderer();\n _this.setupColSpan();\n _this.rowSpan = _this.column.getRowSpan(_this.rowNode);\n return _this;\n }\n CellComp.prototype.getCreateTemplate = function () {\n var unselectable = !this.beans.gridOptionsWrapper.isEnableCellTextSelection() ? 'unselectable=\"on\"' : '';\n var templateParts = [];\n var col = this.column;\n var width = this.getCellWidth();\n var left = this.modifyLeftForPrintLayout(this.getCellLeft());\n var valueToRender = this.getInitialValueToRender();\n var valueSanitised = utils_1._.get(this.column, 'colDef.template', null) ? valueToRender : utils_1._.escape(valueToRender);\n this.tooltip = this.getToolTip();\n var tooltipSanitised = utils_1._.escape(this.tooltip);\n var colIdSanitised = utils_1._.escape(col.getId());\n var wrapperStartTemplate = '';\n var wrapperEndTemplate = '';\n var stylesFromColDef = this.preProcessStylesFromColDef();\n var cssClasses = this.getInitialCssClasses();\n var stylesForRowSpanning = this.getStylesForRowSpanning();\n if (this.usingWrapper) {\n wrapperStartTemplate = \"
\";\n wrapperEndTemplate = '
';\n }\n templateParts.push(\"\");\n templateParts.push(wrapperStartTemplate);\n if (utils_1._.exists(valueSanitised, true)) {\n templateParts.push(valueSanitised);\n }\n templateParts.push(wrapperEndTemplate);\n templateParts.push(\"\");\n return templateParts.join('');\n };\n CellComp.prototype.getStylesForRowSpanning = function () {\n if (this.rowSpan === 1) {\n return '';\n }\n var singleRowHeight = this.beans.gridOptionsWrapper.getRowHeightAsNumber();\n var totalRowHeight = singleRowHeight * this.rowSpan;\n return \"height: \" + totalRowHeight + \"px; z-index: 1;\";\n };\n CellComp.prototype.afterAttached = function () {\n var querySelector = \"[comp-id=\\\"\" + this.getCompId() + \"\\\"]\";\n var eGui = this.eParentRow.querySelector(querySelector);\n this.setGui(eGui);\n // all of these have dependencies on the eGui, so only do them after eGui is set\n this.addDomData();\n this.populateTemplate();\n this.createCellRendererInstance(true);\n this.angular1Compile();\n // if not doing enterprise, then range selection service would be missing\n // so need to check before trying to use it\n if (this.rangeSelectionEnabled) {\n if (this.shouldHaveSelectionHandle()) {\n this.addSelectionHandle();\n }\n }\n if (utils_1._.exists(this.tooltip) && !this.beans.gridOptionsWrapper.isEnableBrowserTooltips()) {\n this.beans.tooltipManager.registerTooltip(this);\n }\n };\n CellComp.prototype.onColumnHover = function () {\n var isHovered = this.beans.columnHoverService.isHovered(this.column);\n utils_1._.addOrRemoveCssClass(this.getGui(), 'ag-column-hover', isHovered);\n };\n CellComp.prototype.onCellChanged = function (event) {\n var eventImpactsThisCell = event.column === this.column;\n if (eventImpactsThisCell) {\n this.refreshCell({});\n }\n };\n CellComp.prototype.getCellLeft = function () {\n var mostLeftCol;\n if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {\n mostLeftCol = utils_1._.last(this.colsSpanning);\n }\n else {\n mostLeftCol = this.column;\n }\n return mostLeftCol.getLeft();\n };\n CellComp.prototype.getCellWidth = function () {\n if (!this.colsSpanning) {\n return this.column.getActualWidth();\n }\n var result = 0;\n this.colsSpanning.forEach(function (col) { return result += col.getActualWidth(); });\n return result;\n };\n CellComp.prototype.onFlashCells = function (event) {\n var cellId = this.beans.cellPositionUtils.createId(this.cellPosition);\n var shouldFlash = event.cells[cellId];\n if (shouldFlash) {\n this.animateCell('highlight');\n }\n };\n CellComp.prototype.setupColSpan = function () {\n // if no col span is active, then we don't set it up, as it would be wasteful of CPU\n if (utils_1._.missing(this.getComponentHolder().colSpan)) {\n return;\n }\n // because we are col spanning, a reorder of the cols can change what cols we are spanning over\n this.addDestroyableEventListener(this.beans.eventService, events_1.Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayColumnsChanged.bind(this));\n // because we are spanning over multiple cols, we check for width any time any cols width changes.\n // this is expensive - really we should be explicitly checking only the cols we are spanning over\n // instead of every col, however it would be tricky code to track the cols we are spanning over, so\n // because hardly anyone will be using colSpan, am favouring this easier way for more maintainable code.\n this.addDestroyableEventListener(this.beans.eventService, events_1.Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onWidthChanged.bind(this));\n this.colsSpanning = this.getColSpanningList();\n };\n CellComp.prototype.getColSpanningList = function () {\n var colSpan = this.column.getColSpan(this.rowNode);\n var colsSpanning = [];\n // if just one col, the col span is just the column we are in\n if (colSpan === 1) {\n colsSpanning.push(this.column);\n }\n else {\n var pointer = this.column;\n var pinned = this.column.getPinned();\n for (var i = 0; pointer && i < colSpan; i++) {\n colsSpanning.push(pointer);\n pointer = this.beans.columnController.getDisplayedColAfter(pointer);\n if (!pointer || utils_1._.missing(pointer)) {\n break;\n }\n // we do not allow col spanning to span outside of pinned areas\n if (pinned !== pointer.getPinned()) {\n break;\n }\n }\n }\n return colsSpanning;\n };\n CellComp.prototype.onDisplayColumnsChanged = function () {\n var colsSpanning = this.getColSpanningList();\n if (!utils_1._.compareArrays(this.colsSpanning, colsSpanning)) {\n this.colsSpanning = colsSpanning;\n this.onWidthChanged();\n this.onLeftChanged(); // left changes when doing RTL\n }\n };\n CellComp.prototype.getInitialCssClasses = function () {\n var cssClasses = [\"ag-cell\", \"ag-cell-not-inline-editing\"];\n // if we are putting the cell into a dummy container, to work out it's height,\n // then we don't put the height css in, as we want cell to fit height in that case.\n if (!this.autoHeightCell) {\n cssClasses.push('ag-cell-with-height');\n }\n var doingFocusCss = !this.beans.gridOptionsWrapper.isSuppressCellSelection();\n if (doingFocusCss && this.cellFocused) {\n // otherwise the class depends on the focus state\n cssClasses.push('ag-cell-focus');\n }\n if (this.firstRightPinned) {\n cssClasses.push('ag-cell-first-right-pinned');\n }\n if (this.lastLeftPinned) {\n cssClasses.push('ag-cell-last-left-pinned');\n }\n if (this.beans.columnHoverService.isHovered(this.column)) {\n cssClasses.push('ag-column-hover');\n }\n utils_1._.pushAll(cssClasses, this.preProcessClassesFromColDef());\n utils_1._.pushAll(cssClasses, this.preProcessCellClassRules());\n utils_1._.pushAll(cssClasses, this.getInitialRangeClasses());\n // if using the wrapper, this class goes on the wrapper instead\n if (!this.usingWrapper) {\n cssClasses.push('ag-cell-value');\n }\n return cssClasses;\n };\n CellComp.prototype.getInitialValueToRender = function () {\n // if using a cellRenderer, then render the html from the cell renderer if it exists\n if (this.usingCellRenderer) {\n if (typeof this.cellRendererGui === 'string') {\n return this.cellRendererGui;\n }\n else {\n return '';\n }\n }\n var colDef = this.getComponentHolder();\n if (colDef.template) {\n // template is really only used for angular 1 - as people using ng1 are used to providing templates with\n // bindings in it. in ng2, people will hopefully want to provide components, not templates.\n return colDef.template;\n }\n else if (colDef.templateUrl) {\n // likewise for templateUrl - it's for ng1 really - when we move away from ng1, we can take these out.\n // niall was pro angular 1 when writing template and templateUrl, if writing from scratch now, would\n // not do these, but would follow a pattern that was friendly towards components, not templates.\n var template = this.beans.templateService.getTemplate(colDef.templateUrl, this.refreshCell.bind(this, true));\n if (template) {\n return template;\n }\n else {\n return '';\n }\n }\n else {\n return this.getValueToUse();\n }\n };\n CellComp.prototype.getRenderedRow = function () {\n return this.rowComp;\n };\n CellComp.prototype.isSuppressNavigable = function () {\n return this.column.isSuppressNavigable(this.rowNode);\n };\n CellComp.prototype.getCellRenderer = function () {\n return this.cellRenderer;\n };\n CellComp.prototype.getCellEditor = function () {\n return this.cellEditor;\n };\n // + stop editing {forceRefresh: true, suppressFlash: true}\n // + event cellChanged {}\n // + cellRenderer.params.refresh() {} -> method passes 'as is' to the cellRenderer, so params could be anything\n // + rowComp: event dataChanged {animate: update, newData: !update}\n // + rowComp: api refreshCells() {animate: true/false}\n // + rowRenderer: api softRefreshView() {}\n CellComp.prototype.refreshCell = function (params) {\n // if we are in the middle of 'stopEditing', then we don't refresh here, as refresh gets called explicitly\n if (this.suppressRefreshCell || this.editingCell) {\n return;\n }\n var colDef = this.getComponentHolder();\n var newData = params && params.newData;\n var suppressFlash = (params && params.suppressFlash) || colDef.suppressCellFlash;\n var forceRefresh = params && params.forceRefresh;\n var oldValue = this.value;\n this.getValueAndFormat();\n // for simple values only (not pojo's), see if the value is the same, and if it is, skip the refresh.\n // when never allow skipping after an edit, as after editing, we need to put the GUI back to the way\n // if was before the edit.\n var valuesDifferent = !this.valuesAreEqual(oldValue, this.value);\n var dataNeedsUpdating = forceRefresh || valuesDifferent;\n if (dataNeedsUpdating) {\n // if it's 'new data', then we don't refresh the cellRenderer, even if refresh method is available.\n // this is because if the whole data is new (ie we are showing stock price 'BBA' now and not 'SSD')\n // then we are not showing a movement in the stock price, rather we are showing different stock.\n var cellRendererRefreshed = newData ? false : this.attemptCellRendererRefresh();\n // we do the replace if not doing refresh, or if refresh was unsuccessful.\n // the refresh can be unsuccessful if we are using a framework (eg ng2 or react) and the framework\n // wrapper has the refresh method, but the underlying component doesn't\n if (!cellRendererRefreshed) {\n this.replaceContentsAfterRefresh();\n }\n // we don't want to flash the cells when processing a filter change, as otherwise the UI would\n // be to busy. see comment in FilterManager with regards processingFilterChange\n var processingFilterChange = this.beans.filterManager.isSuppressFlashingCellsBecauseFiltering();\n var flashCell = !suppressFlash && !processingFilterChange &&\n (this.beans.gridOptionsWrapper.isEnableCellChangeFlash() || colDef.enableCellChangeFlash);\n if (flashCell) {\n this.flashCell();\n }\n // need to check rules. note, we ignore colDef classes and styles, these are assumed to be static\n this.postProcessStylesFromColDef();\n this.postProcessClassesFromColDef();\n }\n // we can't readily determine if the data in an angularjs template has changed, so here we just update\n // and recompile (if applicable)\n this.updateAngular1ScopeAndCompile();\n this.refreshToolTip();\n // we do cellClassRules even if the value has not changed, so that users who have rules that\n // look at other parts of the row (where the other part of the row might of changed) will work.\n this.postProcessCellClassRules();\n };\n // user can also call this via API\n CellComp.prototype.flashCell = function () {\n this.animateCell('data-changed');\n };\n CellComp.prototype.animateCell = function (cssName) {\n var fullName = 'ag-cell-' + cssName;\n var animationFullName = 'ag-cell-' + cssName + '-animation';\n var element = this.getGui();\n // we want to highlight the cells, without any animation\n utils_1._.addCssClass(element, fullName);\n utils_1._.removeCssClass(element, animationFullName);\n // then once that is applied, we remove the highlight with animation\n window.setTimeout(function () {\n utils_1._.removeCssClass(element, fullName);\n utils_1._.addCssClass(element, animationFullName);\n window.setTimeout(function () {\n // and then to leave things as we got them, we remove the animation\n utils_1._.removeCssClass(element, animationFullName);\n }, 1000);\n }, 500);\n };\n CellComp.prototype.replaceContentsAfterRefresh = function () {\n // otherwise we rip out the cell and replace it\n utils_1._.clearElement(this.eParentOfValue);\n // remove old renderer component if it exists\n if (this.cellRenderer && this.cellRenderer.destroy) {\n this.cellRenderer.destroy();\n }\n this.cellRenderer = null;\n this.cellRendererGui = null;\n // populate\n this.putDataIntoCellAfterRefresh();\n this.updateAngular1ScopeAndCompile();\n };\n CellComp.prototype.updateAngular1ScopeAndCompile = function () {\n if (this.beans.gridOptionsWrapper.isAngularCompileRows() && this.scope) {\n this.scope.data = __assign({}, this.rowNode.data);\n this.angular1Compile();\n }\n };\n CellComp.prototype.angular1Compile = function () {\n // if angular compiling, then need to also compile the cell again (angular compiling sucks, please wait...)\n if (this.beans.gridOptionsWrapper.isAngularCompileRows()) {\n var eGui = this.getGui();\n // only compile the node if it hasn't already been done\n // this prevents \"orphaned\" node leaks\n if (!eGui.classList.contains('ng-scope') || eGui.childElementCount === 0) {\n var compiledElement_1 = this.beans.$compile(eGui)(this.scope);\n this.addDestroyFunc(function () {\n compiledElement_1.remove();\n });\n }\n }\n };\n CellComp.prototype.postProcessStylesFromColDef = function () {\n var stylesToUse = this.processStylesFromColDef();\n if (stylesToUse) {\n utils_1._.addStylesToElement(this.getGui(), stylesToUse);\n }\n };\n CellComp.prototype.preProcessStylesFromColDef = function () {\n var stylesToUse = this.processStylesFromColDef();\n return utils_1._.cssStyleObjectToMarkup(stylesToUse);\n };\n CellComp.prototype.processStylesFromColDef = function () {\n var colDef = this.getComponentHolder();\n if (colDef.cellStyle) {\n var cssToUse = void 0;\n if (typeof colDef.cellStyle === 'function') {\n var cellStyleParams = {\n value: this.value,\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: colDef,\n column: this.column,\n $scope: this.scope,\n context: this.beans.gridOptionsWrapper.getContext(),\n api: this.beans.gridOptionsWrapper.getApi()\n };\n var cellStyleFunc = colDef.cellStyle;\n cssToUse = cellStyleFunc(cellStyleParams);\n }\n else {\n cssToUse = colDef.cellStyle;\n }\n return cssToUse;\n }\n };\n CellComp.prototype.postProcessClassesFromColDef = function () {\n var _this = this;\n this.processClassesFromColDef(function (className) { return utils_1._.addCssClass(_this.getGui(), className); });\n };\n CellComp.prototype.preProcessClassesFromColDef = function () {\n var res = [];\n this.processClassesFromColDef(function (className) { return res.push(className); });\n return res;\n };\n CellComp.prototype.processClassesFromColDef = function (onApplicableClass) {\n var colDef = this.getComponentHolder();\n this.beans.stylingService.processStaticCellClasses(colDef, {\n value: this.value,\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: colDef,\n rowIndex: this.rowNode.rowIndex,\n $scope: this.scope,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n }, onApplicableClass);\n };\n CellComp.prototype.putDataIntoCellAfterRefresh = function () {\n // template gets preference, then cellRenderer, then do it ourselves\n var colDef = this.getComponentHolder();\n if (colDef.template) {\n // template is really only used for angular 1 - as people using ng1 are used to providing templates with\n // bindings in it. in ng2, people will hopefully want to provide components, not templates.\n this.eParentOfValue.innerHTML = colDef.template;\n }\n else if (colDef.templateUrl) {\n // likewise for templateUrl - it's for ng1 really - when we move away from ng1, we can take these out.\n // niall was pro angular 1 when writing template and templateUrl, if writing from scratch now, would\n // not do these, but would follow a pattern that was friendly towards components, not templates.\n var template = this.beans.templateService.getTemplate(colDef.templateUrl, this.refreshCell.bind(this, true));\n if (template) {\n this.eParentOfValue.innerHTML = template;\n }\n }\n else {\n // we can switch from using a cell renderer back to the default if a user\n // is using cellRendererSelect\n this.chooseCellRenderer();\n if (this.usingCellRenderer) {\n this.createCellRendererInstance();\n }\n else {\n var valueToUse = this.getValueToUse();\n if (valueToUse !== null && valueToUse !== undefined) {\n this.eParentOfValue.innerHTML = utils_1._.escape(valueToUse);\n }\n }\n }\n };\n CellComp.prototype.attemptCellRendererRefresh = function () {\n if (utils_1._.missing(this.cellRenderer) || !this.cellRenderer || utils_1._.missing(this.cellRenderer.refresh)) {\n return false;\n }\n // if the cell renderer has a refresh method, we call this instead of doing a refresh\n var params = this.createCellRendererParams();\n // take any custom params off of the user\n var finalParams = this.beans.userComponentFactory.createFinalParams(this.getComponentHolder(), this.cellRendererType, params);\n var result = this.cellRenderer.refresh(finalParams);\n // NOTE on undefined: previous version of the cellRenderer.refresh() interface\n // returned nothing, if the method existed, we assumed it refreshed. so for\n // backwards compatibility, we assume if method exists and returns nothing,\n // that it was successful.\n return result === true || result === undefined;\n };\n CellComp.prototype.refreshToolTip = function () {\n var newTooltip = this.getToolTip();\n if (this.tooltip === newTooltip) {\n return;\n }\n var hasNewTooltip = utils_1._.exists(newTooltip);\n var hadTooltip = utils_1._.exists(this.tooltip);\n if (hasNewTooltip && this.tooltip === newTooltip.toString()) {\n return;\n }\n this.tooltip = newTooltip;\n if (this.beans.gridOptionsWrapper.isEnableBrowserTooltips()) {\n if (hasNewTooltip) {\n var tooltipSanitised = utils_1._.escape(this.tooltip);\n this.eParentOfValue.setAttribute('title', tooltipSanitised);\n }\n else {\n this.eParentOfValue.removeAttribute('title');\n }\n }\n else {\n if (hadTooltip) {\n if (!hasNewTooltip) {\n this.beans.tooltipManager.unregisterTooltip(this);\n }\n }\n else if (hasNewTooltip) {\n this.beans.tooltipManager.registerTooltip(this);\n }\n }\n };\n CellComp.prototype.valuesAreEqual = function (val1, val2) {\n // if the user provided an equals method, use that, otherwise do simple comparison\n var colDef = this.getComponentHolder();\n var equalsMethod = colDef ? colDef.equals : null;\n if (equalsMethod) {\n return equalsMethod(val1, val2);\n }\n return val1 === val2;\n };\n CellComp.prototype.getToolTip = function () {\n var colDef = this.getComponentHolder();\n var data = this.rowNode.data;\n if (colDef.tooltipField && utils_1._.exists(data)) {\n return utils_1._.getValueUsingField(data, colDef.tooltipField, this.column.isTooltipFieldContainsDots());\n }\n var valueGetter = colDef.tooltipValueGetter || colDef.tooltip;\n if (valueGetter) {\n return valueGetter({\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n colDef: colDef,\n column: this.getColumn(),\n context: this.beans.gridOptionsWrapper.getContext(),\n value: this.value,\n valueFormatted: this.valueFormatted,\n rowIndex: this.cellPosition.rowIndex,\n node: this.rowNode,\n data: this.rowNode.data,\n $scope: this.scope,\n });\n }\n return null;\n };\n CellComp.prototype.getTooltipText = function (escape) {\n if (escape === void 0) { escape = true; }\n return escape ? utils_1._.escape(this.tooltip) : this.tooltip;\n };\n CellComp.prototype.processCellClassRules = function (onApplicableClass, onNotApplicableClass) {\n var colDef = this.getComponentHolder();\n this.beans.stylingService.processClassRules(colDef.cellClassRules, {\n value: this.value,\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: colDef,\n rowIndex: this.cellPosition.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n $scope: this.scope,\n context: this.beans.gridOptionsWrapper.getContext()\n }, onApplicableClass, onNotApplicableClass);\n };\n CellComp.prototype.postProcessCellClassRules = function () {\n var _this = this;\n this.processCellClassRules(function (className) {\n utils_1._.addCssClass(_this.getGui(), className);\n }, function (className) {\n utils_1._.removeCssClass(_this.getGui(), className);\n });\n };\n CellComp.prototype.preProcessCellClassRules = function () {\n var res = [];\n this.processCellClassRules(function (className) {\n res.push(className);\n }, function (className) {\n // not catered for, if creating, no need\n // to remove class as it was never there\n });\n return res;\n };\n // a wrapper is used when we are putting a selection checkbox in the cell with the value\n CellComp.prototype.setUsingWrapper = function () {\n var colDef = this.getComponentHolder();\n // never allow selection or dragging on pinned rows\n if (this.rowNode.rowPinned) {\n this.usingWrapper = false;\n this.includeSelectionComponent = false;\n this.includeRowDraggingComponent = false;\n this.includeDndSourceComponent = false;\n return;\n }\n var cbSelectionIsFunc = typeof colDef.checkboxSelection === 'function';\n var rowDraggableIsFunc = typeof colDef.rowDrag === 'function';\n var dndSourceIsFunc = typeof colDef.dndSource === 'function';\n this.includeSelectionComponent = cbSelectionIsFunc || colDef.checkboxSelection === true;\n this.includeRowDraggingComponent = rowDraggableIsFunc || colDef.rowDrag === true;\n this.includeDndSourceComponent = dndSourceIsFunc || colDef.dndSource === true;\n this.usingWrapper = this.includeRowDraggingComponent || this.includeSelectionComponent || this.includeDndSourceComponent;\n };\n CellComp.prototype.chooseCellRenderer = function () {\n // template gets preference, then cellRenderer, then do it ourselves\n var colDef = this.getComponentHolder();\n // templates are for ng1, ideally we wouldn't have these, they are ng1 support\n // inside the core which is bad\n if (colDef.template || colDef.templateUrl) {\n this.usingCellRenderer = false;\n return;\n }\n var params = this.createCellRendererParams();\n var cellRenderer = this.beans.userComponentFactory.lookupComponentClassDef(colDef, 'cellRenderer', params);\n var pinnedRowCellRenderer = this.beans.userComponentFactory.lookupComponentClassDef(colDef, 'pinnedRowCellRenderer', params);\n if (pinnedRowCellRenderer && this.rowNode.rowPinned) {\n this.cellRendererType = CellComp.CELL_RENDERER_TYPE_PINNED;\n this.usingCellRenderer = true;\n }\n else if (cellRenderer) {\n this.cellRendererType = CellComp.CELL_RENDERER_TYPE_NORMAL;\n this.usingCellRenderer = true;\n }\n else {\n this.usingCellRenderer = false;\n }\n };\n CellComp.prototype.createCellRendererInstance = function (useTaskService) {\n var _this = this;\n if (useTaskService === void 0) { useTaskService = false; }\n if (!this.usingCellRenderer) {\n return;\n }\n // never use task service if angularCompileRows=true, as that assume the cell renderers\n // are finished when the row is created. also we never use it if animation frame service\n // is turned off.\n // and lastly we never use it if doing auto-height, as the auto-height service checks the\n // row height directly after the cell is created, it doesn't wait around for the tasks to complete\n var angularCompileRows = this.beans.gridOptionsWrapper.isAngularCompileRows();\n var suppressAnimationFrame = this.beans.gridOptionsWrapper.isSuppressAnimationFrame();\n if (angularCompileRows || suppressAnimationFrame || this.autoHeightCell) {\n useTaskService = false;\n }\n var params = this.createCellRendererParams();\n this.cellRendererVersion++;\n var callback = this.afterCellRendererCreated.bind(this, this.cellRendererVersion);\n var cellRendererTypeNormal = this.cellRendererType === CellComp.CELL_RENDERER_TYPE_NORMAL;\n var task = function () {\n // this can return null in the event that the user has switched from a renderer component to nothing, for example\n // when using a cellRendererSelect to return a component or null depending on row data etc\n var componentPromise;\n if (cellRendererTypeNormal) {\n componentPromise = _this.beans.userComponentFactory.newCellRenderer(_this.getComponentHolder(), params);\n }\n else {\n componentPromise = _this.beans.userComponentFactory.newPinnedRowCellRenderer(_this.getComponentHolder(), params);\n }\n if (componentPromise) {\n componentPromise.then(callback);\n }\n };\n if (useTaskService) {\n this.beans.taskQueue.addP2Task(task);\n }\n else {\n task();\n }\n };\n CellComp.prototype.afterCellRendererCreated = function (cellRendererVersion, cellRenderer) {\n // see if daemon\n if (!this.isAlive() || (cellRendererVersion !== this.cellRendererVersion)) {\n if (cellRenderer.destroy) {\n cellRenderer.destroy();\n }\n return;\n }\n this.cellRenderer = cellRenderer;\n this.cellRendererGui = this.cellRenderer.getGui();\n if (utils_1._.missing(this.cellRendererGui)) {\n return;\n }\n // if async components, then it's possible the user started editing since\n // this call was made\n if (!this.editingCell) {\n this.eParentOfValue.appendChild(this.cellRendererGui);\n }\n };\n CellComp.prototype.createCellRendererParams = function () {\n var _this = this;\n var params = {\n value: this.value,\n valueFormatted: this.valueFormatted,\n getValue: this.getValue.bind(this),\n setValue: function (value) {\n _this.beans.valueService.setValue(_this.rowNode, _this.column, value);\n },\n formatValue: this.formatValue.bind(this),\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: this.getComponentHolder(),\n column: this.column,\n $scope: this.scope,\n rowIndex: this.cellPosition.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n refreshCell: this.refreshCell.bind(this),\n eGridCell: this.getGui(),\n eParentOfValue: this.eParentOfValue,\n // these bits are not documented anywhere, so we could drop them?\n // it was in the olden days to allow user to register for when rendered\n // row was removed (the row comp was removed), however now that the user\n // can provide components for cells, the destroy method gets call when this\n // happens so no longer need to fire event.\n addRowCompListener: this.rowComp ? this.rowComp.addEventListener.bind(this.rowComp) : null,\n addRenderedRowListener: function (eventType, listener) {\n console.warn('ag-Grid: since ag-Grid .v11, params.addRenderedRowListener() is now params.addRowCompListener()');\n if (_this.rowComp) {\n _this.rowComp.addEventListener(eventType, listener);\n }\n }\n };\n return params;\n };\n CellComp.prototype.formatValue = function (value) {\n var valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, value);\n var valueFormattedExists = valueFormatted !== null && valueFormatted !== undefined;\n return valueFormattedExists ? valueFormatted : value;\n };\n CellComp.prototype.getValueToUse = function () {\n var valueFormattedExists = this.valueFormatted !== null && this.valueFormatted !== undefined;\n return valueFormattedExists ? this.valueFormatted : this.value;\n };\n CellComp.prototype.getValueAndFormat = function () {\n this.value = this.getValue();\n this.valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, this.value);\n };\n CellComp.prototype.getValue = function () {\n // if we don't check this, then the grid will render leaf groups as open even if we are not\n // allowing the user to open leaf groups. confused? remember for pivot mode we don't allow\n // opening leaf groups, so we have to force leafGroups to be closed in case the user expanded\n // them via the API, or user user expanded them in the UI before turning on pivot mode\n var lockedClosedGroup = this.rowNode.leafGroup && this.beans.columnController.isPivotMode();\n var isOpenGroup = this.rowNode.group && this.rowNode.expanded && !this.rowNode.footer && !lockedClosedGroup;\n // are we showing group footers\n var groupFootersEnabled = this.beans.gridOptionsWrapper.isGroupIncludeFooter();\n // if doing footers, we normally don't show agg data at group level when group is open\n var groupAlwaysShowAggData = this.beans.gridOptionsWrapper.isGroupSuppressBlankHeader();\n // if doing grouping and footers, we don't want to include the agg value\n // in the header when the group is open\n var ignoreAggData = (isOpenGroup && groupFootersEnabled) && !groupAlwaysShowAggData;\n return this.beans.valueService.getValue(this.column, this.rowNode, false, ignoreAggData);\n };\n CellComp.prototype.onMouseEvent = function (eventName, mouseEvent) {\n if (utils_1._.isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n switch (eventName) {\n case 'click':\n this.onCellClicked(mouseEvent);\n break;\n case 'mousedown':\n this.onMouseDown(mouseEvent);\n break;\n case 'dblclick':\n this.onCellDoubleClicked(mouseEvent);\n break;\n case 'mouseout':\n this.onMouseOut(mouseEvent);\n break;\n case 'mouseover':\n this.onMouseOver(mouseEvent);\n break;\n }\n };\n CellComp.prototype.dispatchCellContextMenuEvent = function (event) {\n var colDef = this.getComponentHolder();\n var cellContextMenuEvent = this.createEvent(event, events_1.Events.EVENT_CELL_CONTEXT_MENU);\n this.beans.eventService.dispatchEvent(cellContextMenuEvent);\n if (colDef.onCellContextMenu) {\n // to make the callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellContextMenu(cellContextMenuEvent); }, 0);\n }\n };\n CellComp.prototype.createEvent = function (domEvent, eventType) {\n var event = {\n node: this.rowNode,\n data: this.rowNode.data,\n value: this.value,\n column: this.column,\n colDef: this.getComponentHolder(),\n context: this.beans.gridOptionsWrapper.getContext(),\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi,\n rowPinned: this.rowNode.rowPinned,\n event: domEvent,\n type: eventType,\n rowIndex: this.rowNode.rowIndex\n };\n // because we are hacking in $scope for angular 1, we have to de-reference\n if (this.scope) {\n event.$scope = this.scope;\n }\n return event;\n };\n CellComp.prototype.onMouseOut = function (mouseEvent) {\n var cellMouseOutEvent = this.createEvent(mouseEvent, events_1.Events.EVENT_CELL_MOUSE_OUT);\n this.beans.eventService.dispatchEvent(cellMouseOutEvent);\n this.beans.columnHoverService.clearMouseOver();\n };\n CellComp.prototype.onMouseOver = function (mouseEvent) {\n var cellMouseOverEvent = this.createEvent(mouseEvent, events_1.Events.EVENT_CELL_MOUSE_OVER);\n this.beans.eventService.dispatchEvent(cellMouseOverEvent);\n this.beans.columnHoverService.setMouseOver([this.column]);\n };\n CellComp.prototype.onCellDoubleClicked = function (mouseEvent) {\n var colDef = this.getComponentHolder();\n // always dispatch event to eventService\n var cellDoubleClickedEvent = this.createEvent(mouseEvent, events_1.Events.EVENT_CELL_DOUBLE_CLICKED);\n this.beans.eventService.dispatchEvent(cellDoubleClickedEvent);\n // check if colDef also wants to handle event\n if (typeof colDef.onCellDoubleClicked === 'function') {\n // to make the callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellDoubleClicked(cellDoubleClickedEvent); }, 0);\n }\n var editOnDoubleClick = !this.beans.gridOptionsWrapper.isSingleClickEdit()\n && !this.beans.gridOptionsWrapper.isSuppressClickEdit();\n if (editOnDoubleClick) {\n this.startRowOrCellEdit();\n }\n };\n // called by rowRenderer when user navigates via tab key\n CellComp.prototype.startRowOrCellEdit = function (keyPress, charPress) {\n if (this.beans.gridOptionsWrapper.isFullRowEdit()) {\n this.rowComp.startRowEditing(keyPress, charPress, this);\n }\n else {\n this.startEditingIfEnabled(keyPress, charPress, true);\n }\n };\n CellComp.prototype.isCellEditable = function () {\n return this.column.isCellEditable(this.rowNode);\n };\n // either called internally if single cell editing, or called by rowRenderer if row editing\n CellComp.prototype.startEditingIfEnabled = function (keyPress, charPress, cellStartedEdit) {\n if (keyPress === void 0) { keyPress = null; }\n if (charPress === void 0) { charPress = null; }\n if (cellStartedEdit === void 0) { cellStartedEdit = false; }\n // don't do it if not editable\n if (!this.isCellEditable()) {\n return;\n }\n // don't do it if already editing\n if (this.editingCell) {\n return;\n }\n this.editingCell = true;\n this.cellEditorVersion++;\n var callback = this.afterCellEditorCreated.bind(this, this.cellEditorVersion);\n var params = this.createCellEditorParams(keyPress, charPress, cellStartedEdit);\n this.createCellEditor(params).then(callback);\n // if we don't do this, and editor component is async, then there will be a period\n // when the component isn't present and keyboard navigation won't work - so example\n // of user hitting tab quickly (more quickly than renderers getting created) won't work\n var cellEditorAsync = utils_1._.missing(this.cellEditor);\n if (cellEditorAsync && cellStartedEdit) {\n this.focusCell(true);\n }\n };\n CellComp.prototype.createCellEditor = function (params) {\n var _this = this;\n var cellEditorPromise = this.beans.userComponentFactory.newCellEditor(this.column.getColDef(), params);\n return cellEditorPromise.map(function (cellEditor) {\n var isPopup = cellEditor.isPopup && cellEditor.isPopup();\n if (!isPopup) {\n return cellEditor;\n }\n if (_this.beans.gridOptionsWrapper.isFullRowEdit()) {\n console.warn('ag-Grid: popup cellEditor does not work with fullRowEdit - you cannot use them both ' +\n '- either turn off fullRowEdit, or stop using popup editors.');\n }\n // if a popup, then we wrap in a popup editor and return the popup\n var popupEditorWrapper = new popupEditorWrapper_1.PopupEditorWrapper(cellEditor);\n _this.beans.context.wireBean(popupEditorWrapper);\n popupEditorWrapper.init(params);\n return popupEditorWrapper;\n });\n };\n CellComp.prototype.afterCellEditorCreated = function (cellEditorVersion, cellEditor) {\n // if editingCell=false, means user cancelled the editor before component was ready.\n // if versionMismatch, then user cancelled the edit, then started the edit again, and this\n // is the first editor which is now stale.\n var versionMismatch = cellEditorVersion !== this.cellEditorVersion;\n if (versionMismatch || !this.editingCell) {\n if (cellEditor.destroy) {\n cellEditor.destroy();\n }\n return;\n }\n if (cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart()) {\n if (cellEditor.destroy) {\n cellEditor.destroy();\n }\n this.editingCell = false;\n return;\n }\n if (!cellEditor.getGui) {\n console.warn(\"ag-Grid: cellEditor for column \" + this.column.getId() + \" is missing getGui() method\");\n // no getGui, for React guys, see if they attached a react component directly\n if (cellEditor.render) {\n console.warn(\"ag-Grid: we found 'render' on the component, are you trying to set a React renderer but added it as colDef.cellEditor instead of colDef.cellEditorFmk?\");\n }\n if (cellEditor.destroy) {\n cellEditor.destroy();\n }\n this.editingCell = false;\n return;\n }\n this.cellEditor = cellEditor;\n this.cellEditorInPopup = cellEditor.isPopup !== undefined && cellEditor.isPopup();\n this.setInlineEditingClass();\n if (this.cellEditorInPopup) {\n this.addPopupCellEditor();\n }\n else {\n this.addInCellEditor();\n }\n if (cellEditor.afterGuiAttached) {\n cellEditor.afterGuiAttached();\n }\n var event = this.createEvent(null, events_1.Events.EVENT_CELL_EDITING_STARTED);\n this.beans.eventService.dispatchEvent(event);\n };\n CellComp.prototype.addInCellEditor = function () {\n utils_1._.clearElement(this.getGui());\n if (this.cellEditor) {\n this.getGui().appendChild(this.cellEditor.getGui());\n }\n this.angular1Compile();\n };\n CellComp.prototype.addPopupCellEditor = function () {\n var _this = this;\n var ePopupGui = this.cellEditor ? this.cellEditor.getGui() : null;\n this.hideEditorPopup = this.beans.popupService.addAsModalPopup(ePopupGui, true, \n // callback for when popup disappears\n function () {\n _this.onPopupEditorClosed();\n });\n this.beans.popupService.positionPopupOverComponent({\n column: this.column,\n rowNode: this.rowNode,\n type: 'popupCellEditor',\n eventSource: this.getGui(),\n ePopup: ePopupGui,\n keepWithinBounds: true\n });\n this.angular1Compile();\n };\n CellComp.prototype.onPopupEditorClosed = function () {\n // we only call stopEditing if we are editing, as\n // it's possible the popup called 'stop editing'\n // before this, eg if 'enter key' was pressed on\n // the editor.\n if (this.editingCell) {\n // note: this only happens when use clicks outside of the grid. if use clicks on another\n // cell, then the editing will have already stopped on this cell\n this.stopRowOrCellEdit();\n // we only focus cell again if this cell is still focused. it is possible\n // it is not focused if the user cancelled the edit by clicking on another\n // cell outside of this one\n if (this.beans.focusedCellController.isCellFocused(this.cellPosition)) {\n this.focusCell(true);\n }\n }\n };\n // if we are editing inline, then we don't have the padding in the cell (set in the themes)\n // to allow the text editor full access to the entire cell\n CellComp.prototype.setInlineEditingClass = function () {\n // ag-cell-inline-editing - appears when user is inline editing\n // ag-cell-not-inline-editing - appears when user is no inline editing\n // ag-cell-popup-editing - appears when user is editing cell in popup (appears on the cell, not on the popup)\n // note: one of {ag-cell-inline-editing, ag-cell-not-inline-editing} is always present, they toggle.\n // however {ag-cell-popup-editing} shows when popup, so you have both {ag-cell-popup-editing}\n // and {ag-cell-not-inline-editing} showing at the same time.\n var editingInline = this.editingCell && !this.cellEditorInPopup;\n var popupEditorShowing = this.editingCell && this.cellEditorInPopup;\n utils_1._.addOrRemoveCssClass(this.getGui(), \"ag-cell-inline-editing\", editingInline);\n utils_1._.addOrRemoveCssClass(this.getGui(), \"ag-cell-not-inline-editing\", !editingInline);\n utils_1._.addOrRemoveCssClass(this.getGui(), \"ag-cell-popup-editing\", popupEditorShowing);\n utils_1._.addOrRemoveCssClass(this.getGui().parentNode, \"ag-row-inline-editing\", editingInline);\n utils_1._.addOrRemoveCssClass(this.getGui().parentNode, \"ag-row-not-inline-editing\", !editingInline);\n };\n CellComp.prototype.createCellEditorParams = function (keyPress, charPress, cellStartedEdit) {\n var params = {\n value: this.getValue(),\n keyPress: keyPress,\n charPress: charPress,\n column: this.column,\n colDef: this.column.getColDef(),\n rowIndex: this.cellPosition.rowIndex,\n node: this.rowNode,\n data: this.rowNode.data,\n api: this.beans.gridOptionsWrapper.getApi(),\n cellStartedEdit: cellStartedEdit,\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n $scope: this.scope,\n onKeyDown: this.onKeyDown.bind(this),\n stopEditing: this.stopEditingAndFocus.bind(this),\n eGridCell: this.getGui(),\n parseValue: this.parseValue.bind(this),\n formatValue: this.formatValue.bind(this)\n };\n return params;\n };\n // cell editors call this, when they want to stop for reasons other\n // than what we pick up on. eg selecting from a dropdown ends editing.\n CellComp.prototype.stopEditingAndFocus = function (suppressNavigateAfterEdit) {\n if (suppressNavigateAfterEdit === void 0) { suppressNavigateAfterEdit = false; }\n this.stopRowOrCellEdit();\n this.focusCell(true);\n if (!suppressNavigateAfterEdit) {\n this.navigateAfterEdit();\n }\n };\n CellComp.prototype.parseValue = function (newValue) {\n var colDef = this.getComponentHolder();\n var params = {\n node: this.rowNode,\n data: this.rowNode.data,\n oldValue: this.value,\n newValue: newValue,\n colDef: colDef,\n column: this.column,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n var valueParser = colDef.valueParser;\n return utils_1._.exists(valueParser) ? this.beans.expressionService.evaluate(valueParser, params) : newValue;\n };\n CellComp.prototype.focusCell = function (forceBrowserFocus) {\n if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }\n this.beans.focusedCellController.setFocusedCell(this.cellPosition.rowIndex, this.column, this.rowNode.rowPinned, forceBrowserFocus);\n };\n CellComp.prototype.setFocusInOnEditor = function () {\n if (this.editingCell) {\n if (this.cellEditor && this.cellEditor.focusIn) {\n // if the editor is present, then we just focus it\n this.cellEditor.focusIn();\n }\n else {\n // if the editor is not present, it means async cell editor (eg React fibre)\n // and we are trying to set focus before the cell editor is present, so we\n // focus the cell instead\n this.focusCell(true);\n }\n }\n };\n CellComp.prototype.isEditing = function () {\n return this.editingCell;\n };\n CellComp.prototype.onKeyDown = function (event) {\n var key = event.which || event.keyCode;\n switch (key) {\n case constants_1.Constants.KEY_ENTER:\n this.onEnterKeyDown();\n break;\n case constants_1.Constants.KEY_F2:\n this.onF2KeyDown();\n break;\n case constants_1.Constants.KEY_ESCAPE:\n this.onEscapeKeyDown();\n break;\n case constants_1.Constants.KEY_TAB:\n this.onTabKeyDown(event);\n break;\n case constants_1.Constants.KEY_BACKSPACE:\n case constants_1.Constants.KEY_DELETE:\n this.onBackspaceOrDeleteKeyPressed(key);\n break;\n case constants_1.Constants.KEY_DOWN:\n case constants_1.Constants.KEY_UP:\n case constants_1.Constants.KEY_RIGHT:\n case constants_1.Constants.KEY_LEFT:\n this.onNavigationKeyPressed(event, key);\n break;\n }\n };\n CellComp.prototype.setFocusOutOnEditor = function () {\n if (this.editingCell && this.cellEditor && this.cellEditor.focusOut) {\n this.cellEditor.focusOut();\n }\n };\n CellComp.prototype.onNavigationKeyPressed = function (event, key) {\n if (this.editingCell) {\n return;\n }\n if (event.shiftKey && this.rangeSelectionEnabled) {\n this.onShiftRangeSelect(key);\n }\n else {\n this.beans.rowRenderer.navigateToNextCell(event, key, this.cellPosition, true);\n }\n // if we don't prevent default, the grid will scroll with the navigation keys\n event.preventDefault();\n };\n CellComp.prototype.onShiftRangeSelect = function (key) {\n var endCell = this.beans.rangeController.extendLatestRangeInDirection(key);\n if (endCell) {\n this.beans.rowRenderer.ensureCellVisible(endCell);\n }\n };\n CellComp.prototype.onTabKeyDown = function (event) {\n this.beans.rowRenderer.onTabKeyDown(this, event);\n };\n CellComp.prototype.onBackspaceOrDeleteKeyPressed = function (key) {\n if (!this.editingCell) {\n this.startRowOrCellEdit(key);\n }\n };\n CellComp.prototype.onEnterKeyDown = function () {\n if (this.editingCell || this.rowComp.isEditing()) {\n this.stopEditingAndFocus();\n }\n else {\n if (this.beans.gridOptionsWrapper.isEnterMovesDown()) {\n this.beans.rowRenderer.navigateToNextCell(null, constants_1.Constants.KEY_DOWN, this.cellPosition, false);\n }\n else {\n this.startRowOrCellEdit(constants_1.Constants.KEY_ENTER);\n }\n }\n };\n CellComp.prototype.navigateAfterEdit = function () {\n var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();\n if (fullRowEdit) {\n return;\n }\n var enterMovesDownAfterEdit = this.beans.gridOptionsWrapper.isEnterMovesDownAfterEdit();\n if (enterMovesDownAfterEdit) {\n this.beans.rowRenderer.navigateToNextCell(null, constants_1.Constants.KEY_DOWN, this.cellPosition, false);\n }\n };\n CellComp.prototype.onF2KeyDown = function () {\n if (!this.editingCell) {\n this.startRowOrCellEdit(constants_1.Constants.KEY_F2);\n }\n };\n CellComp.prototype.onEscapeKeyDown = function () {\n if (this.editingCell) {\n this.stopRowOrCellEdit(true);\n this.focusCell(true);\n }\n };\n CellComp.prototype.onKeyPress = function (event) {\n // check this, in case focus is on a (for example) a text field inside the cell,\n // in which cse we should not be listening for these key pressed\n var eventTarget = utils_1._.getTarget(event);\n var eventOnChildComponent = eventTarget !== this.getGui();\n if (eventOnChildComponent || this.editingCell) {\n return;\n }\n var pressedChar = String.fromCharCode(event.charCode);\n if (pressedChar === ' ') {\n this.onSpaceKeyPressed(event);\n }\n else {\n if (utils_1._.isEventFromPrintableCharacter(event)) {\n this.startRowOrCellEdit(null, pressedChar);\n // if we don't prevent default, then the keypress also gets applied to the text field\n // (at least when doing the default editor), but we need to allow the editor to decide\n // what it wants to do. we only do this IF editing was started - otherwise it messes\n // up when the use is not doing editing, but using rendering with text fields in cellRenderer\n // (as it would block the the user from typing into text fields).\n event.preventDefault();\n }\n }\n };\n CellComp.prototype.onSpaceKeyPressed = function (event) {\n if (!this.editingCell && this.beans.gridOptionsWrapper.isRowSelection()) {\n var selected = this.rowNode.isSelected();\n this.rowNode.setSelected(!selected);\n }\n // prevent default as space key, by default, moves browser scroll down\n event.preventDefault();\n };\n CellComp.prototype.onMouseDown = function (mouseEvent) {\n // we only need to pass true to focusCell in when the browser is IE\n // and we are trying to focus a cell (has ag-cell class), otherwise\n // we pass false, as we don't want the cell to focus also get the browser\n // focus. if we did, then the cellRenderer could have a text field in it,\n // for example, and as the user clicks on the text field, the text field,\n // the focus doesn't get to the text field, instead to goes to the div\n // behind, making it impossible to select the text field.\n var forceBrowserFocus = false;\n var button = mouseEvent.button, ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey, target = mouseEvent.target;\n var _a = this.beans, eventService = _a.eventService, rangeController = _a.rangeController;\n if (rangeController) {\n var cellInRange = rangeController.isCellInAnyRange(this.getCellPosition());\n if (cellInRange && button === 2) {\n return;\n }\n }\n if (utils_1._.isBrowserIE()) {\n if (target.classList.contains('ag-cell')) {\n forceBrowserFocus = true;\n }\n }\n if (!shiftKey || (rangeController && !rangeController.getCellRanges().length)) {\n this.focusCell(forceBrowserFocus);\n }\n else {\n // if a range is being changed, we need to make sure the focused cell does not change.\n mouseEvent.preventDefault();\n }\n // if we are clicking on a checkbox, we need to make sure the cell wrapping that checkbox\n // is focused but we don't want to change the range selection, so return here.\n if (utils_1._.isElementChildOfClass(target, 'ag-selection-checkbox', 3)) {\n return;\n }\n // if it's a right click, then if the cell is already in range,\n // don't change the range, however if the cell is not in a range,\n // we set a new range\n var leftMouseButtonClick = utils_1._.isLeftClick(mouseEvent);\n if (leftMouseButtonClick && rangeController) {\n var thisCell = this.cellPosition;\n if (shiftKey) {\n rangeController.extendLatestRangeToCell(thisCell);\n }\n else {\n var ctrlKeyPressed = ctrlKey || metaKey;\n rangeController.setRangeToCell(thisCell, ctrlKeyPressed);\n }\n }\n var cellMouseDownEvent = this.createEvent(mouseEvent, events_1.Events.EVENT_CELL_MOUSE_DOWN);\n eventService.dispatchEvent(cellMouseDownEvent);\n };\n // returns true if on iPad and this is second 'click' event in 200ms\n CellComp.prototype.isDoubleClickOnIPad = function () {\n if (!utils_1._.isUserAgentIPad()) {\n return false;\n }\n var nowMillis = new Date().getTime();\n var res = nowMillis - this.lastIPadMouseClickEvent < 200;\n this.lastIPadMouseClickEvent = nowMillis;\n return res;\n };\n CellComp.prototype.onCellClicked = function (mouseEvent) {\n // iPad doesn't have double click - so we need to mimic it do enable editing for\n // iPad.\n if (this.isDoubleClickOnIPad()) {\n this.onCellDoubleClicked(mouseEvent);\n mouseEvent.preventDefault(); // if we don't do this, then iPad zooms in\n return;\n }\n var cellClickedEvent = this.createEvent(mouseEvent, events_1.Events.EVENT_CELL_CLICKED);\n this.beans.eventService.dispatchEvent(cellClickedEvent);\n var colDef = this.getComponentHolder();\n if (colDef.onCellClicked) {\n // to make callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellClicked(cellClickedEvent); }, 0);\n }\n var editOnSingleClick = (this.beans.gridOptionsWrapper.isSingleClickEdit() || colDef.singleClickEdit)\n && !this.beans.gridOptionsWrapper.isSuppressClickEdit();\n if (editOnSingleClick) {\n this.startRowOrCellEdit();\n }\n utils_1._.doIeFocusHack(this.getGui());\n };\n CellComp.prototype.createGridCellVo = function () {\n this.cellPosition = {\n rowIndex: this.rowNode.rowIndex,\n rowPinned: this.rowNode.rowPinned,\n column: this.column\n };\n };\n CellComp.prototype.getCellPosition = function () {\n return this.cellPosition;\n };\n CellComp.prototype.getParentRow = function () {\n return this.eParentRow;\n };\n CellComp.prototype.setParentRow = function (eParentRow) {\n this.eParentRow = eParentRow;\n };\n CellComp.prototype.getColumn = function () {\n return this.column;\n };\n CellComp.prototype.getComponentHolder = function () {\n return this.column.getColDef();\n };\n CellComp.prototype.detach = function () {\n this.eParentRow.removeChild(this.getGui());\n };\n // if the row is also getting destroyed, then we don't need to remove from dom,\n // as the row will also get removed, so no need to take out the cells from the row\n // if the row is going (removing is an expensive operation, so only need to remove\n // the top part)\n CellComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.cellEditor && this.cellEditor.destroy) {\n this.cellEditor.destroy();\n this.cellEditor = null;\n }\n if (this.cellRenderer && this.cellRenderer.destroy) {\n this.cellRenderer.destroy();\n this.cellRenderer = null;\n }\n if (this.selectionHandle) {\n this.selectionHandle.destroy();\n }\n };\n CellComp.prototype.onLeftChanged = function () {\n var left = this.modifyLeftForPrintLayout(this.getCellLeft());\n this.getGui().style.left = left + 'px';\n };\n CellComp.prototype.modifyLeftForPrintLayout = function (leftPosition) {\n if (!this.printLayout) {\n return leftPosition;\n }\n if (this.column.getPinned() === column_1.Column.PINNED_LEFT) {\n return leftPosition;\n }\n if (this.column.getPinned() === column_1.Column.PINNED_RIGHT) {\n var leftWidth_1 = this.beans.columnController.getPinnedLeftContainerWidth();\n var bodyWidth = this.beans.columnController.getBodyContainerWidth();\n return leftWidth_1 + bodyWidth + leftPosition;\n }\n // is in body\n var leftWidth = this.beans.columnController.getPinnedLeftContainerWidth();\n return leftWidth + leftPosition;\n };\n CellComp.prototype.onWidthChanged = function () {\n var width = this.getCellWidth();\n this.getGui().style.width = width + 'px';\n };\n CellComp.prototype.getRangeBorders = function () {\n var _this = this;\n var isRtl = this.beans.gridOptionsWrapper.isEnableRtl();\n var top = false;\n var right = false;\n var bottom = false;\n var left = false;\n var thisCol = this.cellPosition.column;\n var rangeController = this.beans.rangeController;\n var leftCol;\n var rightCol;\n if (isRtl) {\n leftCol = this.beans.columnController.getDisplayedColAfter(thisCol);\n rightCol = this.beans.columnController.getDisplayedColBefore(thisCol);\n }\n else {\n leftCol = this.beans.columnController.getDisplayedColBefore(thisCol);\n rightCol = this.beans.columnController.getDisplayedColAfter(thisCol);\n }\n var ranges = rangeController.getCellRanges().filter(function (range) { return rangeController.isCellInSpecificRange(_this.cellPosition, range); });\n // this means we are the first column in the grid\n if (!leftCol) {\n left = true;\n }\n // this means we are the last column in the grid\n if (!rightCol) {\n right = true;\n }\n for (var i = 0; i < ranges.length; i++) {\n if (top && right && bottom && left) {\n break;\n }\n var range = ranges[i];\n var startRow = rangeController.getRangeStartRow(range);\n var endRow = rangeController.getRangeEndRow(range);\n if (!top && this.beans.rowPositionUtils.sameRow(startRow, this.cellPosition)) {\n top = true;\n }\n if (!bottom && this.beans.rowPositionUtils.sameRow(endRow, this.cellPosition)) {\n bottom = true;\n }\n if (!left && range.columns.indexOf(leftCol) < 0) {\n left = true;\n }\n if (!right && range.columns.indexOf(rightCol) < 0) {\n right = true;\n }\n }\n return { top: top, right: right, bottom: bottom, left: left };\n };\n CellComp.prototype.getInitialRangeClasses = function () {\n var res = [];\n if (!this.rangeSelectionEnabled || !this.rangeCount) {\n return res;\n }\n var beans = this.beans;\n var rangeController = beans.rangeController;\n res.push('ag-cell-range-selected');\n if (this.hasChartRange) {\n res.push('ag-cell-range-chart');\n }\n var count = Math.min(this.rangeCount, 4);\n res.push(\"ag-cell-range-selected-\" + count);\n if (this.rangeCount === 1 && !rangeController.isMoreThanOneCell()) {\n res.push('ag-cell-range-single-cell');\n }\n if (this.rangeCount > 0) {\n var borders = this.getRangeBorders();\n if (borders.top) {\n res.push('ag-cell-range-top');\n }\n if (borders.right) {\n res.push('ag-cell-range-right');\n }\n if (borders.bottom) {\n res.push('ag-cell-range-bottom');\n }\n if (borders.left) {\n res.push('ag-cell-range-left');\n }\n }\n if (!!this.selectionHandle) {\n res.push('ag-cell-range-handle');\n }\n return res;\n };\n CellComp.prototype.onRowIndexChanged = function () {\n // when index changes, this influences items that need the index, so we update the\n // grid cell so they are working off the new index.\n this.createGridCellVo();\n // when the index of the row changes, ie means the cell may have lost or gained focus\n this.onCellFocused();\n // check range selection\n this.onRangeSelectionChanged();\n };\n CellComp.prototype.onRangeSelectionChanged = function () {\n if (!this.beans.enterprise) {\n return;\n }\n var _a = this, beans = _a.beans, cellPosition = _a.cellPosition, rangeCount = _a.rangeCount;\n var rangeController = beans.rangeController;\n var newRangeCount = rangeController.getCellRangeCount(cellPosition);\n var element = this.getGui();\n if (rangeCount !== newRangeCount) {\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-selected', newRangeCount !== 0);\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-selected-1', newRangeCount === 1);\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-selected-2', newRangeCount === 2);\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-selected-3', newRangeCount === 3);\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-selected-4', newRangeCount >= 4);\n this.rangeCount = newRangeCount;\n }\n var hasChartRange = this.rangeCount && rangeController.getCellRanges().every(function (range) { return utils_1._.exists(range.type); });\n if (this.hasChartRange !== hasChartRange) {\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-chart', hasChartRange);\n this.hasChartRange = hasChartRange;\n }\n this.updateRangeBorders();\n var isSingleCell = this.rangeCount === 1 && !rangeController.isMoreThanOneCell();\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-single-cell', isSingleCell);\n this.refreshHandle();\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-handle', !!this.selectionHandle);\n };\n CellComp.prototype.shouldHaveSelectionHandle = function () {\n var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeController = _a.rangeController;\n var el = this.getGui();\n var cellRanges = rangeController.getCellRanges();\n var rangesLen = cellRanges.length;\n if (!rangesLen) {\n return false;\n }\n var lastRange = utils_1._.last(cellRanges);\n var isFirstRangeCategory = cellRanges[0].type === iRangeController_1.CellRangeType.DIMENSION;\n var handlesAllowed = (gridOptionsWrapper.isEnableFillHandle() ||\n gridOptionsWrapper.isEnableRangeHandle() ||\n this.hasChartRange && !isFirstRangeCategory) && rangesLen === 1;\n if (!handlesAllowed && this.hasChartRange) {\n var cellPosition = this.getCellPosition();\n handlesAllowed =\n isFirstRangeCategory &&\n rangesLen === 2 &&\n rangeController.isCellInSpecificRange(this.getCellPosition(), lastRange);\n var isCategory = isFirstRangeCategory &&\n rangeController.isCellInSpecificRange(cellPosition, cellRanges[0]);\n utils_1._.addOrRemoveCssClass(el, 'ag-cell-range-chart-category', isCategory);\n }\n return this.rangeCount &&\n handlesAllowed &&\n lastRange.endRow != null &&\n this.beans.rangeController.isContiguousRange(lastRange) &&\n (utils_1._.containsClass(el, 'ag-cell-range-single-cell') ||\n (utils_1._.containsClass(el, 'ag-cell-range-bottom') && utils_1._.containsClass(el, 'ag-cell-range-right')));\n };\n CellComp.prototype.addSelectionHandle = function () {\n var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, context = _a.context, rangeController = _a.rangeController;\n var cellRangeType = utils_1._.last(rangeController.getCellRanges()).type;\n var type = (gridOptionsWrapper.isEnableFillHandle() && utils_1._.missing(cellRangeType)) ? 'fill' : 'range';\n if (this.selectionHandle && this.selectionHandle.getType() !== type) {\n this.selectionHandle.destroy();\n this.selectionHandle = undefined;\n }\n if (!this.selectionHandle) {\n this.selectionHandle = context.createComponentFromElement(document.createElement(\"ag-\" + type + \"-handle\"));\n }\n this.selectionHandle.refresh(this);\n };\n CellComp.prototype.updateRangeBordersIfRangeCount = function () {\n // we only need to update range borders if we are in a range\n if (this.rangeCount > 0) {\n this.updateRangeBorders();\n this.refreshHandle();\n }\n };\n CellComp.prototype.refreshHandle = function () {\n var shouldHaveSelectionHandle = this.shouldHaveSelectionHandle();\n if (this.selectionHandle && !shouldHaveSelectionHandle) {\n this.selectionHandle.destroy();\n this.selectionHandle = null;\n }\n if (shouldHaveSelectionHandle) {\n this.addSelectionHandle();\n }\n };\n CellComp.prototype.updateRangeBorders = function () {\n var rangeBorders = this.getRangeBorders();\n var isSingleCell = this.rangeCount === 1 && !this.beans.rangeController.isMoreThanOneCell();\n var isTop = !isSingleCell && rangeBorders.top;\n var isRight = !isSingleCell && rangeBorders.right;\n var isBottom = !isSingleCell && rangeBorders.bottom;\n var isLeft = !isSingleCell && rangeBorders.left;\n var element = this.getGui();\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-top', isTop);\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-right', isRight);\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-bottom', isBottom);\n utils_1._.addOrRemoveCssClass(element, 'ag-cell-range-left', isLeft);\n };\n CellComp.prototype.onFirstRightPinnedChanged = function () {\n var firstRightPinned = this.column.isFirstRightPinned();\n if (this.firstRightPinned !== firstRightPinned) {\n this.firstRightPinned = firstRightPinned;\n utils_1._.addOrRemoveCssClass(this.getGui(), 'ag-cell-first-right-pinned', firstRightPinned);\n }\n };\n CellComp.prototype.onLastLeftPinnedChanged = function () {\n var lastLeftPinned = this.column.isLastLeftPinned();\n if (this.lastLeftPinned !== lastLeftPinned) {\n this.lastLeftPinned = lastLeftPinned;\n utils_1._.addOrRemoveCssClass(this.getGui(), 'ag-cell-last-left-pinned', lastLeftPinned);\n }\n };\n CellComp.prototype.populateTemplate = function () {\n if (this.usingWrapper) {\n this.eParentOfValue = this.getRefElement('eCellValue');\n this.eCellWrapper = this.getRefElement('eCellWrapper');\n if (this.includeRowDraggingComponent) {\n this.addRowDragging();\n }\n if (this.includeDndSourceComponent) {\n this.addDndSource();\n }\n if (this.includeSelectionComponent) {\n this.addSelectionCheckbox();\n }\n }\n else {\n this.eParentOfValue = this.getGui();\n }\n };\n CellComp.prototype.getFrameworkOverrides = function () {\n return this.beans.frameworkOverrides;\n };\n CellComp.prototype.addRowDragging = function () {\n var pagination = this.beans.gridOptionsWrapper.isPagination();\n var rowDragManaged = this.beans.gridOptionsWrapper.isRowDragManaged();\n var clientSideRowModelActive = this.beans.gridOptionsWrapper.isRowModelDefault();\n if (rowDragManaged) {\n // row dragging only available in default row model\n if (!clientSideRowModelActive) {\n utils_1._.doOnce(function () { return console.warn('ag-Grid: managed row dragging is only allowed in the Client Side Row Model'); }, 'CellComp.addRowDragging');\n return;\n }\n if (pagination) {\n utils_1._.doOnce(function () { return console.warn('ag-Grid: managed row dragging is not possible when doing pagination'); }, 'CellComp.addRowDragging');\n return;\n }\n }\n var rowDraggingComp = new rowDragComp_1.RowDragComp(this.rowNode, this.column, this.getValueToUse(), this.beans);\n this.addFeature(this.beans.context, rowDraggingComp);\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(rowDraggingComp.getGui(), this.eParentOfValue);\n };\n CellComp.prototype.addDndSource = function () {\n var dndSourceComp = new dndSourceComp_1.DndSourceComp(this.rowNode, this.column, this.getValueToUse(), this.beans, this.getGui());\n this.addFeature(this.beans.context, dndSourceComp);\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(dndSourceComp.getGui(), this.eParentOfValue);\n };\n CellComp.prototype.addSelectionCheckbox = function () {\n var cbSelectionComponent = new checkboxSelectionComponent_1.CheckboxSelectionComponent();\n this.beans.context.wireBean(cbSelectionComponent);\n var visibleFunc = this.getComponentHolder().checkboxSelection;\n visibleFunc = typeof visibleFunc === 'function' ? visibleFunc : null;\n cbSelectionComponent.init({ rowNode: this.rowNode, column: this.column, visibleFunc: visibleFunc });\n this.addDestroyFunc(function () { return cbSelectionComponent.destroy(); });\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(cbSelectionComponent.getGui(), this.eParentOfValue);\n };\n CellComp.prototype.addDomData = function () {\n var _this = this;\n var element = this.getGui();\n this.beans.gridOptionsWrapper.setDomData(element, CellComp.DOM_DATA_KEY_CELL_COMP, this);\n this.addDestroyFunc(function () {\n return _this.beans.gridOptionsWrapper.setDomData(element, CellComp.DOM_DATA_KEY_CELL_COMP, null);\n });\n };\n CellComp.prototype.onCellFocused = function (event) {\n var cellFocused = this.beans.focusedCellController.isCellFocused(this.cellPosition);\n // see if we need to change the classes on this cell\n if (cellFocused !== this.cellFocused) {\n // if we are not doing cell selection, then the focus class does not change\n var doingFocusCss = !this.beans.gridOptionsWrapper.isSuppressCellSelection();\n if (doingFocusCss) {\n utils_1._.addOrRemoveCssClass(this.getGui(), 'ag-cell-focus', cellFocused);\n }\n this.cellFocused = cellFocused;\n }\n // if this cell was just focused, see if we need to force browser focus, his can\n // happen if focus is programmatically set.\n if (cellFocused && event && event.forceBrowserFocus) {\n var eGui = this.getGui();\n eGui.focus();\n utils_1._.doIeFocusHack(eGui);\n }\n // if another cell was focused, and we are editing, then stop editing\n var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();\n if (!cellFocused && !fullRowEdit && this.editingCell) {\n this.stopRowOrCellEdit();\n }\n };\n // pass in 'true' to cancel the editing.\n CellComp.prototype.stopRowOrCellEdit = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n if (this.beans.gridOptionsWrapper.isFullRowEdit()) {\n this.rowComp.stopRowEditing(cancel);\n }\n else {\n this.stopEditing(cancel);\n }\n };\n CellComp.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n if (!this.editingCell) {\n return;\n }\n // if no cell editor, this means due to async, that the cell editor never got initialised,\n // so we just carry on regardless as if the editing was never started.\n if (!this.cellEditor) {\n this.editingCell = false;\n return;\n }\n var newValueExists = false;\n var newValue;\n if (!cancel) {\n // also have another option here to cancel after editing, so for example user could have a popup editor and\n // it is closed by user clicking outside the editor. then the editor will close automatically (with false\n // passed above) and we need to see if the editor wants to accept the new value.\n var userWantsToCancel = this.cellEditor.isCancelAfterEnd && this.cellEditor.isCancelAfterEnd();\n if (!userWantsToCancel) {\n newValue = this.cellEditor.getValue();\n newValueExists = true;\n }\n }\n // it is important we set this after setValue() above, as otherwise the cell will flash\n // when editing stops. the 'refresh' method checks editing, and doesn't refresh editing cells.\n // thus it will skip the refresh on this cell until the end of this method where we call\n // refresh directly and we suppress the flash.\n this.editingCell = false;\n if (this.cellEditor.destroy) {\n this.cellEditor.destroy();\n }\n // important to clear this out - as parts of the code will check for\n // this to see if an async cellEditor has yet to be created\n this.cellEditor = null;\n if (this.cellEditorInPopup && this.hideEditorPopup) {\n this.hideEditorPopup();\n this.hideEditorPopup = null;\n }\n else {\n utils_1._.clearElement(this.getGui());\n // put the cell back the way it was before editing\n if (this.usingWrapper) {\n // if wrapper, then put the wrapper back\n this.getGui().appendChild(this.eCellWrapper);\n }\n else {\n // if cellRenderer, then put the gui back in. if the renderer has\n // a refresh, it will be called. however if it doesn't, then later\n // the renderer will be destroyed and a new one will be created.\n if (this.cellRenderer) {\n // we know it's a dom element (not a string) because we converted\n // it after the gui was attached if it was a string.\n var eCell = this.cellRendererGui;\n // can be null if cell was previously null / contained empty string,\n // this will result in new value not being rendered.\n if (eCell) {\n this.getGui().appendChild(eCell);\n }\n }\n }\n }\n this.setInlineEditingClass();\n if (newValueExists) {\n // we suppressRefreshCell because the call to rowNode.setDataValue() results in change detection\n // getting triggered, which results in all cells getting refreshed. we do not want this refresh\n // to happen on this call as we want to call it explicitly below. otherwise refresh gets called twice.\n // if we only did this refresh (and not the one below) then the cell would flash and not be forced.\n this.suppressRefreshCell = true;\n this.rowNode.setDataValue(this.column, newValue);\n this.suppressRefreshCell = false;\n }\n // we suppress the flash, as it is not correct to flash the cell the user has finished editing,\n // the user doesn't need to flash as they were the one who did the edit, the flash is pointless\n // (as the flash is meant to draw the user to a change that they didn't manually do themselves).\n this.refreshCell({ forceRefresh: true, suppressFlash: true });\n var event = this.createEvent(null, events_1.Events.EVENT_CELL_EDITING_STOPPED);\n this.beans.eventService.dispatchEvent(event);\n };\n CellComp.DOM_DATA_KEY_CELL_COMP = 'cellComp';\n CellComp.CELL_RENDERER_TYPE_NORMAL = 'cellRenderer';\n CellComp.CELL_RENDERER_TYPE_PINNED = 'pinnedRowCellRenderer';\n return CellComp;\n}(component_1.Component));\nexports.CellComp = CellComp;\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 gridOptionsWrapper_1 = require(\"../../gridOptionsWrapper\");\nvar context_1 = require(\"../../context/context\");\nvar component_1 = require(\"../../widgets/component\");\nvar LoadingOverlayComponent = /** @class */ (function (_super) {\n __extends(LoadingOverlayComponent, _super);\n function LoadingOverlayComponent() {\n return _super.call(this) || this;\n }\n LoadingOverlayComponent.prototype.init = function (params) {\n var template = this.gridOptionsWrapper.getOverlayLoadingTemplate() ?\n this.gridOptionsWrapper.getOverlayLoadingTemplate() : LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var localisedTemplate = template.replace('[LOADING...]', localeTextFunc('loadingOoo', 'Loading...'));\n this.setTemplate(localisedTemplate);\n };\n LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE = '[LOADING...]';\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], LoadingOverlayComponent.prototype, \"gridOptionsWrapper\", void 0);\n return LoadingOverlayComponent;\n}(component_1.Component));\nexports.LoadingOverlayComponent = LoadingOverlayComponent;\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar PropertyKeys = /** @class */ (function () {\n function PropertyKeys() {\n }\n PropertyKeys.STRING_PROPERTIES = [\n 'sortingOrder', 'rowClass', 'rowSelection', 'overlayLoadingTemplate',\n 'overlayNoRowsTemplate', 'quickFilterText', 'rowModelType',\n 'editType', 'domLayout', 'clipboardDeliminator', 'rowGroupPanelShow',\n 'multiSortKey', 'pivotColumnGroupTotals', 'pivotRowTotals', 'pivotPanelShow'\n ];\n PropertyKeys.OBJECT_PROPERTIES = [\n 'components', 'frameworkComponents', 'rowStyle', 'context', 'autoGroupColumnDef', 'groupColumnDef', 'localeText',\n 'icons', 'datasource', 'serverSideDatasource', 'viewportDatasource', 'groupRowRendererParams', 'aggFuncs',\n 'fullWidthCellRendererParams', 'defaultColGroupDef', 'defaultColDef', 'defaultExportParams', 'columnTypes',\n 'rowClassRules', 'detailGridOptions', 'detailCellRendererParams', 'loadingCellRendererParams', 'loadingOverlayComponentParams',\n 'noRowsOverlayComponentParams', 'popupParent', 'colResizeDefault', 'reduxStore', 'statusBar', 'sideBar'\n ];\n PropertyKeys.ARRAY_PROPERTIES = [\n 'slaveGrids', 'alignedGrids', 'rowData',\n 'columnDefs', 'excelStyles', 'pinnedTopRowData', 'pinnedBottomRowData'\n /** @deprecated */\n ];\n PropertyKeys.NUMBER_PROPERTIES = [\n 'rowHeight', 'detailRowHeight', 'rowBuffer', 'colWidth', 'headerHeight', 'groupHeaderHeight',\n 'floatingFiltersHeight', 'pivotHeaderHeight', 'pivotGroupHeaderHeight', 'groupDefaultExpanded',\n 'minColWidth', 'maxColWidth', 'viewportRowModelPageSize', 'viewportRowModelBufferSize',\n 'autoSizePadding', 'maxBlocksInCache', 'maxConcurrentDatasourceRequests',\n 'cacheOverflowSize', 'paginationPageSize', 'cacheBlockSize', 'infiniteInitialRowCount',\n 'scrollbarWidth', 'paginationStartPage', 'infiniteBlockSize', 'batchUpdateWaitMillis',\n 'blockLoadDebounceMillis', 'keepDetailRowsCount'\n ];\n PropertyKeys.BOOLEAN_PROPERTIES = [\n 'toolPanelSuppressRowGroups', 'toolPanelSuppressValues', 'toolPanelSuppressPivots', 'toolPanelSuppressPivotMode',\n 'toolPanelSuppressSideButtons', 'toolPanelSuppressColumnFilter', 'toolPanelSuppressColumnSelectAll',\n 'toolPanelSuppressColumnExpandAll', 'suppressMakeColumnVisibleAfterUnGroup', 'suppressRowClickSelection',\n 'suppressCellSelection', 'suppressHorizontalScroll', 'alwaysShowVerticalScroll', 'debug', 'enableBrowserTooltips', 'enableColResize',\n 'enableCellExpressions', 'enableSorting', 'enableServerSideSorting', 'enableFilter', 'enableServerSideFilter',\n 'angularCompileRows', 'angularCompileFilters', 'angularCompileHeaders', 'groupSuppressAutoColumn', 'groupSelectsChildren',\n 'groupIncludeFooter', 'groupIncludeTotalFooter', 'groupUseEntireRow', 'groupSuppressRow', 'groupSuppressBlankHeader',\n 'forPrint', 'suppressMenuHide', 'rowDeselection', 'unSortIcon', 'suppressMultiSort', 'singleClickEdit',\n 'suppressLoadingOverlay', 'suppressNoRowsOverlay', 'suppressAutoSize', 'suppressParentsInRowNodes', 'showToolPanel',\n 'suppressColumnMoveAnimation', 'suppressMovableColumns', 'suppressFieldDotNotation', 'enableRangeSelection',\n 'enableRangeHandle', 'enableFillHandle', 'deltaSort', 'suppressTouch', 'suppressAsyncEvents', 'allowContextMenuWithControlKey',\n 'suppressContextMenu', 'suppressMenuFilterPanel', 'suppressMenuMainPanel', 'suppressMenuColumnPanel', 'rememberGroupStateWhenNewData',\n 'enableCellChangeFlash', 'suppressDragLeaveHidesColumns', 'suppressMiddleClickScrolls', 'suppressPreventDefaultOnMouseWheel',\n 'suppressUseColIdForGroups', 'suppressCopyRowsToClipboard', 'copyHeadersToClipboard', 'pivotMode', 'suppressAggFuncInHeader',\n 'suppressColumnVirtualisation', 'suppressAggAtRootLevel', 'suppressFocusAfterRefresh', 'functionsPassive', 'functionsReadOnly',\n 'animateRows', 'groupSelectsFiltered', 'groupRemoveSingleChildren', 'groupRemoveLowestSingleChildren', 'enableRtl',\n 'suppressClickEdit', 'rowDragManaged', 'suppressRowDrag', 'enableGroupEdit', 'embedFullWidthRows', 'deprecatedEmbedFullWidthRows',\n 'suppressTabbing', 'suppressPaginationPanel', 'floatingFilter', 'groupHideOpenParents', 'groupMultiAutoColumn', 'pagination',\n 'stopEditingWhenGridLosesFocus', 'paginationAutoPageSize', 'suppressScrollOnNewData', 'purgeClosedRowNodes', 'cacheQuickFilter',\n 'deltaRowDataMode', 'ensureDomOrder', 'accentedSort', 'pivotTotals', 'suppressChangeDetection', 'valueCache', 'valueCacheNeverExpires',\n 'aggregateOnlyChangedColumns', 'suppressAnimationFrame', 'suppressExcelExport', 'suppressCsvExport', 'treeData', 'masterDetail',\n 'suppressMultiRangeSelection', 'enterMovesDownAfterEdit', 'enterMovesDown', 'suppressPropertyNamesCheck', 'rowMultiSelectWithClick',\n 'contractColumnSelection', 'suppressEnterpriseResetOnNewColumns', 'enableOldSetFilterModel', 'suppressRowHoverHighlight',\n 'gridAutoHeight', 'suppressRowTransform', 'suppressClipboardPaste', 'serverSideSortingAlwaysResets', 'reactNext',\n 'suppressSetColumnStateEvents', 'enableCharts', 'deltaColumnMode', 'suppressMaintainUnsortedOrder', 'enableCellTextSelection',\n 'suppressBrowserResizeObserver', 'suppressMaxRenderedRowRestriction', 'excludeChildrenWhenTreeDataFiltering',\n 'keepDetailRows', 'paginateChildRows', 'preventDefaultOnContextMenu'\n ];\n PropertyKeys.FUNCTION_PROPERTIES = ['localeTextFunc', 'groupRowInnerRenderer', 'groupRowInnerRendererFramework',\n 'dateComponent', 'dateComponentFramework', 'groupRowRenderer', 'groupRowRendererFramework', 'isExternalFilterPresent',\n 'getRowHeight', 'doesExternalFilterPass', 'getRowClass', 'getRowStyle', 'getRowClassRules',\n 'traverseNode', 'getContextMenuItems', 'getMainMenuItems', 'processRowPostCreate', 'processCellForClipboard',\n 'getNodeChildDetails', 'groupRowAggNodes', 'getRowNodeId', 'isFullWidthCell', 'fullWidthCellRenderer',\n 'fullWidthCellRendererFramework', 'doesDataFlower', 'processSecondaryColDef', 'processSecondaryColGroupDef',\n 'getBusinessKeyForNode', 'sendToClipboard', 'navigateToNextCell', 'tabToNextCell', 'getDetailRowData',\n 'processCellFromClipboard', 'getDocument', 'postProcessPopup', 'getChildCount', 'getDataPath', 'loadingCellRenderer',\n 'loadingCellRendererFramework', 'loadingOverlayComponent', 'loadingOverlayComponentFramework', 'noRowsOverlayComponent',\n 'noRowsOverlayComponentFramework', 'detailCellRenderer', 'detailCellRendererFramework', 'onGridReady',\n 'defaultGroupSortComparator', 'isRowMaster', 'isRowSelectable', 'postSort', 'processHeaderForClipboard',\n 'paginationNumberFormatter', 'processDataFromClipboard', 'getServerSideGroupKey', 'isServerSideGroup',\n 'suppressKeyboardEvent', 'createChartContainer', 'processChartOptions', 'getChartToolbarItems'];\n PropertyKeys.ALL_PROPERTIES = PropertyKeys.ARRAY_PROPERTIES\n .concat(PropertyKeys.OBJECT_PROPERTIES)\n .concat(PropertyKeys.STRING_PROPERTIES)\n .concat(PropertyKeys.NUMBER_PROPERTIES)\n .concat(PropertyKeys.FUNCTION_PROPERTIES)\n .concat(PropertyKeys.BOOLEAN_PROPERTIES);\n // used when doing property checks - this causes noise when using frameworks which can add their own fw specific\n // properties to colDefs, gridOptions etc\n PropertyKeys.FRAMEWORK_PROPERTIES = ['__ob__', '__metadata__', 'mappedColumnProperties', 'hasChildColumns',\n 'toColDef', 'createColDefFromGridColumn'];\n return PropertyKeys;\n}());\nexports.PropertyKeys = PropertyKeys;\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 gridOptionsWrapper_1 = require(\"../../gridOptionsWrapper\");\nvar expressionService_1 = require(\"../../valueService/expressionService\");\nvar eventService_1 = require(\"../../eventService\");\nvar constants_1 = require(\"../../constants\");\nvar context_1 = require(\"../../context/context\");\nvar component_1 = require(\"../../widgets/component\");\nvar rowNode_1 = require(\"../../entities/rowNode\");\nvar valueFormatterService_1 = require(\"../valueFormatterService\");\nvar checkboxSelectionComponent_1 = require(\"../checkboxSelectionComponent\");\nvar columnController_1 = require(\"../../columnController/columnController\");\nvar column_1 = require(\"../../entities/column\");\nvar componentAnnotations_1 = require(\"../../widgets/componentAnnotations\");\nvar mouseEventService_1 = require(\"../../gridPanel/mouseEventService\");\nvar userComponentFactory_1 = require(\"../../components/framework/userComponentFactory\");\nvar utils_1 = require(\"../../utils\");\nvar GroupCellRenderer = /** @class */ (function (_super) {\n __extends(GroupCellRenderer, _super);\n function GroupCellRenderer() {\n return _super.call(this, GroupCellRenderer.TEMPLATE) || this;\n }\n GroupCellRenderer.prototype.init = function (params) {\n this.params = params;\n if (this.gridOptionsWrapper.isGroupIncludeTotalFooter()) {\n this.assignBlankValueToGroupFooterCell(params);\n }\n var embeddedRowMismatch = this.isEmbeddedRowMismatch();\n // This allows for empty strings to appear as groups since\n // it will only return for null or undefined.\n var cellIsEmpty = params.value == null;\n this.cellIsBlank = embeddedRowMismatch || cellIsEmpty;\n if (this.cellIsBlank) {\n return;\n }\n this.setupDragOpenParents();\n this.addExpandAndContract();\n this.addCheckboxIfNeeded();\n this.addValueElement();\n this.setupIndent();\n };\n GroupCellRenderer.prototype.assignBlankValueToGroupFooterCell = function (params) {\n // this is not ideal, but it was the only way we could get footer working for the root node\n if (!params.value && params.node.level == -1) {\n params.value = '';\n }\n };\n // if we are doing embedded full width rows, we only show the renderer when\n // in the body, or if pinning in the pinned section, or if pinning and RTL,\n // in the right section. otherwise we would have the cell repeated in each section.\n GroupCellRenderer.prototype.isEmbeddedRowMismatch = function () {\n if (this.params.fullWidth && this.gridOptionsWrapper.isEmbedFullWidthRows()) {\n var pinnedLeftCell = this.params.pinned === column_1.Column.PINNED_LEFT;\n var pinnedRightCell = this.params.pinned === column_1.Column.PINNED_RIGHT;\n var bodyCell = !pinnedLeftCell && !pinnedRightCell;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n if (this.columnController.isPinningLeft()) {\n return !pinnedRightCell;\n }\n else {\n return !bodyCell;\n }\n }\n else {\n if (this.columnController.isPinningLeft()) {\n return !pinnedLeftCell;\n }\n else {\n return !bodyCell;\n }\n }\n }\n else {\n return false;\n }\n };\n GroupCellRenderer.prototype.setIndent = function () {\n if (this.gridOptionsWrapper.isGroupHideOpenParents()) {\n return;\n }\n var params = this.params;\n var rowNode = params.node;\n var paddingCount = rowNode.uiLevel;\n var userProvidedPaddingPixelsTheDeprecatedWay = params.padding >= 0;\n if (userProvidedPaddingPixelsTheDeprecatedWay) {\n this.setPaddingDeprecatedWay(paddingCount, params.padding);\n return;\n }\n if (this.indentClass) {\n this.removeCssClass(this.indentClass);\n }\n this.indentClass = 'ag-row-group-indent-' + paddingCount;\n this.addCssClass(this.indentClass);\n };\n GroupCellRenderer.prototype.setPaddingDeprecatedWay = function (paddingCount, padding) {\n utils_1._.doOnce(function () { return console.warn('ag-Grid: since v14.2, configuring padding for groupCellRenderer should be done with Sass variables and themes. Please see the ag-Grid documentation page for Themes, in particular the property $row-group-indent-size.'); }, 'groupCellRenderer->doDeprecatedWay');\n var paddingPx = paddingCount * padding;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n // if doing rtl, padding is on the right\n this.getGui().style.paddingRight = paddingPx + 'px';\n }\n else {\n // otherwise it is on the left\n this.getGui().style.paddingLeft = paddingPx + 'px';\n }\n };\n GroupCellRenderer.prototype.setupIndent = function () {\n // only do this if an indent - as this overwrites the padding that\n // the theme set, which will make things look 'not aligned' for the\n // first group level.\n var node = this.params.node;\n var suppressPadding = this.params.suppressPadding;\n if (!suppressPadding) {\n this.addDestroyableEventListener(node, rowNode_1.RowNode.EVENT_UI_LEVEL_CHANGED, this.setIndent.bind(this));\n this.setIndent();\n }\n };\n GroupCellRenderer.prototype.addValueElement = function () {\n var params = this.params;\n var rowNode = this.displayedGroup;\n if (rowNode.footer) {\n this.createFooterCell();\n }\n else if (rowNode.hasChildren() ||\n utils_1._.get(params.colDef, 'cellRendererParams.innerRenderer', null) ||\n utils_1._.get(params.colDef, 'cellRendererParams.innerRendererFramework', null)) {\n this.createGroupCell();\n if (rowNode.hasChildren()) {\n this.addChildCount();\n }\n }\n else {\n this.createLeafCell();\n }\n };\n GroupCellRenderer.prototype.createFooterCell = function () {\n var footerValue;\n var footerValueGetter = this.params.footerValueGetter;\n if (footerValueGetter) {\n // params is same as we were given, except we set the value as the item to display\n var paramsClone = utils_1._.cloneObject(this.params);\n paramsClone.value = this.params.value;\n if (typeof footerValueGetter === 'function') {\n footerValue = footerValueGetter(paramsClone);\n }\n else if (typeof footerValueGetter === 'string') {\n footerValue = this.expressionService.evaluate(footerValueGetter, paramsClone);\n }\n else {\n console.warn('ag-Grid: footerValueGetter should be either a function or a string (expression)');\n }\n }\n else {\n footerValue = 'Total ' + this.params.value;\n }\n this.eValue.innerHTML = footerValue;\n };\n GroupCellRenderer.prototype.createGroupCell = function () {\n var _this = this;\n var params = this.params;\n var rowGroupColumn = this.displayedGroup.rowGroupColumn;\n // we try and use the cellRenderer of the column used for the grouping if we can\n var columnToUse = rowGroupColumn ? rowGroupColumn : params.column;\n var groupName = this.params.value;\n var valueFormatted = columnToUse ?\n this.valueFormatterService.formatValue(columnToUse, params.node, params.scope, groupName) : null;\n params.valueFormatted = valueFormatted;\n var rendererPromise;\n if (params.fullWidth == true) {\n rendererPromise = this.useFullWidth(params);\n }\n else {\n rendererPromise = this.useInnerRenderer(this.params.colDef.cellRendererParams, columnToUse.getColDef(), params);\n }\n // retain a reference to the created renderer - we'll use this later for cleanup (in destroy)\n if (rendererPromise) {\n rendererPromise.then(function (value) {\n _this.innerCellRenderer = value;\n });\n }\n };\n GroupCellRenderer.prototype.useInnerRenderer = function (groupCellRendererParams, groupedColumnDef, // the column this group row is for, eg 'Country'\n params) {\n // when grouping, the normal case is we use the cell renderer of the grouped column. eg if grouping by country\n // and then rating, we will use the country cell renderer for each country group row and likewise the rating\n // cell renderer for each rating group row.\n //\n // however if the user has innerCellRenderer defined, this gets preference and we don't use cell renderers\n // of the grouped columns.\n //\n // so we check and use in the following order:\n //\n // 1) thisColDef.cellRendererParams.innerRenderer of the column showing the groups (eg auto group column)\n // 2) groupedColDef.cellRenderer of the grouped column\n // 3) groupedColDef.cellRendererParams.innerRenderer\n var _this = this;\n var cellRendererPromise = null;\n // we check if cell renderer provided for the group cell renderer, eg colDef.cellRendererParams.innerRenderer\n var groupInnerRendererClass = this.userComponentFactory\n .lookupComponentClassDef(groupCellRendererParams, \"innerRenderer\");\n if (groupInnerRendererClass && groupInnerRendererClass.component != null\n && groupInnerRendererClass.source != userComponentFactory_1.ComponentSource.DEFAULT) {\n // use the renderer defined in cellRendererParams.innerRenderer\n cellRendererPromise = this.userComponentFactory.newInnerCellRenderer(groupCellRendererParams, params);\n }\n else {\n // otherwise see if we can use the cellRenderer of the column we are grouping by\n var groupColumnRendererClass = this.userComponentFactory\n .lookupComponentClassDef(groupedColumnDef, \"cellRenderer\");\n if (groupColumnRendererClass && groupColumnRendererClass.source != userComponentFactory_1.ComponentSource.DEFAULT) {\n // Only if the original column is using a specific renderer, it it is a using a DEFAULT one ignore it\n cellRendererPromise = this.userComponentFactory.newCellRenderer(groupedColumnDef, params);\n }\n else if (groupColumnRendererClass && groupColumnRendererClass.source == userComponentFactory_1.ComponentSource.DEFAULT\n && (utils_1._.get(groupedColumnDef, 'cellRendererParams.innerRenderer', null))) {\n // EDGE CASE - THIS COMES FROM A COLUMN WHICH HAS BEEN GROUPED DYNAMICALLY, THAT HAS AS RENDERER 'group'\n // AND HAS A INNER CELL RENDERER\n cellRendererPromise = this.userComponentFactory.newInnerCellRenderer(groupedColumnDef.cellRendererParams, params);\n }\n else {\n // This forces the retrieval of the default plain cellRenderer that just renders the values.\n cellRendererPromise = this.userComponentFactory.newCellRenderer({}, params);\n }\n }\n if (cellRendererPromise != null) {\n cellRendererPromise.then(function (rendererToUse) {\n if (rendererToUse == null) {\n _this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;\n return;\n }\n utils_1._.bindCellRendererToHtmlElement(cellRendererPromise, _this.eValue);\n });\n }\n else {\n this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;\n }\n return cellRendererPromise;\n };\n GroupCellRenderer.prototype.useFullWidth = function (params) {\n var cellRendererPromise = this.userComponentFactory.newFullWidthGroupRowInnerCellRenderer(params);\n if (cellRendererPromise != null) {\n utils_1._.bindCellRendererToHtmlElement(cellRendererPromise, this.eValue);\n }\n else {\n this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;\n }\n return cellRendererPromise;\n };\n GroupCellRenderer.prototype.addChildCount = function () {\n // only include the child count if it's included, eg if user doing custom aggregation,\n // then this could be left out, or set to -1, ie no child count\n if (this.params.suppressCount) {\n return;\n }\n this.addDestroyableEventListener(this.displayedGroup, rowNode_1.RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, this.updateChildCount.bind(this));\n // filtering changes the child count, so need to cater for it\n this.updateChildCount();\n };\n GroupCellRenderer.prototype.updateChildCount = function () {\n var allChildrenCount = this.displayedGroup.allChildrenCount;\n this.eChildCount.innerHTML = allChildrenCount >= 0 ? \"(\" + allChildrenCount + \")\" : \"\";\n };\n GroupCellRenderer.prototype.createLeafCell = function () {\n if (utils_1._.exists(this.params.value)) {\n this.eValue.innerText = this.params.valueFormatted ? this.params.valueFormatted : this.params.value;\n }\n };\n GroupCellRenderer.prototype.isUserWantsSelected = function () {\n var paramsCheckbox = this.params.checkbox;\n if (typeof paramsCheckbox === 'function') {\n return paramsCheckbox(this.params);\n }\n else {\n return paramsCheckbox === true;\n }\n };\n GroupCellRenderer.prototype.addCheckboxIfNeeded = function () {\n var rowNode = this.displayedGroup;\n var checkboxNeeded = this.isUserWantsSelected()\n // footers cannot be selected\n && !rowNode.footer\n // pinned rows cannot be selected\n && !rowNode.rowPinned\n // details cannot be selected\n && !rowNode.detail;\n if (checkboxNeeded) {\n var cbSelectionComponent_1 = new checkboxSelectionComponent_1.CheckboxSelectionComponent();\n this.getContext().wireBean(cbSelectionComponent_1);\n cbSelectionComponent_1.init({ rowNode: rowNode, column: this.params.column });\n this.eCheckbox.appendChild(cbSelectionComponent_1.getGui());\n this.addDestroyFunc(function () { return cbSelectionComponent_1.destroy(); });\n }\n utils_1._.addOrRemoveCssClass(this.eCheckbox, 'ag-invisible', !checkboxNeeded);\n };\n GroupCellRenderer.prototype.addExpandAndContract = function () {\n var params = this.params;\n var eGroupCell = params.eGridCell;\n var eExpandedIcon = utils_1._.createIconNoSpan('groupExpanded', this.gridOptionsWrapper, null);\n var eContractedIcon = utils_1._.createIconNoSpan('groupContracted', this.gridOptionsWrapper, null);\n this.eExpanded.appendChild(eExpandedIcon);\n this.eContracted.appendChild(eContractedIcon);\n this.addDestroyableEventListener(this.eExpanded, 'click', this.onExpandClicked.bind(this));\n this.addDestroyableEventListener(this.eContracted, 'click', this.onExpandClicked.bind(this));\n // expand / contract as the user hits enter\n this.addDestroyableEventListener(eGroupCell, 'keydown', this.onKeyDown.bind(this));\n this.addDestroyableEventListener(params.node, rowNode_1.RowNode.EVENT_EXPANDED_CHANGED, this.showExpandAndContractIcons.bind(this));\n this.showExpandAndContractIcons();\n // because we don't show the expand / contract when there are no children, we need to check every time\n // the number of children change.\n this.addDestroyableEventListener(this.displayedGroup, rowNode_1.RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, this.onAllChildrenCountChanged.bind(this));\n // if editing groups, then double click is to start editing\n if (!this.gridOptionsWrapper.isEnableGroupEdit() && this.isExpandable() && !params.suppressDoubleClickExpand) {\n this.addDestroyableEventListener(eGroupCell, 'dblclick', this.onCellDblClicked.bind(this));\n }\n };\n GroupCellRenderer.prototype.onAllChildrenCountChanged = function () {\n // maybe if no children now, we should hide the expand / contract icons\n this.showExpandAndContractIcons();\n // if we have no children, this impacts the indent\n this.setIndent();\n };\n GroupCellRenderer.prototype.onKeyDown = function (event) {\n var enterKeyPressed = utils_1._.isKeyPressed(event, constants_1.Constants.KEY_ENTER);\n if (enterKeyPressed) {\n if (this.params.suppressEnterExpand) {\n return;\n }\n var cellEditable = this.params.column && this.params.column.isCellEditable(this.params.node);\n if (cellEditable) {\n return;\n }\n event.preventDefault();\n this.onExpandOrContract();\n }\n };\n GroupCellRenderer.prototype.setupDragOpenParents = function () {\n var column = this.params.column;\n var rowNode = this.params.node;\n if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {\n this.draggedFromHideOpenParents = false;\n }\n else if (!rowNode.hasChildren()) {\n // if we are here, and we are not a group, then we must of been dragged down,\n // as otherwise the cell would be blank, and if cell is blank, this method is never called.\n this.draggedFromHideOpenParents = true;\n }\n else {\n var rowGroupColumn = rowNode.rowGroupColumn;\n if (rowGroupColumn) {\n // if the displayGroup column for this col matches the rowGroupColumn we grouped by for this node,\n // then nothing was dragged down\n this.draggedFromHideOpenParents = !column.isRowGroupDisplayed(rowGroupColumn.getId());\n }\n else {\n // the only way we can end up here (no column, but a group) is if we are at the root node,\n // which only happens when 'groupIncludeTotalFooter' is true. here, we are never dragging\n this.draggedFromHideOpenParents = false;\n }\n }\n if (this.draggedFromHideOpenParents) {\n var pointer = rowNode.parent;\n while (true) {\n if (utils_1._.missing(pointer)) {\n break;\n }\n if (pointer.rowGroupColumn && column.isRowGroupDisplayed(pointer.rowGroupColumn.getId())) {\n this.displayedGroup = pointer;\n break;\n }\n pointer = pointer.parent;\n }\n }\n // if we didn't find a displayed group, set it to the row node\n if (utils_1._.missing(this.displayedGroup)) {\n this.displayedGroup = rowNode;\n }\n };\n GroupCellRenderer.prototype.onExpandClicked = function (mouseEvent) {\n if (utils_1._.isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // so if we expand a node, it does not also get selected.\n utils_1._.stopPropagationForAgGrid(mouseEvent);\n this.onExpandOrContract();\n };\n GroupCellRenderer.prototype.onCellDblClicked = function (mouseEvent) {\n if (utils_1._.isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // we want to avoid acting on double click events on the expand / contract icon,\n // as that icons already has expand / collapse functionality on it. otherwise if\n // the icon was double clicked, we would get 'click', 'click', 'dblclick' which\n // is open->close->open, however double click should be open->close only.\n var targetIsExpandIcon = utils_1._.isElementInEventPath(this.eExpanded, mouseEvent)\n || utils_1._.isElementInEventPath(this.eContracted, mouseEvent);\n if (!targetIsExpandIcon) {\n this.onExpandOrContract();\n }\n };\n GroupCellRenderer.prototype.onExpandOrContract = function () {\n // must use the displayedGroup, so if data was dragged down, we expand the parent, not this row\n var rowNode = this.displayedGroup;\n rowNode.setExpanded(!rowNode.expanded);\n };\n GroupCellRenderer.prototype.isExpandable = function () {\n var rowNode = this.params.node;\n var reducedLeafNode = this.columnController.isPivotMode() && rowNode.leafGroup;\n return this.draggedFromHideOpenParents ||\n (rowNode.isExpandable() && !rowNode.footer && !reducedLeafNode);\n };\n GroupCellRenderer.prototype.showExpandAndContractIcons = function () {\n var rowNode = this.params.node;\n if (this.isExpandable()) {\n // if expandable, show one based on expand state.\n // if we were dragged down, means our parent is always expanded\n var expanded = this.draggedFromHideOpenParents ? true : rowNode.expanded;\n utils_1._.setDisplayed(this.eContracted, !expanded);\n utils_1._.setDisplayed(this.eExpanded, expanded);\n }\n else {\n // it not expandable, show neither\n utils_1._.setDisplayed(this.eExpanded, false);\n utils_1._.setDisplayed(this.eContracted, false);\n }\n var displayedGroup = this.displayedGroup;\n // compensation padding for leaf nodes, so there is blank space instead of the expand icon\n var pivotModeAndLeafGroup = this.columnController.isPivotMode() && displayedGroup.leafGroup;\n var notExpandable = !displayedGroup.isExpandable();\n var addLeafIndentClass = displayedGroup.footer || notExpandable || pivotModeAndLeafGroup;\n this.addOrRemoveCssClass('ag-row-group', !addLeafIndentClass);\n this.addOrRemoveCssClass('ag-row-group-leaf-indent', addLeafIndentClass);\n };\n GroupCellRenderer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.innerCellRenderer && this.innerCellRenderer.destroy) {\n this.innerCellRenderer.destroy();\n }\n };\n GroupCellRenderer.prototype.refresh = function () {\n return false;\n };\n GroupCellRenderer.TEMPLATE = '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '';\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], GroupCellRenderer.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('expressionService'),\n __metadata(\"design:type\", expressionService_1.ExpressionService)\n ], GroupCellRenderer.prototype, \"expressionService\", void 0);\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], GroupCellRenderer.prototype, \"eventService\", void 0);\n __decorate([\n context_1.Autowired('valueFormatterService'),\n __metadata(\"design:type\", valueFormatterService_1.ValueFormatterService)\n ], GroupCellRenderer.prototype, \"valueFormatterService\", void 0);\n __decorate([\n context_1.Autowired('columnController'),\n __metadata(\"design:type\", columnController_1.ColumnController)\n ], GroupCellRenderer.prototype, \"columnController\", void 0);\n __decorate([\n context_1.Autowired('mouseEventService'),\n __metadata(\"design:type\", mouseEventService_1.MouseEventService)\n ], GroupCellRenderer.prototype, \"mouseEventService\", void 0);\n __decorate([\n context_1.Autowired('userComponentFactory'),\n __metadata(\"design:type\", userComponentFactory_1.UserComponentFactory)\n ], GroupCellRenderer.prototype, \"userComponentFactory\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eExpanded'),\n __metadata(\"design:type\", HTMLElement)\n ], GroupCellRenderer.prototype, \"eExpanded\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eContracted'),\n __metadata(\"design:type\", HTMLElement)\n ], GroupCellRenderer.prototype, \"eContracted\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eCheckbox'),\n __metadata(\"design:type\", HTMLElement)\n ], GroupCellRenderer.prototype, \"eCheckbox\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eValue'),\n __metadata(\"design:type\", HTMLElement)\n ], GroupCellRenderer.prototype, \"eValue\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eChildCount'),\n __metadata(\"design:type\", HTMLElement)\n ], GroupCellRenderer.prototype, \"eChildCount\", void 0);\n return GroupCellRenderer;\n}(component_1.Component));\nexports.GroupCellRenderer = GroupCellRenderer;\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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar column_1 = require(\"../../entities/column\");\nvar beanStub_1 = require(\"../../context/beanStub\");\nvar constants_1 = require(\"../../constants\");\nvar utils_1 = require(\"../../utils\");\nvar SetLeftFeature = /** @class */ (function (_super) {\n __extends(SetLeftFeature, _super);\n function SetLeftFeature(columnOrGroup, eCell, beans, colsSpanning) {\n var _this = _super.call(this) || this;\n _this.columnOrGroup = columnOrGroup;\n _this.eCell = eCell;\n _this.colsSpanning = colsSpanning;\n _this.beans = beans;\n _this.printLayout = beans.gridOptionsWrapper.getDomLayout() === constants_1.Constants.DOM_LAYOUT_PRINT;\n return _this;\n }\n SetLeftFeature.prototype.setColsSpanning = function (colsSpanning) {\n this.colsSpanning = colsSpanning;\n this.onLeftChanged();\n };\n SetLeftFeature.prototype.getColumnOrGroup = function () {\n if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {\n return utils_1._.last(this.colsSpanning);\n }\n else {\n return this.columnOrGroup;\n }\n };\n SetLeftFeature.prototype.init = function () {\n this.addDestroyableEventListener(this.columnOrGroup, column_1.Column.EVENT_LEFT_CHANGED, this.onLeftChanged.bind(this));\n this.setLeftFirstTime();\n };\n SetLeftFeature.prototype.setLeftFirstTime = function () {\n var suppressMoveAnimation = this.beans.gridOptionsWrapper.isSuppressColumnMoveAnimation();\n var oldLeftExists = utils_1._.exists(this.columnOrGroup.getOldLeft());\n var animateColumnMove = this.beans.columnAnimationService.isActive() && oldLeftExists && !suppressMoveAnimation;\n if (animateColumnMove) {\n this.animateInLeft();\n }\n else {\n this.onLeftChanged();\n }\n };\n SetLeftFeature.prototype.animateInLeft = function () {\n var _this = this;\n var left = this.getColumnOrGroup().getLeft();\n var oldLeft = this.getColumnOrGroup().getOldLeft();\n this.setLeft(oldLeft);\n // we must keep track of the left we want to set to, as this would otherwise lead to a race\n // condition, if the user changed the left value many times in one VM turn, then we want to make\n // make sure the actualLeft we set in the timeout below (in the next VM turn) is the correct left\n // position. eg if user changes column position twice, then setLeft() below executes twice in next\n // VM turn, but only one (the correct one) should get applied.\n this.actualLeft = left;\n this.beans.columnAnimationService.executeNextVMTurn(function () {\n // test this left value is the latest one to be applied, and if not, do nothing\n if (_this.actualLeft === left) {\n _this.setLeft(left);\n }\n });\n };\n SetLeftFeature.prototype.onLeftChanged = function () {\n var colOrGroup = this.getColumnOrGroup();\n var left = colOrGroup.getLeft();\n this.actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(this.actualLeft);\n };\n SetLeftFeature.prototype.modifyLeftForPrintLayout = function (colOrGroup, leftPosition) {\n if (!this.printLayout) {\n return leftPosition;\n }\n if (colOrGroup.getPinned() === column_1.Column.PINNED_LEFT) {\n return leftPosition;\n }\n else if (colOrGroup.getPinned() === column_1.Column.PINNED_RIGHT) {\n var leftWidth = this.beans.columnController.getPinnedLeftContainerWidth();\n var bodyWidth = this.beans.columnController.getBodyContainerWidth();\n return leftWidth + bodyWidth + leftPosition;\n }\n else {\n // is in body\n var leftWidth = this.beans.columnController.getPinnedLeftContainerWidth();\n return leftWidth + leftPosition;\n }\n };\n SetLeftFeature.prototype.setLeft = function (value) {\n // if the value is null, then that means the column is no longer\n // displayed. there is logic in the rendering to fade these columns\n // out, so we don't try and change their left positions.\n if (utils_1._.exists(value)) {\n this.eCell.style.left = value + \"px\";\n }\n };\n return SetLeftFeature;\n}(beanStub_1.BeanStub));\nexports.SetLeftFeature = SetLeftFeature;\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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar popupComponent_1 = require(\"../../widgets/popupComponent\");\nvar constants_1 = require(\"../../constants\");\nvar utils_1 = require(\"../../utils\");\nvar LargeTextCellEditor = /** @class */ (function (_super) {\n __extends(LargeTextCellEditor, _super);\n function LargeTextCellEditor() {\n return _super.call(this, LargeTextCellEditor.TEMPLATE) || this;\n }\n LargeTextCellEditor.prototype.init = function (params) {\n this.params = params;\n this.focusAfterAttached = params.cellStartedEdit;\n this.textarea = document.createElement(\"textarea\");\n this.textarea.maxLength = params.maxLength ? params.maxLength : \"200\";\n this.textarea.cols = params.cols ? params.cols : \"60\";\n this.textarea.rows = params.rows ? params.rows : \"10\";\n if (utils_1._.exists(params.value)) {\n this.textarea.value = params.value.toString();\n }\n this.getGui().querySelector('.ag-large-textarea').appendChild(this.textarea);\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n };\n LargeTextCellEditor.prototype.onKeyDown = function (event) {\n var key = event.which || event.keyCode;\n if (key == constants_1.Constants.KEY_LEFT ||\n key == constants_1.Constants.KEY_UP ||\n key == constants_1.Constants.KEY_RIGHT ||\n key == constants_1.Constants.KEY_DOWN ||\n (event.shiftKey && key == constants_1.Constants.KEY_ENTER)) { // shift+enter allows for newlines\n event.stopPropagation();\n }\n };\n LargeTextCellEditor.prototype.afterGuiAttached = function () {\n if (this.focusAfterAttached) {\n this.textarea.focus();\n }\n };\n LargeTextCellEditor.prototype.getValue = function () {\n return this.params.parseValue(this.textarea.value);\n };\n LargeTextCellEditor.TEMPLATE = \n // tab index is needed so we can focus, which is needed for keyboard events\n '
' +\n '
' +\n '
';\n return LargeTextCellEditor;\n}(popupComponent_1.PopupComponent));\nexports.LargeTextCellEditor = LargeTextCellEditor;\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 utils_1 = require(\"../../utils\");\nvar context_1 = require(\"../../context/context\");\nvar filterManager_1 = require(\"../../filter/filterManager\");\nvar AnimateSlideCellRenderer = /** @class */ (function (_super) {\n __extends(AnimateSlideCellRenderer, _super);\n function AnimateSlideCellRenderer() {\n var _this = _super.call(this, AnimateSlideCellRenderer.TEMPLATE) || this;\n _this.refreshCount = 0;\n _this.eCurrent = _this.queryForHtmlElement('.ag-value-slide-current');\n return _this;\n }\n AnimateSlideCellRenderer.prototype.init = function (params) {\n this.params = params;\n this.refresh(params);\n };\n AnimateSlideCellRenderer.prototype.addSlideAnimation = function () {\n var _this = this;\n this.refreshCount++;\n // below we keep checking this, and stop working on the animation\n // if it no longer matches - this means another animation has started\n // and this one is stale.\n var refreshCountCopy = this.refreshCount;\n // if old animation, remove it\n if (this.ePrevious) {\n this.getGui().removeChild(this.ePrevious);\n }\n this.ePrevious = utils_1._.loadTemplate('');\n this.ePrevious.innerHTML = this.eCurrent.innerHTML;\n this.getGui().insertBefore(this.ePrevious, this.eCurrent);\n // having timeout of 0 allows use to skip to the next css turn,\n // so we know the previous css classes have been applied. so the\n // complex set of setTimeout below creates the animation\n window.setTimeout(function () {\n if (refreshCountCopy !== _this.refreshCount) {\n return;\n }\n utils_1._.addCssClass(_this.ePrevious, 'ag-value-slide-out-end');\n }, 50);\n window.setTimeout(function () {\n if (refreshCountCopy !== _this.refreshCount) {\n return;\n }\n _this.getGui().removeChild(_this.ePrevious);\n _this.ePrevious = null;\n }, 3000);\n };\n AnimateSlideCellRenderer.prototype.refresh = function (params) {\n var value = params.value;\n if (utils_1._.missing(value)) {\n value = '';\n }\n if (value === this.lastValue) {\n return;\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return;\n }\n this.addSlideAnimation();\n this.lastValue = value;\n if (utils_1._.exists(params.valueFormatted)) {\n this.eCurrent.innerHTML = params.valueFormatted;\n }\n else if (utils_1._.exists(params.value)) {\n this.eCurrent.innerHTML = value;\n }\n else {\n utils_1._.clearElement(this.eCurrent);\n }\n return true;\n };\n AnimateSlideCellRenderer.TEMPLATE = '' +\n '' +\n '';\n __decorate([\n context_1.Autowired('filterManager'),\n __metadata(\"design:type\", filterManager_1.FilterManager)\n ], AnimateSlideCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateSlideCellRenderer;\n}(component_1.Component));\nexports.AnimateSlideCellRenderer = AnimateSlideCellRenderer;\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 beans_1 = require(\"./beans\");\nvar cellComp_1 = require(\"./cellComp\");\nvar columnController_1 = require(\"../columnController/columnController\");\nvar utils_1 = require(\"../utils\");\nvar AutoHeightCalculator = /** @class */ (function () {\n function AutoHeightCalculator() {\n }\n AutoHeightCalculator.prototype.registerGridComp = function (gridPanel) {\n this.gridPanel = gridPanel;\n };\n AutoHeightCalculator.prototype.getPreferredHeightForRow = function (rowNode) {\n var _this = this;\n if (!this.eDummyContainer) {\n this.eDummyContainer = document.createElement('div');\n // so any styles on row also get applied in dummy, otherwise\n // the content in dummy may differ to the real\n utils_1._.addCssClass(this.eDummyContainer, 'ag-row ag-row-no-focus');\n }\n // we put the dummy into the body container, so it will inherit all the\n // css styles that the real cells are inheriting\n var eBodyContainer = this.gridPanel.getCenterContainer();\n eBodyContainer.appendChild(this.eDummyContainer);\n var cellComps = [];\n var autoRowHeightCols = this.columnController.getAllAutoRowHeightCols();\n var visibleAutoRowHeightCols = autoRowHeightCols.filter(function (col) { return col.isVisible(); });\n visibleAutoRowHeightCols.forEach(function (col) {\n var cellComp = new cellComp_1.CellComp(_this.$scope, _this.beans, col, rowNode, null, true, false);\n cellComp.setParentRow(_this.eDummyContainer);\n cellComps.push(cellComp);\n });\n var template = cellComps.map(function (cellComp) { return cellComp.getCreateTemplate(); }).join(' ');\n this.eDummyContainer.innerHTML = template;\n // this gets any cellComps that are using components to put the components in\n cellComps.forEach(function (cellComp) { return cellComp.afterAttached(); });\n // we should be able to just take the height of the row at this point, however\n // the row isn't expanding to cover the cell heights, i don't know why, i couldn't\n // figure it out so instead looking at the individual cells instead\n var maxCellHeight = 0;\n for (var i = 0; i < this.eDummyContainer.children.length; i++) {\n var child = this.eDummyContainer.children[i];\n if (child.offsetHeight > maxCellHeight) {\n maxCellHeight = child.offsetHeight;\n }\n }\n // we are finished with the dummy container, so get rid of it\n eBodyContainer.removeChild(this.eDummyContainer);\n cellComps.forEach(function (cellComp) {\n // dunno why we need to detach first, doing it here to be consistent with code in RowComp\n cellComp.detach();\n cellComp.destroy();\n });\n // in case anything left over from last time\n utils_1._.clearElement(this.eDummyContainer);\n return maxCellHeight;\n };\n __decorate([\n context_1.Autowired('beans'),\n __metadata(\"design:type\", beans_1.Beans)\n ], AutoHeightCalculator.prototype, \"beans\", void 0);\n __decorate([\n context_1.Autowired(\"$scope\"),\n __metadata(\"design:type\", Object)\n ], AutoHeightCalculator.prototype, \"$scope\", void 0);\n __decorate([\n context_1.Autowired(\"columnController\"),\n __metadata(\"design:type\", columnController_1.ColumnController)\n ], AutoHeightCalculator.prototype, \"columnController\", void 0);\n AutoHeightCalculator = __decorate([\n context_1.Bean('autoHeightCalculator')\n ], AutoHeightCalculator);\n return AutoHeightCalculator;\n}());\nexports.AutoHeightCalculator = AutoHeightCalculator;\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 ColumnAnimationService = /** @class */ (function () {\n function ColumnAnimationService() {\n this.executeNextFuncs = [];\n this.executeLaterFuncs = [];\n this.active = false;\n this.animationThreadCount = 0;\n }\n ColumnAnimationService.prototype.registerGridComp = function (gridPanel) {\n this.gridPanel = gridPanel;\n };\n ColumnAnimationService.prototype.isActive = function () {\n return this.active;\n };\n ColumnAnimationService.prototype.start = function () {\n if (this.active) {\n return;\n }\n if (this.gridOptionsWrapper.isSuppressColumnMoveAnimation()) {\n return;\n }\n // if doing RTL, we don't animate open / close as due to how the pixels are inverted,\n // the animation moves all the row the the right rather than to the left (ie it's the static\n // columns that actually get their coordinates updated)\n if (this.gridOptionsWrapper.isEnableRtl()) {\n return;\n }\n this.ensureAnimationCssClassPresent();\n this.active = true;\n };\n ColumnAnimationService.prototype.finish = function () {\n if (!this.active) {\n return;\n }\n this.flush();\n this.active = false;\n };\n ColumnAnimationService.prototype.executeNextVMTurn = function (func) {\n if (this.active) {\n this.executeNextFuncs.push(func);\n }\n else {\n func();\n }\n };\n ColumnAnimationService.prototype.executeLaterVMTurn = function (func) {\n if (this.active) {\n this.executeLaterFuncs.push(func);\n }\n else {\n func();\n }\n };\n ColumnAnimationService.prototype.ensureAnimationCssClassPresent = function () {\n var _this = this;\n // up the count, so we can tell if someone else has updated the count\n // by the time the 'wait' func executes\n this.animationThreadCount++;\n var animationThreadCountCopy = this.animationThreadCount;\n this.gridPanel.setColumnMovingCss(true);\n this.executeLaterFuncs.push(function () {\n // only remove the class if this thread was the last one to update it\n if (_this.animationThreadCount === animationThreadCountCopy) {\n _this.gridPanel.setColumnMovingCss(false);\n }\n });\n };\n ColumnAnimationService.prototype.flush = function () {\n var nowFuncs = this.executeNextFuncs;\n this.executeNextFuncs = [];\n var waitFuncs = this.executeLaterFuncs;\n this.executeLaterFuncs = [];\n if (nowFuncs.length === 0 && waitFuncs.length === 0) {\n return;\n }\n window.setTimeout(function () { return nowFuncs.forEach(function (func) { return func(); }); }, 0);\n window.setTimeout(function () { return waitFuncs.forEach(function (func) { return func(); }); }, 300);\n };\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], ColumnAnimationService.prototype, \"gridOptionsWrapper\", void 0);\n ColumnAnimationService = __decorate([\n context_1.Bean('columnAnimationService')\n ], ColumnAnimationService);\n return ColumnAnimationService;\n}());\nexports.ColumnAnimationService = ColumnAnimationService;\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 eventService_1 = require(\"../eventService\");\nvar expressionService_1 = require(\"../valueService/expressionService\");\nvar animateSlideCellRenderer_1 = require(\"./cellRenderers/animateSlideCellRenderer\");\nvar animateShowChangeCellRenderer_1 = require(\"./cellRenderers/animateShowChangeCellRenderer\");\nvar groupCellRenderer_1 = require(\"./cellRenderers/groupCellRenderer\");\nvar utils_1 = require(\"../utils\");\nvar CellRendererFactory = /** @class */ (function () {\n function CellRendererFactory() {\n this.cellRendererMap = {};\n }\n CellRendererFactory_1 = CellRendererFactory;\n CellRendererFactory.prototype.init = function () {\n this.cellRendererMap[CellRendererFactory_1.ANIMATE_SLIDE] = animateSlideCellRenderer_1.AnimateSlideCellRenderer;\n this.cellRendererMap[CellRendererFactory_1.ANIMATE_SHOW_CHANGE] = animateShowChangeCellRenderer_1.AnimateShowChangeCellRenderer;\n this.cellRendererMap[CellRendererFactory_1.GROUP] = groupCellRenderer_1.GroupCellRenderer;\n // this.registerRenderersFromGridOptions();\n };\n // private registerRenderersFromGridOptions(): void {\n // let userProvidedCellRenderers = this.gridOptionsWrapper.getCellRenderers();\n // _.iterateObject(userProvidedCellRenderers, (key: string, cellRenderer: {new(): ICellRenderer} | ICellRendererFunc)=> {\n // this.addCellRenderer(key, cellRenderer);\n // });\n // }\n CellRendererFactory.prototype.addCellRenderer = function (key, cellRenderer) {\n this.cellRendererMap[key] = cellRenderer;\n };\n CellRendererFactory.prototype.getCellRenderer = function (key) {\n var result = this.cellRendererMap[key];\n if (utils_1._.missing(result)) {\n console.warn('ag-Grid: unable to find cellRenderer for key ' + key);\n return null;\n }\n return result;\n };\n var CellRendererFactory_1;\n CellRendererFactory.ANIMATE_SLIDE = 'animateSlide';\n CellRendererFactory.ANIMATE_SHOW_CHANGE = 'animateShowChange';\n CellRendererFactory.GROUP = 'group';\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], CellRendererFactory.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('expressionService'),\n __metadata(\"design:type\", expressionService_1.ExpressionService)\n ], CellRendererFactory.prototype, \"expressionService\", void 0);\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], CellRendererFactory.prototype, \"eventService\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], CellRendererFactory.prototype, \"init\", null);\n CellRendererFactory = CellRendererFactory_1 = __decorate([\n context_1.Bean('cellRendererFactory')\n ], CellRendererFactory);\n return CellRendererFactory;\n}());\nexports.CellRendererFactory = CellRendererFactory;\n"],"sourceRoot":""}