{"version":3,"sources":["webpack:///./node_modules/ag-grid-community/dist/lib/entities/defaultColumnTypes.js","webpack:///./node_modules/ag-grid-community/dist/lib/entities/column.js","webpack:///./node_modules/ag-grid-community/dist/lib/entities/cellPosition.js","webpack:///./node_modules/ag-grid-community/dist/lib/entities/columnGroup.js","webpack:///./node_modules/ag-grid-community/dist/lib/entities/originalColumnGroup.js","webpack:///./node_modules/ag-grid-community/dist/lib/entities/rowPosition.js","webpack:///./node_modules/ag-grid-community/dist/lib/entities/rowNode.js","webpack:///./node_modules/ag-grid-community/dist/lib/environment.js","webpack:///./node_modules/ag-grid-community/dist/lib/dragAndDrop/dragAndDropService.js","webpack:///./node_modules/ag-grid-community/dist/lib/dragAndDrop/dragService.js","webpack:///./node_modules/ag-grid-community/dist/lib/entities/sideBar.js"],"names":["Object","defineProperty","exports","value","DefaultColumnTypes","numericColumn","headerClass","cellClass","__decorate","this","decorators","target","key","desc","d","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","__metadata","k","v","metadata","eventService_1","utils_1","context_1","gridOptionsWrapper_1","columnUtils_1","columnApi_1","gridApi_1","Column","colDef","userProvidedColDef","colId","primary","moving","menuVisible","filterActive","eventService","EventService","rowGroupActive","pivotActive","aggregationActive","visible","hide","sort","sortedAt","prototype","setColDef","getUserProvidedColDef","setParent","parent","getParent","setOriginalParent","originalParent","getOriginalParent","initialise","setPinned","pinned","minColWidth","gridOptionsWrapper","getMinColWidth","maxColWidth","getMaxColWidth","minWidth","maxWidth","actualWidth","columnUtils","calculateColInitialWidth","suppressDotNotation","isSuppressFieldDotNotation","fieldContainsDots","_","exists","field","indexOf","tooltipFieldContainsDots","tooltipField","validate","isEmptyGroup","isRowGroupDisplayed","missing","showRowGroup","showingAllGroups","showingThisGroup","getUniqueId","getId","isPrimary","isFilterAllowed","filterDefined","filter","filterFramework","isFieldContainsDots","isTooltipFieldContainsDots","colDefAny","isEnterprise","itemsNotAllowedWithoutEnterprise","forEach","item","console","warn","isTreeData","itemsNotAllowedWithTreeData","width","get","floatingCellRenderer","pinnedRowCellRenderer","floatingRendererFramework","pinnedRowCellRendererFramework","floatingRendererParams","pinnedRowCellRendererParams","floatingValueFormatter","pinnedRowValueFormatter","cellFormatter","valueFormatter","headerCellTemplate","headerCellRenderer","volatile","suppressSorting","sortable","suppressFilter","suppressResize","resizable","tooltip","tooltipValueGetter","addEventListener","eventType","listener","removeEventListener","createIsColumnFuncParams","rowNode","node","data","column","context","getContext","api","getApi","columnApi","getColumnApi","isSuppressNavigable","suppressNavigable","params","userFunc","isCellEditable","group","isEnableGroupEdit","isColumnFunc","editable","isRowDrag","rowDrag","isDndSource","dndSource","isCellCheckboxSelection","checkboxSelection","isSuppressPaste","suppressPaste","isResizable","editableFunc","setMoving","source","dispatchEvent","createColumnEvent","EVENT_MOVING_CHANGED","type","gridApi","columns","isMoving","getSort","setSort","EVENT_SORT_CHANGED","setMenuVisible","EVENT_MENU_VISIBLE_CHANGED","isMenuVisible","isSortAscending","SORT_ASC","isSortDescending","SORT_DESC","isSortNone","isSorting","getSortedAt","setSortedAt","setAggFunc","aggFunc","getAggFunc","getLeft","left","getOldLeft","oldLeft","getRight","setLeft","EVENT_LEFT_CHANGED","isFilterActive","setFilterActive","active","additionalEventAttributes","EVENT_FILTER_ACTIVE_CHANGED","filterChangedEvent","EVENT_FILTER_CHANGED","mergeDeep","PINNED_LEFT","PINNED_RIGHT","setFirstRightPinned","firstRightPinned","EVENT_FIRST_RIGHT_PINNED_CHANGED","setLastLeftPinned","lastLeftPinned","EVENT_LAST_LEFT_PINNED_CHANGED","isFirstRightPinned","isLastLeftPinned","isPinned","isPinnedLeft","isPinnedRight","getPinned","setVisible","newValue","EVENT_VISIBLE_CHANGED","isVisible","getColDef","getColumnGroupShow","columnGroupShow","getColId","getDefinition","getActualWidth","createBaseColDefParams","getColSpan","colSpan","Math","max","getRowSpan","rowSpan","setActualWidth","EVENT_WIDTH_CHANGED","isGreaterThanMax","getMinWidth","getMaxWidth","setMinimum","setRowGroupActive","rowGroup","EVENT_ROW_GROUP_CHANGED","isRowGroupActive","setPivotActive","pivot","EVENT_PIVOT_CHANGED","isPivotActive","isAnyFunctionActive","isValueActive","isAnyFunctionAllowed","isAllowPivot","isAllowRowGroup","isAllowValue","setValueActive","EVENT_VALUE_CHANGED","enablePivot","enableValue","enableRowGroup","getMenuTabs","defaultValues","menuTabs","isLockPosition","lockPosition","isLockVisible","lockVisible","isLockPinned","lockPinned","Autowired","GridOptionsWrapper","ColumnUtils","ColumnApi","GridApi","PostConstruct","Function","CellPositionUtils","createId","cellPosition","rowIndex","rowPinned","equals","cellA","cellB","colsMatch","floatingMatch","indexMatch","Bean","column_1","ColumnGroup","originalColumnGroup","groupId","instanceId","displayedChildren","localEventService","createUniqueId","reset","children","allLeafColumns","getOriginalColumnGroup","getLeafColumns","allMoving","col","checkLeft","child","isEnableRtl","lastChild","last","lastChildLeft","firstChildLeft","createAgEvent","getGroupId","getInstanceId","isChildInThisGroupDeepSearch","wantedChild","result","foundChild","groupActualWidth","groupChild","addChild","push","getDisplayedChildren","addLeafColumns","getDisplayedLeafColumns","addDisplayedLeafColumns","getColGroupDef","isPadding","isExpandable","isExpanded","setExpanded","expanded","leafColumns","getChildren","calculateDisplayedColumns","_this","topLevelGroup","abstractColumn","headerGroupShow","HEADER_GROUP_SHOW_OPEN","HEADER_GROUP_SHOW_CLOSED","EVENT_DISPLAYED_CHILDREN_CHANGED","HEADER_GROUP_PADDING","columnGroup_1","OriginalColumnGroup","colGroupDef","padding","level","expandable","openByDefault","getLevel","some","undefined","event","EVENT_EXPANDED_CHANGED","setChildren","setupExpandable","setExpandable","onColumnVisibilityChanged","bind","atLeastOneShowingWhenOpen","atLeastOneShowingWhenClosed","atLeastOneChangeable","findChildren","j","event_1","EVENT_EXPANDABLE_CHANGED","firstChild","constants_1","pinnedRowModel_1","RowPositionUtils","getRowNode","gridRow","Constants","PINNED_TOP","pinnedRowModel","getPinnedTopRowData","PINNED_BOTTOM","getPinnedBottomRowData","rowModel","getRow","sameRow","rowA","rowB","before","PinnedRowModel","events_1","selectionController_1","valueService_1","columnController_1","valueCache_1","RowNode","childrenMapped","selectable","__objectId","OBJECT_ID_SEQUENCE","alreadyRendered","selected","setData","oldData","valueCache","onDataChanged","updateDataOnDetailNode","checkRowSelectable","createDataChangedEvent","dispatchLocalEvent","detailNode","newData","update","EVENT_DATA_CHANGED","createLocalRowEvent","updateData","getRowIndexString","toString","createDaemonNode","oldNode","wireBean","id","daemon","setDataAndId","setId","selectionController","syncInRowNode","isRowSelectableFunc","getIsRowSelectableFunc","shouldInvokeIsRowSelectable","setRowSelectable","newVal","EVENT_SELECTABLE_CHANGED","getRowNodeId","getRowNodeIdFunc","isPixelInRange","pixel","rowTop","rowHeight","clearRowTop","oldRowTop","setRowTop","setFirstChild","EVENT_FIRST_CHILD_CHANGED","setLastChild","EVENT_LAST_CHILD_CHANGED","setChildIndex","childIndex","EVENT_CHILD_INDEX_CHANGED","EVENT_TOP_CHANGED","setDragging","dragging","EVENT_DRAGGING_CHANGED","setAllChildrenCount","allChildrenCount","EVENT_ALL_CHILDREN_COUNT_CHANGED","setRowHeight","estimated","rowHeightEstimated","EVENT_HEIGHT_CHANGED","setRowIndex","EVENT_ROW_INDEX_CHANGED","setUiLevel","uiLevel","EVENT_UI_LEVEL_CHANGED","createGlobalRowEvent","Events","EVENT_ROW_GROUP_OPENED","mainEventService","isGroupIncludeFooter","redrawRows","rowNodes","setDataValue","colKey","columnController","getPrimaryColumn","valueService","setValue","dispatchCellChangedEvent","setGroupValue","getGridColumn","groupData","setAggData","newAggData","colIds","getAllKeysInObjects","aggData","hasChildren","childrenAfterGroup","isEmptyRowGroupNode","missingOrEmpty","cellChangedEvent","EVENT_CELL_CHANGED","resetQuickFilterAggregateText","quickFilterAggregateText","master","isSelected","footer","sibling","depthFirstSearch","callback","calculateSelectedFromChildren","newSelectedValue","atLeastOneSelected","atLeastOneDeSelected","atLeastOneMixed","childState","selectThisNode","setSelectedInitialValue","setSelected","clearSelection","suppressFinishActions","setSelectedParams","rangeSelect","isRowPinned","groupSelectsChildren","isGroupSelectsChildren","groupSelectsFiltered","count","newRowClicked","getLastSelectedNode","allowMultiSelect","isRowSelectionMulti","doRowRangeSelection","updatedCount","skipThisNode","thisNodeWasSelected","selectChildNodes","clearOtherNodes","updateGroupsFromChildrenSelections","EVENT_SELECTION_CHANGED","setLastSelectedNode","groupsSelectChildren","lastSelectedNode","nodesToSelect","getNodesInRangeForSelection","nodeWasSelected","isParentOfNode","potentialParent","parentNode","EVENT_ROW_SELECTED","childrenAfterFilter","onMouseEnter","EVENT_MOUSE_ENTER","onMouseLeave","EVENT_MOUSE_LEAVE","getFirstChildOfFirstChild","rowGroupColumn","nodeToSwapIn","currentRowNode","isCandidate","foundFirstChildPath","parentRowNode","SelectionController","ColumnController","ValueService","Context","ValueCache","MAT_GRID_SIZE","FRESH_GRID_SIZE","BALHAM_GRID_SIZE","HARD_CODED_SIZES","headerHeight","virtualItemHeight","SASS_PROPERTY_BUILDER","CALCULATED_SIZES","Environment","getSassVariable","theme","useTheme","match","defaultValue","calculatedValue","classList","div","document","createElement","el","reduce","currentClass","idx","addCssClass","appendChild","body","parseInt","window","getComputedStyle","height","removeChild","isThemeDark","getTheme","themeMatch","reg","eGridDiv","exec","className","parentElement","usingOldTheme","newTheme_1","replace","doOnce","HTMLElement","__param","paramIndex","decorator","DragSourceType","VDirection","HDirection","logger_1","dragService_1","environment_1","DragAndDropService","dragSourceAndParamsList","dropTargets","DragAndDropService_1","init","ePinnedIcon","createIcon","ePlusIcon","eHiddenIcon","eMoveIcon","eLeftIcon","eRightIcon","eGroupIcon","eAggregateIcon","ePivotIcon","eDropNotAllowedIcon","setBeans","loggerFactory","logger","create","getStringType","RowDrag","HeaderCell","ToolPanel","addDragSource","dragSource","allowTouch","eElement","dragStartPixels","onDragStart","onDragStop","onDragging","dragService","removeDragSource","sourceAndParams","find","removeFromArray","destroy","nudge","eventLastTime","mouseEvent","dragItem","dragItemCallback","lastDropTarget","dragSourceDropTarget","dragStarted","createGhost","dragStopped","draggingEvent","createDropTargetEvent","removeGhost","fromNudge","hDirection","workOutHDirection","vDirection","workOutVDirection","positionGhost","dropTarget","isMouseOnDropTarget","leaveLastTargetIfExists","enterDragTargetIfExists","dragEnterEvent","onDragEnter","setGhostIcon","getIconName","dragLeaveEvent","onDragLeave","getAllContainersFromDropTarget","containers","getContainer","secondaryContainers","getSecondaryContainers","concat","allContainers","mouseOverTarget","eContainer","rect","getBoundingClientRect","horizontalFit","clientX","right","verticalFit","clientY","top","bottom","mouseOverTargetAndInterested","isInterestedIn","addDropTarget","Left","Right","Up","Down","x","y","dropTargetEvent","ghostRect","eGhost","ghostHeight","browserWidth","getBodyWidth","browserHeight","getBodyHeight","pageY","pageX","usrDocument","getDocument","windowScrollY","pageYOffset","documentElement","scrollTop","windowScrollX","pageXOffset","scrollLeft","clientWidth","clientHeight","style","eGhostParent","loadTemplate","GHOST_TEMPLATE","environment","eGhostIcon","querySelector","eText","innerHTML","escape","dragItemName","iconName","shake","eIcon","clearElement","ICON_ADD","ICON_PINNED","ICON_MOVE","ICON_LEFT","ICON_RIGHT","ICON_GROUP","ICON_AGGREGATE","ICON_PIVOT","ICON_NOT_ALLOWED","addOrRemoveCssClass","DragService","Qualifier","LoggerFactory","PreDestroy","onMouseUpListener","onMouseUp","onMouseMoveListener","onMouseMove","onTouchEndListener","onTouchUp","onTouchMoveListener","onTouchMove","dragEndFunctions","dragSources","removeListener","dragSourceAndListener","element","mouseDownListener","touchEnabled","touchStartListener","passive","setNoSelectToBody","noSelect","eDocument","eBody","includeTouch","mouseListener","onMouseDown","touchListener","suppressTouch","isSuppressTouch","onTouchStart","touchEvent","currentDragParams","touch","touches","touchLastTime","touchStart","preventDefault","onCommonMove","skipMouseEvent","_alreadyProcessedByDragService","button","mouseStartEvent","isEventNearStartEvent","currentEvent","startEvent","requiredPixelDiff","areEventsNear","getFirstActiveTouch","touchList","identifier","EVENT_DRAG_STARTED","changedTouches","onUpCommon","eventOrTouch","event_2","EVENT_DRAG_STOPPED","func","SideBarDefParser","parse","toParse","toolPanels","DEFAULT_COLUMN_COMP","DEFAULT_FILTER_COMP","defaultToolPanel","Array","isArray","comps_1","lookupResult","DEFAULT_BY_KEY","keys","join","parseComponents","hiddenByDefault","from","it","toAdd","labelDefault","labelKey","iconKey","toolPanel","filters"],"mappings":"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","file":"js/chunk-vendors~ef7cc246.dae11726.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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultColumnTypes = {\n numericColumn: {\n headerClass: \"ag-numeric-header\",\n cellClass: \"ag-numeric-cell\"\n }\n};\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 eventService_1 = require(\"../eventService\");\nvar utils_1 = require(\"../utils\");\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar columnUtils_1 = require(\"../columnController/columnUtils\");\nvar columnApi_1 = require(\"../columnController/columnApi\");\nvar gridApi_1 = require(\"../gridApi\");\n// Wrapper around a user provide column definition. The grid treats the column definition as ready only.\n// This class contains all the runtime information about a column, plus some logic (the definition has no logic).\n// This class implements both interfaces ColumnGroupChild and OriginalColumnGroupChild as the class can\n// appear as a child of either the original tree or the displayed tree. However the relevant group classes\n// for each type only implements one, as each group can only appear in it's associated tree (eg OriginalColumnGroup\n// can only appear in OriginalColumn tree).\nvar Column = /** @class */ (function () {\n function Column(colDef, userProvidedColDef, colId, primary) {\n this.moving = false;\n this.menuVisible = false;\n this.filterActive = false;\n this.eventService = new eventService_1.EventService();\n this.rowGroupActive = false;\n this.pivotActive = false;\n this.aggregationActive = false;\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.visible = !colDef.hide;\n this.sort = colDef.sort;\n this.sortedAt = colDef.sortedAt;\n this.colId = colId;\n this.primary = primary;\n }\n // gets called when user provides an alternative colDef, eg\n Column.prototype.setColDef = function (colDef, userProvidedColDef) {\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n };\n Column.prototype.getUserProvidedColDef = function () {\n return this.userProvidedColDef;\n };\n Column.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n Column.prototype.getParent = function () {\n return this.parent;\n };\n Column.prototype.setOriginalParent = function (originalParent) {\n this.originalParent = originalParent;\n };\n Column.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n // this is done after constructor as it uses gridOptionsWrapper\n Column.prototype.initialise = function () {\n this.setPinned(this.colDef.pinned);\n var minColWidth = this.gridOptionsWrapper.getMinColWidth();\n var maxColWidth = this.gridOptionsWrapper.getMaxColWidth();\n if (this.colDef.minWidth) {\n this.minWidth = this.colDef.minWidth;\n }\n else {\n this.minWidth = minColWidth;\n }\n if (this.colDef.maxWidth) {\n this.maxWidth = this.colDef.maxWidth;\n }\n else {\n this.maxWidth = maxColWidth;\n }\n this.actualWidth = this.columnUtils.calculateColInitialWidth(this.colDef);\n var suppressDotNotation = this.gridOptionsWrapper.isSuppressFieldDotNotation();\n this.fieldContainsDots = utils_1._.exists(this.colDef.field) && this.colDef.field.indexOf('.') >= 0 && !suppressDotNotation;\n this.tooltipFieldContainsDots = utils_1._.exists(this.colDef.tooltipField) && this.colDef.tooltipField.indexOf('.') >= 0 && !suppressDotNotation;\n this.validate();\n };\n Column.prototype.isEmptyGroup = function () {\n return false;\n };\n Column.prototype.isRowGroupDisplayed = function (colId) {\n if (utils_1._.missing(this.colDef) || utils_1._.missing(this.colDef.showRowGroup)) {\n return false;\n }\n var showingAllGroups = this.colDef.showRowGroup === true;\n var showingThisGroup = this.colDef.showRowGroup === colId;\n return showingAllGroups || showingThisGroup;\n };\n Column.prototype.getUniqueId = function () {\n return this.getId();\n };\n Column.prototype.isPrimary = function () {\n return this.primary;\n };\n Column.prototype.isFilterAllowed = function () {\n // filter defined means it's a string, class or true.\n // if its false, null or undefined then it's false.\n var filterDefined = !!this.colDef.filter || !!this.colDef.filterFramework;\n return this.primary && filterDefined;\n };\n Column.prototype.isFieldContainsDots = function () {\n return this.fieldContainsDots;\n };\n Column.prototype.isTooltipFieldContainsDots = function () {\n return this.tooltipFieldContainsDots;\n };\n Column.prototype.validate = function () {\n var colDefAny = this.colDef;\n if (!this.gridOptionsWrapper.isEnterprise()) {\n var itemsNotAllowedWithoutEnterprise = ['enableRowGroup', 'rowGroup', 'rowGroupIndex', 'enablePivot', 'enableValue', 'pivot', 'pivotIndex', 'aggFunc', 'chartDataType'];\n itemsNotAllowedWithoutEnterprise.forEach(function (item) {\n if (utils_1._.exists(colDefAny[item])) {\n console.warn(\"ag-Grid: \" + item + \" is only valid in ag-Grid-Enterprise, your column definition should not have \" + item);\n }\n });\n }\n if (this.gridOptionsWrapper.isTreeData()) {\n var itemsNotAllowedWithTreeData = ['rowGroup', 'rowGroupIndex', 'pivot', 'pivotIndex'];\n itemsNotAllowedWithTreeData.forEach(function (item) {\n if (utils_1._.exists(colDefAny[item])) {\n console.warn(\"ag-Grid: \" + item + \" is not possible when doing tree data, your column definition should not have \" + item);\n }\n });\n }\n if (utils_1._.exists(this.colDef.width) && typeof this.colDef.width !== 'number') {\n console.warn('ag-Grid: colDef.width should be a number, not ' + typeof this.colDef.width);\n }\n if (utils_1._.get(this, 'colDef.cellRendererParams.restrictToOneGroup', null)) {\n console.warn('ag-Grid: Since ag-grid 11.0.0 cellRendererParams.restrictToOneGroup is deprecated. You should use showRowGroup');\n }\n if (utils_1._.get(this, 'colDef.cellRendererParams.keyMap', null)) {\n console.warn('ag-Grid: Since ag-grid 11.0.0 cellRendererParams.keyMap is deprecated. You should use colDef.keyCreator');\n }\n if (utils_1._.get(this, 'colDef.cellRendererParams.keyMap', null)) {\n console.warn('ag-Grid: Since ag-grid 11.0.0 cellRendererParams.keyMap is deprecated. You should use colDef.keyCreator');\n }\n if (colDefAny.floatingCellRenderer) {\n console.warn('ag-Grid: since v11, floatingCellRenderer is now pinnedRowCellRenderer');\n this.colDef.pinnedRowCellRenderer = colDefAny.floatingCellRenderer;\n }\n if (colDefAny.floatingRendererFramework) {\n console.warn('ag-Grid: since v11, floatingRendererFramework is now pinnedRowCellRendererFramework');\n this.colDef.pinnedRowCellRendererFramework = colDefAny.floatingRendererFramework;\n }\n if (colDefAny.floatingRendererParams) {\n console.warn('ag-Grid: since v11, floatingRendererParams is now pinnedRowCellRendererParams');\n this.colDef.pinnedRowCellRendererParams = colDefAny.floatingRendererParams;\n }\n if (colDefAny.floatingValueFormatter) {\n console.warn('ag-Grid: since v11, floatingValueFormatter is now pinnedRowValueFormatter');\n this.colDef.pinnedRowValueFormatter = colDefAny.floatingValueFormatter;\n }\n if (colDefAny.cellFormatter) {\n console.warn('ag-Grid: since v12, cellFormatter is now valueFormatter');\n if (utils_1._.missing(this.colDef.valueFormatter)) {\n this.colDef.valueFormatter = colDefAny.cellFormatter;\n }\n }\n if (colDefAny.headerCellTemplate) {\n console.warn('ag-Grid: since v15, headerCellTemplate is gone, use header component instead.');\n }\n if (colDefAny.headerCellRenderer) {\n console.warn('ag-Grid: since v15, headerCellRenderer is gone, use header component instead.');\n }\n if (colDefAny.volatile) {\n console.warn('ag-Grid: since v16, colDef.volatile is gone, please check refresh docs on how to refresh specific cells.');\n }\n if (colDefAny.suppressSorting) {\n console.warn(\"ag-Grid: since v20, colDef.suppressSorting is gone, instead use colDef.sortable=false.\", this.colDef);\n this.colDef.sortable = false;\n }\n if (colDefAny.suppressFilter) {\n console.warn(\"ag-Grid: since v20, colDef.suppressFilter is gone, instead use colDef.filter=false.\", this.colDef);\n this.colDef.filter = false;\n }\n if (colDefAny.suppressResize) {\n console.warn(\"ag-Grid: since v20, colDef.suppressResize is gone, instead use colDef.resizable=false.\", this.colDef);\n this.colDef.resizable = false;\n }\n if (colDefAny.tooltip) {\n console.warn(\"ag-Grid: since v20.1, colDef.tooltip is gone, instead use colDef.tooltipValueGetter.\", this.colDef);\n this.colDef.tooltipValueGetter = colDefAny.tooltip;\n }\n };\n Column.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n Column.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n Column.prototype.createIsColumnFuncParams = function (rowNode) {\n return {\n node: rowNode,\n data: rowNode.data,\n column: this,\n colDef: this.colDef,\n context: this.gridOptionsWrapper.getContext(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n };\n Column.prototype.isSuppressNavigable = function (rowNode) {\n // if boolean set, then just use it\n if (typeof this.colDef.suppressNavigable === 'boolean') {\n return this.colDef.suppressNavigable;\n }\n // if function, then call the function to find out\n if (typeof this.colDef.suppressNavigable === 'function') {\n var params = this.createIsColumnFuncParams(rowNode);\n var userFunc = this.colDef.suppressNavigable;\n return userFunc(params);\n }\n return false;\n };\n Column.prototype.isCellEditable = function (rowNode) {\n // only allow editing of groups if the user has this option enabled\n if (rowNode.group && !this.gridOptionsWrapper.isEnableGroupEdit()) {\n return false;\n }\n return this.isColumnFunc(rowNode, this.colDef.editable);\n };\n Column.prototype.isRowDrag = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.rowDrag);\n };\n Column.prototype.isDndSource = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.dndSource);\n };\n Column.prototype.isCellCheckboxSelection = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.checkboxSelection);\n };\n Column.prototype.isSuppressPaste = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef ? this.colDef.suppressPaste : null);\n };\n Column.prototype.isResizable = function () {\n return this.colDef.resizable === true;\n };\n Column.prototype.isColumnFunc = function (rowNode, value) {\n // if boolean set, then just use it\n if (typeof value === 'boolean') {\n return value;\n }\n // if function, then call the function to find out\n if (typeof value === 'function') {\n var params = this.createIsColumnFuncParams(rowNode);\n var editableFunc = value;\n return editableFunc(params);\n }\n return false;\n };\n Column.prototype.setMoving = function (moving, source) {\n if (source === void 0) { source = \"api\"; }\n this.moving = moving;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MOVING_CHANGED, source));\n };\n Column.prototype.createColumnEvent = function (type, source) {\n return {\n api: this.gridApi,\n columnApi: this.columnApi,\n type: type,\n column: this,\n columns: [this],\n source: source\n };\n };\n Column.prototype.isMoving = function () {\n return this.moving;\n };\n Column.prototype.getSort = function () {\n return this.sort;\n };\n Column.prototype.setSort = function (sort, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.sort !== sort) {\n this.sort = sort;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_SORT_CHANGED, source));\n }\n };\n Column.prototype.setMenuVisible = function (visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.menuVisible !== visible) {\n this.menuVisible = visible;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MENU_VISIBLE_CHANGED, source));\n }\n };\n Column.prototype.isMenuVisible = function () {\n return this.menuVisible;\n };\n Column.prototype.isSortAscending = function () {\n return this.sort === Column.SORT_ASC;\n };\n Column.prototype.isSortDescending = function () {\n return this.sort === Column.SORT_DESC;\n };\n Column.prototype.isSortNone = function () {\n return utils_1._.missing(this.sort);\n };\n Column.prototype.isSorting = function () {\n return utils_1._.exists(this.sort);\n };\n Column.prototype.getSortedAt = function () {\n return this.sortedAt;\n };\n Column.prototype.setSortedAt = function (sortedAt) {\n this.sortedAt = sortedAt;\n };\n Column.prototype.setAggFunc = function (aggFunc) {\n this.aggFunc = aggFunc;\n };\n Column.prototype.getAggFunc = function () {\n return this.aggFunc;\n };\n Column.prototype.getLeft = function () {\n return this.left;\n };\n Column.prototype.getOldLeft = function () {\n return this.oldLeft;\n };\n Column.prototype.getRight = function () {\n return this.left + this.actualWidth;\n };\n Column.prototype.setLeft = function (left, source) {\n if (source === void 0) { source = \"api\"; }\n this.oldLeft = this.left;\n if (this.left !== left) {\n this.left = left;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LEFT_CHANGED, source));\n }\n };\n Column.prototype.isFilterActive = function () {\n return this.filterActive;\n };\n // additionalEventAttributes is used by provided simple floating filter, so it can add 'floatingFilter=true' to the event\n Column.prototype.setFilterActive = function (active, source, additionalEventAttributes) {\n if (source === void 0) { source = \"api\"; }\n if (this.filterActive !== active) {\n this.filterActive = active;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FILTER_ACTIVE_CHANGED, source));\n }\n var filterChangedEvent = this.createColumnEvent(Column.EVENT_FILTER_CHANGED, source);\n if (additionalEventAttributes) {\n utils_1._.mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n this.eventService.dispatchEvent(filterChangedEvent);\n };\n Column.prototype.setPinned = function (pinned) {\n if (pinned === true || pinned === Column.PINNED_LEFT) {\n this.pinned = Column.PINNED_LEFT;\n }\n else if (pinned === Column.PINNED_RIGHT) {\n this.pinned = Column.PINNED_RIGHT;\n }\n else {\n this.pinned = null;\n }\n };\n Column.prototype.setFirstRightPinned = function (firstRightPinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.firstRightPinned !== firstRightPinned) {\n this.firstRightPinned = firstRightPinned;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, source));\n }\n };\n Column.prototype.setLastLeftPinned = function (lastLeftPinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.lastLeftPinned !== lastLeftPinned) {\n this.lastLeftPinned = lastLeftPinned;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LAST_LEFT_PINNED_CHANGED, source));\n }\n };\n Column.prototype.isFirstRightPinned = function () {\n return this.firstRightPinned;\n };\n Column.prototype.isLastLeftPinned = function () {\n return this.lastLeftPinned;\n };\n Column.prototype.isPinned = function () {\n return this.pinned === Column.PINNED_LEFT || this.pinned === Column.PINNED_RIGHT;\n };\n Column.prototype.isPinnedLeft = function () {\n return this.pinned === Column.PINNED_LEFT;\n };\n Column.prototype.isPinnedRight = function () {\n return this.pinned === Column.PINNED_RIGHT;\n };\n Column.prototype.getPinned = function () {\n return this.pinned;\n };\n Column.prototype.setVisible = function (visible, source) {\n if (source === void 0) { source = \"api\"; }\n var newValue = visible === true;\n if (this.visible !== newValue) {\n this.visible = newValue;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VISIBLE_CHANGED, source));\n }\n };\n Column.prototype.isVisible = function () {\n return this.visible;\n };\n Column.prototype.getColDef = function () {\n return this.colDef;\n };\n Column.prototype.getColumnGroupShow = function () {\n return this.colDef.columnGroupShow;\n };\n Column.prototype.getColId = function () {\n return this.colId;\n };\n Column.prototype.getId = function () {\n return this.getColId();\n };\n Column.prototype.getDefinition = function () {\n return this.colDef;\n };\n Column.prototype.getActualWidth = function () {\n return this.actualWidth;\n };\n Column.prototype.createBaseColDefParams = function (rowNode) {\n var params = {\n node: rowNode,\n data: rowNode.data,\n colDef: this.colDef,\n column: this,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n return params;\n };\n Column.prototype.getColSpan = function (rowNode) {\n if (utils_1._.missing(this.colDef.colSpan)) {\n return 1;\n }\n var params = this.createBaseColDefParams(rowNode);\n var colSpan = this.colDef.colSpan(params);\n // colSpan must be number equal to or greater than 1\n return Math.max(colSpan, 1);\n };\n Column.prototype.getRowSpan = function (rowNode) {\n if (utils_1._.missing(this.colDef.rowSpan)) {\n return 1;\n }\n var params = this.createBaseColDefParams(rowNode);\n var rowSpan = this.colDef.rowSpan(params);\n // rowSpan must be number equal to or greater than 1\n return Math.max(rowSpan, 1);\n };\n Column.prototype.setActualWidth = function (actualWidth, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.actualWidth !== actualWidth) {\n this.actualWidth = actualWidth;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_WIDTH_CHANGED, source));\n }\n };\n Column.prototype.isGreaterThanMax = function (width) {\n if (this.maxWidth) {\n return width > this.maxWidth;\n }\n return false;\n };\n Column.prototype.getMinWidth = function () {\n return this.minWidth;\n };\n Column.prototype.getMaxWidth = function () {\n return this.maxWidth;\n };\n Column.prototype.setMinimum = function (source) {\n if (source === void 0) { source = \"api\"; }\n this.setActualWidth(this.minWidth, source);\n };\n Column.prototype.setRowGroupActive = function (rowGroup, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.rowGroupActive !== rowGroup) {\n this.rowGroupActive = rowGroup;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_ROW_GROUP_CHANGED, source));\n }\n };\n Column.prototype.isRowGroupActive = function () {\n return this.rowGroupActive;\n };\n Column.prototype.setPivotActive = function (pivot, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.pivotActive !== pivot) {\n this.pivotActive = pivot;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_PIVOT_CHANGED, source));\n }\n };\n Column.prototype.isPivotActive = function () {\n return this.pivotActive;\n };\n Column.prototype.isAnyFunctionActive = function () {\n return this.isPivotActive() || this.isRowGroupActive() || this.isValueActive();\n };\n Column.prototype.isAnyFunctionAllowed = function () {\n return this.isAllowPivot() || this.isAllowRowGroup() || this.isAllowValue();\n };\n Column.prototype.setValueActive = function (value, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.aggregationActive !== value) {\n this.aggregationActive = value;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VALUE_CHANGED, source));\n }\n };\n Column.prototype.isValueActive = function () {\n return this.aggregationActive;\n };\n Column.prototype.isAllowPivot = function () {\n return this.colDef.enablePivot === true;\n };\n Column.prototype.isAllowValue = function () {\n return this.colDef.enableValue === true;\n };\n Column.prototype.isAllowRowGroup = function () {\n return this.colDef.enableRowGroup === true;\n };\n Column.prototype.getMenuTabs = function (defaultValues) {\n var menuTabs = this.getColDef().menuTabs;\n if (menuTabs == null) {\n menuTabs = defaultValues;\n }\n return menuTabs;\n };\n // this used to be needed, as previous version of ag-grid had lockPosition as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockPosition = function () {\n console.warn('ag-Grid: since v21, col.isLockPosition() should not be used, please use col.getColDef().lockPosition instead.');\n return this.colDef ? !!this.colDef.lockPosition : false;\n };\n // this used to be needed, as previous version of ag-grid had lockVisible as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockVisible = function () {\n console.warn('ag-Grid: since v21, col.isLockVisible() should not be used, please use col.getColDef().lockVisible instead.');\n return this.colDef ? !!this.colDef.lockVisible : false;\n };\n // this used to be needed, as previous version of ag-grid had lockPinned as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockPinned = function () {\n console.warn('ag-Grid: since v21, col.isLockPinned() should not be used, please use col.getColDef().lockPinned instead.');\n return this.colDef ? !!this.colDef.lockPinned : false;\n };\n // + renderedHeaderCell - for making header cell transparent when moving\n Column.EVENT_MOVING_CHANGED = 'movingChanged';\n // + renderedCell - changing left position\n Column.EVENT_LEFT_CHANGED = 'leftChanged';\n // + renderedCell - changing width\n Column.EVENT_WIDTH_CHANGED = 'widthChanged';\n // + renderedCell - for changing pinned classes\n Column.EVENT_LAST_LEFT_PINNED_CHANGED = 'lastLeftPinnedChanged';\n Column.EVENT_FIRST_RIGHT_PINNED_CHANGED = 'firstRightPinnedChanged';\n // + renderedColumn - for changing visibility icon\n Column.EVENT_VISIBLE_CHANGED = 'visibleChanged';\n // + every time the filter changes, used in the floating filters\n Column.EVENT_FILTER_CHANGED = 'filterChanged';\n // + renderedHeaderCell - marks the header with filter icon\n Column.EVENT_FILTER_ACTIVE_CHANGED = 'filterActiveChanged';\n // + renderedHeaderCell - marks the header with sort icon\n Column.EVENT_SORT_CHANGED = 'sortChanged';\n Column.EVENT_MENU_VISIBLE_CHANGED = 'menuVisibleChanged';\n // + toolpanel, for gui updates\n Column.EVENT_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n // + toolpanel, for gui updates\n Column.EVENT_PIVOT_CHANGED = 'columnPivotChanged';\n // + toolpanel, for gui updates\n Column.EVENT_VALUE_CHANGED = 'columnValueChanged';\n Column.PINNED_RIGHT = 'right';\n Column.PINNED_LEFT = 'left';\n Column.SORT_ASC = 'asc';\n Column.SORT_DESC = 'desc';\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], Column.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('columnUtils'),\n __metadata(\"design:type\", columnUtils_1.ColumnUtils)\n ], Column.prototype, \"columnUtils\", void 0);\n __decorate([\n context_1.Autowired('columnApi'),\n __metadata(\"design:type\", columnApi_1.ColumnApi)\n ], Column.prototype, \"columnApi\", void 0);\n __decorate([\n context_1.Autowired('gridApi'),\n __metadata(\"design:type\", gridApi_1.GridApi)\n ], Column.prototype, \"gridApi\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], Column.prototype, \"initialise\", null);\n return Column;\n}());\nexports.Column = Column;\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar CellPositionUtils = /** @class */ (function () {\n function CellPositionUtils() {\n }\n CellPositionUtils.prototype.createId = function (cellPosition) {\n var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;\n return rowIndex + \".\" + (rowPinned == null ? 'null' : rowPinned) + \".\" + column.getId();\n };\n CellPositionUtils.prototype.equals = function (cellA, cellB) {\n var colsMatch = cellA.column === cellB.column;\n var floatingMatch = cellA.rowPinned === cellB.rowPinned;\n var indexMatch = cellA.rowIndex === cellB.rowIndex;\n return colsMatch && floatingMatch && indexMatch;\n };\n CellPositionUtils = __decorate([\n context_1.Bean('cellPositionUtils')\n ], CellPositionUtils);\n return CellPositionUtils;\n}());\nexports.CellPositionUtils = CellPositionUtils;\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 column_1 = require(\"./column\");\nvar eventService_1 = require(\"../eventService\");\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar utils_1 = require(\"../utils\");\nvar ColumnGroup = /** @class */ (function () {\n function ColumnGroup(originalColumnGroup, groupId, instanceId, pinned) {\n // depends on the open/closed state of the group, only displaying columns are stored here\n this.displayedChildren = [];\n this.localEventService = new eventService_1.EventService();\n this.groupId = groupId;\n this.instanceId = instanceId;\n this.originalColumnGroup = originalColumnGroup;\n this.pinned = pinned;\n }\n // this is static, a it is used outside of this class\n ColumnGroup.createUniqueId = function (groupId, instanceId) {\n return groupId + '_' + instanceId;\n };\n // as the user is adding and removing columns, the groups are recalculated.\n // this reset clears out all children, ready for children to be added again\n ColumnGroup.prototype.reset = function () {\n this.parent = null;\n this.children = null;\n this.displayedChildren = null;\n };\n ColumnGroup.prototype.getParent = function () {\n return this.parent;\n };\n ColumnGroup.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n ColumnGroup.prototype.getUniqueId = function () {\n return ColumnGroup.createUniqueId(this.groupId, this.instanceId);\n };\n ColumnGroup.prototype.isEmptyGroup = function () {\n return this.displayedChildren.length === 0;\n };\n ColumnGroup.prototype.isMoving = function () {\n var allLeafColumns = this.getOriginalColumnGroup().getLeafColumns();\n if (!allLeafColumns || allLeafColumns.length === 0) {\n return false;\n }\n var allMoving = true;\n allLeafColumns.forEach(function (col) {\n if (!col.isMoving()) {\n allMoving = false;\n }\n });\n return allMoving;\n };\n ColumnGroup.prototype.checkLeft = function () {\n // first get all children to setLeft, as it impacts our decision below\n this.displayedChildren.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n child.checkLeft();\n }\n });\n // set our left based on first displayed column\n if (this.displayedChildren.length > 0) {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n var lastChild = utils_1._.last(this.displayedChildren);\n var lastChildLeft = lastChild.getLeft();\n this.setLeft(lastChildLeft);\n }\n else {\n var firstChildLeft = this.displayedChildren[0].getLeft();\n this.setLeft(firstChildLeft);\n }\n }\n else {\n // this should never happen, as if we have no displayed columns, then\n // this groups should not even exist.\n this.setLeft(null);\n }\n };\n ColumnGroup.prototype.getLeft = function () {\n return this.left;\n };\n ColumnGroup.prototype.getOldLeft = function () {\n return this.oldLeft;\n };\n ColumnGroup.prototype.setLeft = function (left) {\n this.oldLeft = left;\n if (this.left !== left) {\n this.left = left;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_LEFT_CHANGED));\n }\n };\n ColumnGroup.prototype.getPinned = function () {\n return this.pinned;\n };\n ColumnGroup.prototype.createAgEvent = function (type) {\n return {\n type: type,\n };\n };\n ColumnGroup.prototype.addEventListener = function (eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n };\n ColumnGroup.prototype.removeEventListener = function (eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n };\n ColumnGroup.prototype.getGroupId = function () {\n return this.groupId;\n };\n ColumnGroup.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n ColumnGroup.prototype.isChildInThisGroupDeepSearch = function (wantedChild) {\n var result = false;\n this.children.forEach(function (foundChild) {\n if (wantedChild === foundChild) {\n result = true;\n }\n if (foundChild instanceof ColumnGroup) {\n if (foundChild.isChildInThisGroupDeepSearch(wantedChild)) {\n result = true;\n }\n }\n });\n return result;\n };\n ColumnGroup.prototype.getActualWidth = function () {\n var groupActualWidth = 0;\n if (this.displayedChildren) {\n this.displayedChildren.forEach(function (child) {\n groupActualWidth += child.getActualWidth();\n });\n }\n return groupActualWidth;\n };\n ColumnGroup.prototype.isResizable = function () {\n if (!this.displayedChildren) {\n return false;\n }\n // if at least one child is resizable, then the group is resizable\n var result = false;\n this.displayedChildren.forEach(function (child) {\n if (child.isResizable()) {\n result = true;\n }\n });\n return result;\n };\n ColumnGroup.prototype.getMinWidth = function () {\n var result = 0;\n this.displayedChildren.forEach(function (groupChild) {\n result += groupChild.getMinWidth();\n });\n return result;\n };\n ColumnGroup.prototype.addChild = function (child) {\n if (!this.children) {\n this.children = [];\n }\n this.children.push(child);\n };\n ColumnGroup.prototype.getDisplayedChildren = function () {\n return this.displayedChildren;\n };\n ColumnGroup.prototype.getLeafColumns = function () {\n var result = [];\n this.addLeafColumns(result);\n return result;\n };\n ColumnGroup.prototype.getDisplayedLeafColumns = function () {\n var result = [];\n this.addDisplayedLeafColumns(result);\n return result;\n };\n // why two methods here doing the same thing?\n ColumnGroup.prototype.getDefinition = function () {\n return this.originalColumnGroup.getColGroupDef();\n };\n ColumnGroup.prototype.getColGroupDef = function () {\n return this.originalColumnGroup.getColGroupDef();\n };\n ColumnGroup.prototype.isPadding = function () {\n return this.originalColumnGroup.isPadding();\n };\n ColumnGroup.prototype.isExpandable = function () {\n return this.originalColumnGroup.isExpandable();\n };\n ColumnGroup.prototype.isExpanded = function () {\n return this.originalColumnGroup.isExpanded();\n };\n ColumnGroup.prototype.setExpanded = function (expanded) {\n this.originalColumnGroup.setExpanded(expanded);\n };\n ColumnGroup.prototype.addDisplayedLeafColumns = function (leafColumns) {\n this.displayedChildren.forEach(function (child) {\n if (child instanceof column_1.Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addDisplayedLeafColumns(leafColumns);\n }\n });\n };\n ColumnGroup.prototype.addLeafColumns = function (leafColumns) {\n this.children.forEach(function (child) {\n if (child instanceof column_1.Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n };\n ColumnGroup.prototype.getChildren = function () {\n return this.children;\n };\n ColumnGroup.prototype.getColumnGroupShow = function () {\n return this.originalColumnGroup.getColumnGroupShow();\n };\n ColumnGroup.prototype.getOriginalColumnGroup = function () {\n return this.originalColumnGroup;\n };\n ColumnGroup.prototype.calculateDisplayedColumns = function () {\n var _this = this;\n // clear out last time we calculated\n this.displayedChildren = [];\n var topLevelGroup = this;\n // find the column group that is controlling expandable. this is relevant when we have padding (empty)\n // groups, where the expandable is actually the first parent that is not a padding group.\n if (this.isPadding()) {\n while (topLevelGroup.getParent() && topLevelGroup.isPadding()) {\n topLevelGroup = topLevelGroup.getParent();\n }\n }\n var isExpandable = topLevelGroup.originalColumnGroup.isExpandable();\n // it not expandable, everything is visible\n if (!isExpandable) {\n this.displayedChildren = this.children;\n }\n else {\n // Add cols based on columnGroupShow\n // Note - the below also adds padding groups, these are always added because they never have\n // colDef.columnGroupShow set.\n this.children.forEach(function (abstractColumn) {\n var headerGroupShow = abstractColumn.getColumnGroupShow();\n switch (headerGroupShow) {\n case ColumnGroup.HEADER_GROUP_SHOW_OPEN:\n // when set to open, only show col if group is open\n if (topLevelGroup.originalColumnGroup.isExpanded()) {\n _this.displayedChildren.push(abstractColumn);\n }\n break;\n case ColumnGroup.HEADER_GROUP_SHOW_CLOSED:\n // when set to open, only show col if group is open\n if (!topLevelGroup.originalColumnGroup.isExpanded()) {\n _this.displayedChildren.push(abstractColumn);\n }\n break;\n default:\n // default is always show the column\n _this.displayedChildren.push(abstractColumn);\n break;\n }\n });\n }\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n };\n ColumnGroup.HEADER_GROUP_SHOW_OPEN = 'open';\n ColumnGroup.HEADER_GROUP_SHOW_CLOSED = 'closed';\n ColumnGroup.HEADER_GROUP_PADDING = 'padding';\n ColumnGroup.EVENT_LEFT_CHANGED = 'leftChanged';\n ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED = 'displayedChildrenChanged';\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], ColumnGroup.prototype, \"gridOptionsWrapper\", void 0);\n return ColumnGroup;\n}());\nexports.ColumnGroup = ColumnGroup;\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 columnGroup_1 = require(\"./columnGroup\");\nvar column_1 = require(\"./column\");\nvar eventService_1 = require(\"../eventService\");\nvar OriginalColumnGroup = /** @class */ (function () {\n function OriginalColumnGroup(colGroupDef, groupId, padding, level) {\n this.localEventService = new eventService_1.EventService();\n this.expandable = false;\n this.colGroupDef = colGroupDef;\n this.groupId = groupId;\n this.expanded = colGroupDef && !!colGroupDef.openByDefault;\n this.padding = padding;\n this.level = level;\n }\n OriginalColumnGroup.prototype.setOriginalParent = function (originalParent) {\n this.originalParent = this.originalParent;\n };\n OriginalColumnGroup.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n OriginalColumnGroup.prototype.getLevel = function () {\n return this.level;\n };\n OriginalColumnGroup.prototype.isVisible = function () {\n // return true if at least one child is visible\n if (this.children) {\n return this.children.some(function (child) { return child.isVisible(); });\n }\n return false;\n };\n OriginalColumnGroup.prototype.isPadding = function () {\n return this.padding;\n };\n OriginalColumnGroup.prototype.setExpanded = function (expanded) {\n this.expanded = expanded === undefined ? false : expanded;\n var event = {\n type: OriginalColumnGroup.EVENT_EXPANDED_CHANGED\n };\n this.localEventService.dispatchEvent(event);\n };\n OriginalColumnGroup.prototype.isExpandable = function () {\n return this.expandable;\n };\n OriginalColumnGroup.prototype.isExpanded = function () {\n return this.expanded;\n };\n OriginalColumnGroup.prototype.getGroupId = function () {\n return this.groupId;\n };\n OriginalColumnGroup.prototype.getId = function () {\n return this.getGroupId();\n };\n OriginalColumnGroup.prototype.setChildren = function (children) {\n this.children = children;\n };\n OriginalColumnGroup.prototype.getChildren = function () {\n return this.children;\n };\n OriginalColumnGroup.prototype.getColGroupDef = function () {\n return this.colGroupDef;\n };\n OriginalColumnGroup.prototype.getLeafColumns = function () {\n var result = [];\n this.addLeafColumns(result);\n return result;\n };\n OriginalColumnGroup.prototype.addLeafColumns = function (leafColumns) {\n if (!this.children) {\n return;\n }\n this.children.forEach(function (child) {\n if (child instanceof column_1.Column) {\n leafColumns.push(child);\n }\n else if (child instanceof OriginalColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n };\n OriginalColumnGroup.prototype.getColumnGroupShow = function () {\n return this.padding ? columnGroup_1.ColumnGroup.HEADER_GROUP_PADDING : this.colGroupDef.columnGroupShow;\n };\n // need to check that this group has at least one col showing when both expanded and contracted.\n // if not, then we don't allow expanding and contracting on this group\n OriginalColumnGroup.prototype.setupExpandable = function () {\n var _this = this;\n this.setExpandable();\n // note - we should be removing this event listener\n this.getLeafColumns().forEach(function (col) { return col.addEventListener(column_1.Column.EVENT_VISIBLE_CHANGED, _this.onColumnVisibilityChanged.bind(_this)); });\n };\n OriginalColumnGroup.prototype.setExpandable = function () {\n if (this.isPadding()) {\n return;\n }\n // want to make sure the group doesn't disappear when it's open\n var atLeastOneShowingWhenOpen = false;\n // want to make sure the group doesn't disappear when it's closed\n var atLeastOneShowingWhenClosed = false;\n // want to make sure the group has something to show / hide\n var atLeastOneChangeable = false;\n var children = this.findChildren();\n for (var i = 0, j = children.length; i < j; i++) {\n var abstractColumn = children[i];\n if (!abstractColumn.isVisible()) {\n continue;\n }\n // if the abstractColumn is a grid generated group, there will be no colDef\n var headerGroupShow = abstractColumn.getColumnGroupShow();\n if (headerGroupShow === columnGroup_1.ColumnGroup.HEADER_GROUP_SHOW_OPEN) {\n atLeastOneShowingWhenOpen = true;\n atLeastOneChangeable = true;\n }\n else if (headerGroupShow === columnGroup_1.ColumnGroup.HEADER_GROUP_SHOW_CLOSED) {\n atLeastOneShowingWhenClosed = true;\n atLeastOneChangeable = true;\n }\n else {\n atLeastOneShowingWhenOpen = true;\n atLeastOneShowingWhenClosed = true;\n if (headerGroupShow === columnGroup_1.ColumnGroup.HEADER_GROUP_PADDING) {\n var column = abstractColumn;\n atLeastOneChangeable = column.children.some(function (child) { return child.getColumnGroupShow() !== undefined; });\n }\n }\n }\n var expandable = atLeastOneShowingWhenOpen && atLeastOneShowingWhenClosed && atLeastOneChangeable;\n if (this.expandable !== expandable) {\n this.expandable = expandable;\n var event_1 = {\n type: OriginalColumnGroup.EVENT_EXPANDABLE_CHANGED\n };\n this.localEventService.dispatchEvent(event_1);\n }\n };\n OriginalColumnGroup.prototype.findChildren = function () {\n var children = this.children;\n var firstChild = children[0];\n if (firstChild && (!firstChild.isPadding || !firstChild.isPadding())) {\n return children;\n }\n while (children.length === 1 && children[0] instanceof OriginalColumnGroup) {\n children = children[0].children;\n }\n return children;\n };\n OriginalColumnGroup.prototype.onColumnVisibilityChanged = function () {\n this.setExpandable();\n };\n OriginalColumnGroup.prototype.addEventListener = function (eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n };\n OriginalColumnGroup.prototype.removeEventListener = function (eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n };\n OriginalColumnGroup.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n OriginalColumnGroup.EVENT_EXPANDABLE_CHANGED = 'expandableChanged';\n return OriginalColumnGroup;\n}());\nexports.OriginalColumnGroup = OriginalColumnGroup;\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 constants_1 = require(\"../constants\");\nvar context_1 = require(\"../context/context\");\nvar pinnedRowModel_1 = require(\"../rowModels/pinnedRowModel\");\nvar utils_1 = require(\"../utils\");\nvar RowPositionUtils = /** @class */ (function () {\n function RowPositionUtils() {\n }\n RowPositionUtils.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case constants_1.Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case constants_1.Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n RowPositionUtils.prototype.sameRow = function (rowA, rowB) {\n // if both missing\n if (!rowA && !rowB) {\n return true;\n }\n // if only one missing\n if ((rowA && !rowB) || (!rowA && rowB)) {\n return false;\n }\n // otherwise compare (use == to compare rowPinned because it can be null or undefined)\n return rowA.rowIndex === rowB.rowIndex && rowA.rowPinned == rowB.rowPinned;\n };\n // tests if this row selection is before the other row selection\n RowPositionUtils.prototype.before = function (rowA, rowB) {\n switch (rowA.rowPinned) {\n case constants_1.Constants.PINNED_TOP:\n // we we are floating top, and other isn't, then we are always before\n if (rowB.rowPinned !== constants_1.Constants.PINNED_TOP) {\n return true;\n }\n break;\n case constants_1.Constants.PINNED_BOTTOM:\n // if we are floating bottom, and the other isn't, then we are never before\n if (rowB.rowPinned !== constants_1.Constants.PINNED_BOTTOM) {\n return false;\n }\n break;\n default:\n // if we are not floating, but the other one is floating...\n if (utils_1._.exists(rowB.rowPinned)) {\n return rowB.rowPinned !== constants_1.Constants.PINNED_TOP;\n }\n break;\n }\n return rowA.rowIndex < rowB.rowIndex;\n };\n __decorate([\n context_1.Autowired('rowModel'),\n __metadata(\"design:type\", Object)\n ], RowPositionUtils.prototype, \"rowModel\", void 0);\n __decorate([\n context_1.Autowired('pinnedRowModel'),\n __metadata(\"design:type\", pinnedRowModel_1.PinnedRowModel)\n ], RowPositionUtils.prototype, \"pinnedRowModel\", void 0);\n RowPositionUtils = __decorate([\n context_1.Bean('rowPositionUtils')\n ], RowPositionUtils);\n return RowPositionUtils;\n}());\nexports.RowPositionUtils = RowPositionUtils;\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 eventService_1 = require(\"../eventService\");\nvar events_1 = require(\"../events\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar selectionController_1 = require(\"../selectionController\");\nvar valueService_1 = require(\"../valueService/valueService\");\nvar columnController_1 = require(\"../columnController/columnController\");\nvar columnApi_1 = require(\"../columnController/columnApi\");\nvar context_1 = require(\"../context/context\");\nvar constants_1 = require(\"../constants\");\nvar valueCache_1 = require(\"../valueService/valueCache\");\nvar gridApi_1 = require(\"../gridApi\");\nvar utils_1 = require(\"../utils\");\nvar RowNode = /** @class */ (function () {\n function RowNode() {\n /** Children mapped by the pivot columns */\n this.childrenMapped = {};\n /** True by default - can be overridden via gridOptions.isRowSelectable(rowNode) */\n this.selectable = true;\n /** Used by sorting service - to give deterministic sort to groups. Previously we\n * just id for this, however id is a string and had slower sorting compared to numbers. */\n this.__objectId = RowNode.OBJECT_ID_SEQUENCE++;\n /** True when nodes with the same id are being removed and added as part of the same batch transaction */\n this.alreadyRendered = false;\n this.selected = false;\n }\n RowNode.prototype.setData = function (data) {\n var oldData = this.data;\n this.data = data;\n this.valueCache.onDataChanged();\n this.updateDataOnDetailNode();\n this.checkRowSelectable();\n var event = this.createDataChangedEvent(data, oldData, false);\n this.dispatchLocalEvent(event);\n };\n // when we are doing master / detail, the detail node is lazy created, but then kept around.\n // so if we show / hide the detail, the same detail rowNode is used. so we need to keep the data\n // in sync, otherwise expand/collapse of the detail would still show the old values.\n RowNode.prototype.updateDataOnDetailNode = function () {\n if (this.detailNode) {\n this.detailNode.data = this.data;\n }\n };\n RowNode.prototype.createDataChangedEvent = function (newData, oldData, update) {\n return {\n type: RowNode.EVENT_DATA_CHANGED,\n node: this,\n oldData: oldData,\n newData: newData,\n update: update\n };\n };\n RowNode.prototype.createLocalRowEvent = function (type) {\n return {\n type: type,\n node: this\n };\n };\n // similar to setRowData, however it is expected that the data is the same data item. this\n // is intended to be used with Redux type stores, where the whole data can be changed. we are\n // guaranteed that the data is the same entity (so grid doesn't need to worry about the id of the\n // underlying data changing, hence doesn't need to worry about selection). the grid, upon receiving\n // dataChanged event, will refresh the cells rather than rip them all out (so user can show transitions).\n RowNode.prototype.updateData = function (data) {\n var oldData = this.data;\n this.data = data;\n this.updateDataOnDetailNode();\n this.checkRowSelectable();\n this.updateDataOnDetailNode();\n var event = this.createDataChangedEvent(data, oldData, true);\n this.dispatchLocalEvent(event);\n };\n RowNode.prototype.getRowIndexString = function () {\n if (this.rowPinned === constants_1.Constants.PINNED_TOP) {\n return 't-' + this.rowIndex;\n }\n else if (this.rowPinned === constants_1.Constants.PINNED_BOTTOM) {\n return 'b-' + this.rowIndex;\n }\n else {\n return this.rowIndex.toString();\n }\n };\n RowNode.prototype.createDaemonNode = function () {\n var oldNode = new RowNode();\n this.context.wireBean(oldNode);\n // just copy the id and data, this is enough for the node to be used\n // in the selection controller (the selection controller is the only\n // place where daemon nodes can live).\n oldNode.id = this.id;\n oldNode.data = this.data;\n oldNode.daemon = true;\n oldNode.selected = this.selected;\n oldNode.level = this.level;\n return oldNode;\n };\n RowNode.prototype.setDataAndId = function (data, id) {\n var oldNode = utils_1._.exists(this.id) ? this.createDaemonNode() : null;\n var oldData = this.data;\n this.data = data;\n this.updateDataOnDetailNode();\n this.setId(id);\n this.selectionController.syncInRowNode(this, oldNode);\n this.checkRowSelectable();\n var event = this.createDataChangedEvent(data, oldData, false);\n this.dispatchLocalEvent(event);\n };\n RowNode.prototype.checkRowSelectable = function () {\n var isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();\n var shouldInvokeIsRowSelectable = isRowSelectableFunc && utils_1._.exists(this);\n this.setRowSelectable(shouldInvokeIsRowSelectable ? isRowSelectableFunc(this) : true);\n };\n RowNode.prototype.setRowSelectable = function (newVal) {\n if (this.selectable !== newVal) {\n this.selectable = newVal;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_SELECTABLE_CHANGED));\n }\n }\n };\n RowNode.prototype.setId = function (id) {\n // see if user is providing the id's\n var getRowNodeId = this.gridOptionsWrapper.getRowNodeIdFunc();\n if (getRowNodeId) {\n // if user is providing the id's, then we set the id only after the data has been set.\n // this is important for virtual pagination and viewport, where empty rows exist.\n if (this.data) {\n this.id = getRowNodeId(this.data);\n }\n else {\n // this can happen if user has set blank into the rowNode after the row previously\n // having data. this happens in virtual page row model, when data is delete and\n // the page is refreshed.\n this.id = undefined;\n }\n }\n else {\n this.id = id;\n }\n };\n RowNode.prototype.isPixelInRange = function (pixel) {\n return pixel >= this.rowTop && pixel < (this.rowTop + this.rowHeight);\n };\n RowNode.prototype.clearRowTop = function () {\n this.oldRowTop = this.rowTop;\n this.setRowTop(null);\n };\n RowNode.prototype.setFirstChild = function (firstChild) {\n if (this.firstChild === firstChild) {\n return;\n }\n this.firstChild = firstChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_FIRST_CHILD_CHANGED));\n }\n };\n RowNode.prototype.setLastChild = function (lastChild) {\n if (this.lastChild === lastChild) {\n return;\n }\n this.lastChild = lastChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_LAST_CHILD_CHANGED));\n }\n };\n RowNode.prototype.setChildIndex = function (childIndex) {\n if (this.childIndex === childIndex) {\n return;\n }\n this.childIndex = childIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_CHILD_INDEX_CHANGED));\n }\n };\n RowNode.prototype.setRowTop = function (rowTop) {\n if (this.rowTop === rowTop) {\n return;\n }\n this.rowTop = rowTop;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_TOP_CHANGED));\n }\n };\n RowNode.prototype.setDragging = function (dragging) {\n if (this.dragging === dragging) {\n return;\n }\n this.dragging = dragging;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DRAGGING_CHANGED));\n }\n };\n RowNode.prototype.setAllChildrenCount = function (allChildrenCount) {\n if (this.allChildrenCount === allChildrenCount) {\n return;\n }\n this.allChildrenCount = allChildrenCount;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED));\n }\n };\n RowNode.prototype.setRowHeight = function (rowHeight, estimated) {\n if (estimated === void 0) { estimated = false; }\n this.rowHeight = rowHeight;\n this.rowHeightEstimated = estimated;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HEIGHT_CHANGED));\n }\n };\n RowNode.prototype.setRowIndex = function (rowIndex) {\n this.rowIndex = rowIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_INDEX_CHANGED));\n }\n };\n RowNode.prototype.setUiLevel = function (uiLevel) {\n if (this.uiLevel === uiLevel) {\n return;\n }\n this.uiLevel = uiLevel;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_UI_LEVEL_CHANGED));\n }\n };\n RowNode.prototype.setExpanded = function (expanded) {\n if (this.expanded === expanded) {\n return;\n }\n this.expanded = expanded;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_EXPANDED_CHANGED));\n }\n var event = this.createGlobalRowEvent(events_1.Events.EVENT_ROW_GROUP_OPENED);\n this.mainEventService.dispatchEvent(event);\n if (this.gridOptionsWrapper.isGroupIncludeFooter()) {\n this.gridApi.redrawRows({ rowNodes: [this] });\n }\n };\n RowNode.prototype.createGlobalRowEvent = function (type) {\n var event = {\n type: type,\n node: this,\n data: this.data,\n rowIndex: this.rowIndex,\n rowPinned: this.rowPinned,\n context: this.gridOptionsWrapper.getContext(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n return event;\n };\n RowNode.prototype.dispatchLocalEvent = function (event) {\n if (this.eventService) {\n this.eventService.dispatchEvent(event);\n }\n };\n // we also allow editing the value via the editors. when it is done via\n // the editors, no 'cell changed' event gets fired, as it's assumed that\n // the cell knows about the change given it's in charge of the editing.\n // this method is for the client to call, so the cell listens for the change\n // event, and also flashes the cell when the change occurs.\n RowNode.prototype.setDataValue = function (colKey, newValue) {\n var column = this.columnController.getPrimaryColumn(colKey);\n this.valueService.setValue(this, column, newValue);\n this.dispatchCellChangedEvent(column, newValue);\n };\n RowNode.prototype.setGroupValue = function (colKey, newValue) {\n var column = this.columnController.getGridColumn(colKey);\n if (utils_1._.missing(this.groupData)) {\n this.groupData = {};\n }\n this.groupData[column.getColId()] = newValue;\n this.dispatchCellChangedEvent(column, newValue);\n };\n // sets the data for an aggregation\n RowNode.prototype.setAggData = function (newAggData) {\n var _this = this;\n // find out all keys that could potentially change\n var colIds = utils_1._.getAllKeysInObjects([this.aggData, newAggData]);\n this.aggData = newAggData;\n // if no event service, nobody has registered for events, so no need fire event\n if (this.eventService) {\n colIds.forEach(function (colId) {\n var column = _this.columnController.getGridColumn(colId);\n var value = _this.aggData ? _this.aggData[colId] : undefined;\n _this.dispatchCellChangedEvent(column, value);\n });\n }\n };\n RowNode.prototype.hasChildren = function () {\n // we need to return true when this.group=true, as this is used by server side row model\n // (as children are lazy loaded and stored in a cache anyway). otherwise we return true\n // if children exist.\n return this.group || (this.childrenAfterGroup && this.childrenAfterGroup.length > 0);\n };\n RowNode.prototype.isEmptyRowGroupNode = function () {\n return this.group && utils_1._.missingOrEmpty(this.childrenAfterGroup);\n };\n RowNode.prototype.dispatchCellChangedEvent = function (column, newValue) {\n var cellChangedEvent = {\n type: RowNode.EVENT_CELL_CHANGED,\n node: this,\n column: column,\n newValue: newValue\n };\n this.dispatchLocalEvent(cellChangedEvent);\n };\n RowNode.prototype.resetQuickFilterAggregateText = function () {\n this.quickFilterAggregateText = null;\n };\n RowNode.prototype.isExpandable = function () {\n return this.hasChildren() || this.master;\n };\n RowNode.prototype.isSelected = function () {\n // for footers, we just return what our sibling selected state is, as cannot select a footer\n if (this.footer) {\n return this.sibling.isSelected();\n }\n return this.selected;\n };\n RowNode.prototype.depthFirstSearch = function (callback) {\n if (this.childrenAfterGroup) {\n this.childrenAfterGroup.forEach(function (child) { return child.depthFirstSearch(callback); });\n }\n callback(this);\n };\n // + rowController.updateGroupsInSelection()\n // + selectionController.calculatedSelectedForAllGroupNodes()\n RowNode.prototype.calculateSelectedFromChildren = function () {\n var atLeastOneSelected = false;\n var atLeastOneDeSelected = false;\n var atLeastOneMixed = false;\n var newSelectedValue;\n if (this.childrenAfterGroup) {\n for (var i = 0; i < this.childrenAfterGroup.length; i++) {\n var child = this.childrenAfterGroup[i];\n // skip non-selectable nodes to prevent inconsistent selection values\n if (!child.selectable) {\n continue;\n }\n var childState = child.isSelected();\n switch (childState) {\n case true:\n atLeastOneSelected = true;\n break;\n case false:\n atLeastOneDeSelected = true;\n break;\n default:\n atLeastOneMixed = true;\n break;\n }\n }\n }\n if (atLeastOneMixed) {\n newSelectedValue = undefined;\n }\n else if (atLeastOneSelected && !atLeastOneDeSelected) {\n newSelectedValue = true;\n }\n else if (!atLeastOneSelected && atLeastOneDeSelected) {\n newSelectedValue = false;\n }\n else {\n newSelectedValue = undefined;\n }\n this.selectThisNode(newSelectedValue);\n };\n RowNode.prototype.setSelectedInitialValue = function (selected) {\n this.selected = selected;\n };\n RowNode.prototype.setSelected = function (newValue, clearSelection, suppressFinishActions) {\n if (clearSelection === void 0) { clearSelection = false; }\n if (suppressFinishActions === void 0) { suppressFinishActions = false; }\n this.setSelectedParams({\n newValue: newValue,\n clearSelection: clearSelection,\n suppressFinishActions: suppressFinishActions,\n rangeSelect: false\n });\n };\n RowNode.prototype.isRowPinned = function () {\n return this.rowPinned === constants_1.Constants.PINNED_TOP || this.rowPinned === constants_1.Constants.PINNED_BOTTOM;\n };\n // to make calling code more readable, this is the same method as setSelected except it takes names parameters\n RowNode.prototype.setSelectedParams = function (params) {\n var groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n var newValue = params.newValue === true;\n var clearSelection = params.clearSelection === true;\n var suppressFinishActions = params.suppressFinishActions === true;\n var rangeSelect = params.rangeSelect === true;\n // groupSelectsFiltered only makes sense when group selects children\n var groupSelectsFiltered = groupSelectsChildren && (params.groupSelectsFiltered === true);\n if (this.id === undefined) {\n console.warn('ag-Grid: cannot select node until id for node is known');\n return 0;\n }\n if (this.rowPinned) {\n console.warn('ag-Grid: cannot select pinned rows');\n return 0;\n }\n // if we are a footer, we don't do selection, just pass the info\n // to the sibling (the parent of the group)\n if (this.footer) {\n var count = this.sibling.setSelectedParams(params);\n return count;\n }\n if (rangeSelect) {\n var newRowClicked = this.selectionController.getLastSelectedNode() !== this;\n var allowMultiSelect = this.gridOptionsWrapper.isRowSelectionMulti();\n if (newRowClicked && allowMultiSelect) {\n return this.doRowRangeSelection();\n }\n }\n var updatedCount = 0;\n // when groupSelectsFiltered, then this node may end up intermediate despite\n // trying to set it to true / false. this group will be calculated further on\n // down when we call calculatedSelectedForAllGroupNodes(). we need to skip it\n // here, otherwise the updatedCount would include it.\n var skipThisNode = groupSelectsFiltered && this.group;\n if (!skipThisNode) {\n var thisNodeWasSelected = this.selectThisNode(newValue);\n if (thisNodeWasSelected) {\n updatedCount++;\n }\n }\n if (groupSelectsChildren && this.group) {\n updatedCount += this.selectChildNodes(newValue, groupSelectsFiltered);\n }\n // clear other nodes if not doing multi select\n if (!suppressFinishActions) {\n var clearOtherNodes = newValue && (clearSelection || !this.gridOptionsWrapper.isRowSelectionMulti());\n if (clearOtherNodes) {\n updatedCount += this.selectionController.clearOtherNodes(this);\n }\n // only if we selected something, then update groups and fire events\n if (updatedCount > 0) {\n this.selectionController.updateGroupsFromChildrenSelections();\n // this is the very end of the 'action node', so we are finished all the updates,\n // include any parent / child changes that this method caused\n var event_1 = {\n type: events_1.Events.EVENT_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.mainEventService.dispatchEvent(event_1);\n }\n // so if user next does shift-select, we know where to start the selection from\n if (newValue) {\n this.selectionController.setLastSelectedNode(this);\n }\n }\n return updatedCount;\n };\n // selects all rows between this node and the last selected node (or the top if this is the first selection).\n // not to be mixed up with 'cell range selection' where you drag the mouse, this is row range selection, by\n // holding down 'shift'.\n RowNode.prototype.doRowRangeSelection = function () {\n var updatedCount = 0;\n var groupsSelectChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n var lastSelectedNode = this.selectionController.getLastSelectedNode();\n var nodesToSelect = this.rowModel.getNodesInRangeForSelection(this, lastSelectedNode);\n nodesToSelect.forEach(function (rowNode) {\n if (rowNode.group && groupsSelectChildren) {\n return;\n }\n var nodeWasSelected = rowNode.selectThisNode(true);\n if (nodeWasSelected) {\n updatedCount++;\n }\n });\n this.selectionController.updateGroupsFromChildrenSelections();\n var event = {\n type: events_1.Events.EVENT_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.mainEventService.dispatchEvent(event);\n return updatedCount;\n };\n RowNode.prototype.isParentOfNode = function (potentialParent) {\n var parentNode = this.parent;\n while (parentNode) {\n if (parentNode === potentialParent) {\n return true;\n }\n parentNode = parentNode.parent;\n }\n return false;\n };\n RowNode.prototype.selectThisNode = function (newValue) {\n if (!this.selectable || this.selected === newValue) {\n return false;\n }\n this.selected = newValue;\n if (this.eventService) {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));\n }\n var event = this.createGlobalRowEvent(events_1.Events.EVENT_ROW_SELECTED);\n this.mainEventService.dispatchEvent(event);\n return true;\n };\n RowNode.prototype.selectChildNodes = function (newValue, groupSelectsFiltered) {\n var children = groupSelectsFiltered ? this.childrenAfterFilter : this.childrenAfterGroup;\n var updatedCount = 0;\n if (utils_1._.missing(children)) {\n return;\n }\n for (var i = 0; i < children.length; i++) {\n updatedCount += children[i].setSelectedParams({\n newValue: newValue,\n clearSelection: false,\n suppressFinishActions: true,\n groupSelectsFiltered: groupSelectsFiltered\n });\n }\n return updatedCount;\n };\n RowNode.prototype.addEventListener = function (eventType, listener) {\n if (!this.eventService) {\n this.eventService = new eventService_1.EventService();\n }\n this.eventService.addEventListener(eventType, listener);\n };\n RowNode.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n RowNode.prototype.onMouseEnter = function () {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_ENTER));\n };\n RowNode.prototype.onMouseLeave = function () {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_LEAVE));\n };\n RowNode.prototype.getFirstChildOfFirstChild = function (rowGroupColumn) {\n var currentRowNode = this;\n // if we are hiding groups, then if we are the first child, of the first child,\n // all the way up to the column we are interested in, then we show the group cell.\n var isCandidate = true;\n var foundFirstChildPath = false;\n var nodeToSwapIn;\n while (isCandidate && !foundFirstChildPath) {\n var parentRowNode = currentRowNode.parent;\n var firstChild = utils_1._.exists(parentRowNode) && currentRowNode.firstChild;\n if (firstChild) {\n if (parentRowNode.rowGroupColumn === rowGroupColumn) {\n foundFirstChildPath = true;\n nodeToSwapIn = parentRowNode;\n }\n }\n else {\n isCandidate = false;\n }\n currentRowNode = parentRowNode;\n }\n return foundFirstChildPath ? nodeToSwapIn : null;\n };\n RowNode.OBJECT_ID_SEQUENCE = 0;\n RowNode.EVENT_ROW_SELECTED = 'rowSelected';\n RowNode.EVENT_DATA_CHANGED = 'dataChanged';\n RowNode.EVENT_CELL_CHANGED = 'cellChanged';\n RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED = 'allChildrenCountChanged';\n RowNode.EVENT_MOUSE_ENTER = 'mouseEnter';\n RowNode.EVENT_MOUSE_LEAVE = 'mouseLeave';\n RowNode.EVENT_HEIGHT_CHANGED = 'heightChanged';\n RowNode.EVENT_TOP_CHANGED = 'topChanged';\n RowNode.EVENT_FIRST_CHILD_CHANGED = 'firstChildChanged';\n RowNode.EVENT_LAST_CHILD_CHANGED = 'lastChildChanged';\n RowNode.EVENT_CHILD_INDEX_CHANGED = 'childIndexChanged';\n RowNode.EVENT_ROW_INDEX_CHANGED = 'rowIndexChanged';\n RowNode.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n RowNode.EVENT_SELECTABLE_CHANGED = 'selectableChanged';\n RowNode.EVENT_UI_LEVEL_CHANGED = 'uiLevelChanged';\n RowNode.EVENT_DRAGGING_CHANGED = 'draggingChanged';\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], RowNode.prototype, \"mainEventService\", void 0);\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], RowNode.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('selectionController'),\n __metadata(\"design:type\", selectionController_1.SelectionController)\n ], RowNode.prototype, \"selectionController\", void 0);\n __decorate([\n context_1.Autowired('columnController'),\n __metadata(\"design:type\", columnController_1.ColumnController)\n ], RowNode.prototype, \"columnController\", void 0);\n __decorate([\n context_1.Autowired('valueService'),\n __metadata(\"design:type\", valueService_1.ValueService)\n ], RowNode.prototype, \"valueService\", void 0);\n __decorate([\n context_1.Autowired('rowModel'),\n __metadata(\"design:type\", Object)\n ], RowNode.prototype, \"rowModel\", void 0);\n __decorate([\n context_1.Autowired('context'),\n __metadata(\"design:type\", context_1.Context)\n ], RowNode.prototype, \"context\", void 0);\n __decorate([\n context_1.Autowired('valueCache'),\n __metadata(\"design:type\", valueCache_1.ValueCache)\n ], RowNode.prototype, \"valueCache\", void 0);\n __decorate([\n context_1.Autowired('columnApi'),\n __metadata(\"design:type\", columnApi_1.ColumnApi)\n ], RowNode.prototype, \"columnApi\", void 0);\n __decorate([\n context_1.Autowired('gridApi'),\n __metadata(\"design:type\", gridApi_1.GridApi)\n ], RowNode.prototype, \"gridApi\", void 0);\n return RowNode;\n}());\nexports.RowNode = RowNode;\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 utils_1 = require(\"./utils\");\nvar MAT_GRID_SIZE = 8;\nvar FRESH_GRID_SIZE = 4;\nvar BALHAM_GRID_SIZE = 4;\nvar HARD_CODED_SIZES = {\n 'ag-theme-material': {\n headerHeight: MAT_GRID_SIZE * 7,\n virtualItemHeight: MAT_GRID_SIZE * 5,\n rowHeight: MAT_GRID_SIZE * 6\n },\n 'ag-theme-classic': {\n headerHeight: 25,\n virtualItemHeight: FRESH_GRID_SIZE * 5,\n rowHeight: 25\n },\n 'ag-theme-balham': {\n headerHeight: BALHAM_GRID_SIZE * 8,\n virtualItemHeight: BALHAM_GRID_SIZE * 7,\n rowHeight: BALHAM_GRID_SIZE * 7\n }\n};\n/**\n * this object contains a list of Sass variables and an array\n * of CSS styles required to get the correct value.\n * eg. $virtual-item-height requires a structure, so we can get it's height.\n *
\n *
\n *
\n *
\n */\nvar SASS_PROPERTY_BUILDER = {\n headerHeight: ['ag-header-row'],\n virtualItemHeight: ['ag-virtual-list-container', 'ag-virtual-list-item'],\n rowHeight: ['ag-row']\n};\nvar CALCULATED_SIZES = {};\nvar Environment = /** @class */ (function () {\n function Environment() {\n }\n Environment.prototype.getSassVariable = function (theme, key) {\n var useTheme = 'ag-theme-' + (theme.match('material') ? 'material' : (theme.match('balham') ? 'balham' : 'classic'));\n var defaultValue = HARD_CODED_SIZES[useTheme][key];\n var calculatedValue = 0;\n if (!CALCULATED_SIZES[theme]) {\n CALCULATED_SIZES[theme] = {};\n }\n if (CALCULATED_SIZES[theme][key]) {\n return CALCULATED_SIZES[theme][key];\n }\n if (SASS_PROPERTY_BUILDER[key]) {\n var classList = SASS_PROPERTY_BUILDER[key];\n var div = document.createElement('div');\n var el = classList.reduce(function (el, currentClass, idx) {\n if (idx === 0) {\n utils_1._.addCssClass(el, theme);\n }\n var div = document.createElement('div');\n utils_1._.addCssClass(div, currentClass);\n el.appendChild(div);\n return div;\n }, div);\n if (document.body) {\n document.body.appendChild(div);\n calculatedValue = parseInt(window.getComputedStyle(el).height, 10);\n document.body.removeChild(div);\n }\n }\n CALCULATED_SIZES[theme][key] = calculatedValue || defaultValue;\n return CALCULATED_SIZES[theme][key];\n };\n Environment.prototype.isThemeDark = function () {\n var theme = this.getTheme().theme;\n return !!theme && theme.indexOf('dark') >= 0;\n };\n Environment.prototype.getTheme = function () {\n var reg = /\\bag-(fresh|dark|blue|material|bootstrap|(?:theme-([\\w\\-]*)))\\b/;\n var el = this.eGridDiv;\n var themeMatch;\n while (el) {\n themeMatch = reg.exec(el.className);\n if (!themeMatch) {\n el = el.parentElement;\n }\n else {\n break;\n }\n }\n if (!themeMatch) {\n return {};\n }\n var theme = themeMatch[0];\n var usingOldTheme = themeMatch[2] === undefined;\n if (usingOldTheme) {\n var newTheme_1 = theme.replace('ag-', 'ag-theme-');\n utils_1._.doOnce(function () { return console.warn(\"ag-Grid: As of v19 old theme are no longer provided. Please replace \" + theme + \" with \" + newTheme_1 + \".\"); }, 'using-old-theme');\n }\n return { theme: theme, el: el };\n };\n __decorate([\n context_1.Autowired('eGridDiv'),\n __metadata(\"design:type\", HTMLElement)\n ], Environment.prototype, \"eGridDiv\", void 0);\n Environment = __decorate([\n context_1.Bean('environment')\n ], Environment);\n return Environment;\n}());\nexports.Environment = Environment;\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};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar logger_1 = require(\"../logger\");\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar dragService_1 = require(\"./dragService\");\nvar columnController_1 = require(\"../columnController/columnController\");\nvar environment_1 = require(\"../environment\");\nvar utils_1 = require(\"../utils\");\nvar DragSourceType;\n(function (DragSourceType) {\n DragSourceType[DragSourceType[\"ToolPanel\"] = 0] = \"ToolPanel\";\n DragSourceType[DragSourceType[\"HeaderCell\"] = 1] = \"HeaderCell\";\n DragSourceType[DragSourceType[\"RowDrag\"] = 2] = \"RowDrag\";\n})(DragSourceType = exports.DragSourceType || (exports.DragSourceType = {}));\nvar VDirection;\n(function (VDirection) {\n VDirection[VDirection[\"Up\"] = 0] = \"Up\";\n VDirection[VDirection[\"Down\"] = 1] = \"Down\";\n})(VDirection = exports.VDirection || (exports.VDirection = {}));\nvar HDirection;\n(function (HDirection) {\n HDirection[HDirection[\"Left\"] = 0] = \"Left\";\n HDirection[HDirection[\"Right\"] = 1] = \"Right\";\n})(HDirection = exports.HDirection || (exports.HDirection = {}));\nvar DragAndDropService = /** @class */ (function () {\n function DragAndDropService() {\n this.dragSourceAndParamsList = [];\n this.dropTargets = [];\n }\n DragAndDropService_1 = DragAndDropService;\n DragAndDropService.prototype.init = function () {\n this.ePinnedIcon = utils_1._.createIcon('columnMovePin', this.gridOptionsWrapper, null);\n this.ePlusIcon = utils_1._.createIcon('columnMoveAdd', this.gridOptionsWrapper, null);\n this.eHiddenIcon = utils_1._.createIcon('columnMoveHide', this.gridOptionsWrapper, null);\n this.eMoveIcon = utils_1._.createIcon('columnMoveMove', this.gridOptionsWrapper, null);\n this.eLeftIcon = utils_1._.createIcon('columnMoveLeft', this.gridOptionsWrapper, null);\n this.eRightIcon = utils_1._.createIcon('columnMoveRight', this.gridOptionsWrapper, null);\n this.eGroupIcon = utils_1._.createIcon('columnMoveGroup', this.gridOptionsWrapper, null);\n this.eAggregateIcon = utils_1._.createIcon('columnMoveValue', this.gridOptionsWrapper, null);\n this.ePivotIcon = utils_1._.createIcon('columnMovePivot', this.gridOptionsWrapper, null);\n this.eDropNotAllowedIcon = utils_1._.createIcon('dropNotAllowed', this.gridOptionsWrapper, null);\n };\n DragAndDropService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('OldToolPanelDragAndDropService');\n };\n DragAndDropService.prototype.getStringType = function (type) {\n switch (type) {\n case DragSourceType.RowDrag: return 'row';\n case DragSourceType.HeaderCell: return 'headerCell';\n case DragSourceType.ToolPanel: return 'toolPanel';\n default:\n console.warn(\"ag-Grid: bug - unknown drag type \" + type);\n return null;\n }\n };\n DragAndDropService.prototype.addDragSource = function (dragSource, allowTouch) {\n if (allowTouch === void 0) { allowTouch = false; }\n var params = {\n eElement: dragSource.eElement,\n dragStartPixels: dragSource.dragStartPixels,\n onDragStart: this.onDragStart.bind(this, dragSource),\n onDragStop: this.onDragStop.bind(this),\n onDragging: this.onDragging.bind(this)\n };\n this.dragSourceAndParamsList.push({ params: params, dragSource: dragSource });\n this.dragService.addDragSource(params, allowTouch);\n };\n DragAndDropService.prototype.removeDragSource = function (dragSource) {\n var sourceAndParams = utils_1._.find(this.dragSourceAndParamsList, function (item) { return item.dragSource === dragSource; });\n if (sourceAndParams) {\n this.dragService.removeDragSource(sourceAndParams.params);\n utils_1._.removeFromArray(this.dragSourceAndParamsList, sourceAndParams);\n }\n };\n DragAndDropService.prototype.destroy = function () {\n var _this = this;\n this.dragSourceAndParamsList.forEach(function (sourceAndParams) {\n _this.dragService.removeDragSource(sourceAndParams.params);\n });\n this.dragSourceAndParamsList.length = 0;\n };\n DragAndDropService.prototype.nudge = function () {\n if (this.dragging) {\n this.onDragging(this.eventLastTime, true);\n }\n };\n DragAndDropService.prototype.onDragStart = function (dragSource, mouseEvent) {\n this.dragging = true;\n this.dragSource = dragSource;\n this.eventLastTime = mouseEvent;\n this.dragItem = this.dragSource.dragItemCallback();\n this.lastDropTarget = this.dragSource.dragSourceDropTarget;\n if (this.dragSource.dragStarted) {\n this.dragSource.dragStarted();\n }\n this.createGhost();\n };\n DragAndDropService.prototype.onDragStop = function (mouseEvent) {\n this.eventLastTime = null;\n this.dragging = false;\n if (this.dragSource.dragStopped) {\n this.dragSource.dragStopped();\n }\n if (this.lastDropTarget && this.lastDropTarget.onDragStop) {\n var draggingEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, null, null, false);\n this.lastDropTarget.onDragStop(draggingEvent);\n }\n this.lastDropTarget = null;\n this.dragItem = null;\n this.removeGhost();\n };\n DragAndDropService.prototype.onDragging = function (mouseEvent, fromNudge) {\n var hDirection = this.workOutHDirection(mouseEvent);\n var vDirection = this.workOutVDirection(mouseEvent);\n this.eventLastTime = mouseEvent;\n this.positionGhost(mouseEvent);\n // check if mouseEvent intersects with any of the drop targets\n var dropTarget = utils_1._.find(this.dropTargets, this.isMouseOnDropTarget.bind(this, mouseEvent));\n if (dropTarget !== this.lastDropTarget) {\n this.leaveLastTargetIfExists(mouseEvent, hDirection, vDirection, fromNudge);\n this.enterDragTargetIfExists(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget = dropTarget;\n }\n else if (dropTarget) {\n var draggingEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragging(draggingEvent);\n }\n };\n DragAndDropService.prototype.enterDragTargetIfExists = function (dropTarget, mouseEvent, hDirection, vDirection, fromNudge) {\n if (!dropTarget) {\n return;\n }\n var dragEnterEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragEnter(dragEnterEvent);\n this.setGhostIcon(dropTarget.getIconName ? dropTarget.getIconName() : null);\n };\n DragAndDropService.prototype.leaveLastTargetIfExists = function (mouseEvent, hDirection, vDirection, fromNudge) {\n if (!this.lastDropTarget) {\n return;\n }\n var dragLeaveEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget.onDragLeave(dragLeaveEvent);\n this.setGhostIcon(null);\n };\n DragAndDropService.prototype.getAllContainersFromDropTarget = function (dropTarget) {\n var containers = [dropTarget.getContainer()];\n var secondaryContainers = dropTarget.getSecondaryContainers ? dropTarget.getSecondaryContainers() : null;\n if (secondaryContainers) {\n containers = containers.concat(secondaryContainers);\n }\n return containers;\n };\n // checks if the mouse is on the drop target. it checks eContainer and eSecondaryContainers\n DragAndDropService.prototype.isMouseOnDropTarget = function (mouseEvent, dropTarget) {\n var allContainers = this.getAllContainersFromDropTarget(dropTarget);\n var mouseOverTarget = false;\n allContainers.forEach(function (eContainer) {\n if (!eContainer) {\n return;\n } // secondary can be missing\n var rect = eContainer.getBoundingClientRect();\n // if element is not visible, then width and height are zero\n if (rect.width === 0 || rect.height === 0) {\n return;\n }\n var horizontalFit = mouseEvent.clientX >= rect.left && mouseEvent.clientX <= rect.right;\n var verticalFit = mouseEvent.clientY >= rect.top && mouseEvent.clientY <= rect.bottom;\n //console.log(`rect.width = ${rect.width} || rect.height = ${rect.height} ## verticalFit = ${verticalFit}, horizontalFit = ${horizontalFit}, `);\n if (horizontalFit && verticalFit) {\n mouseOverTarget = true;\n }\n });\n if (mouseOverTarget) {\n var mouseOverTargetAndInterested = dropTarget.isInterestedIn(this.dragSource.type);\n return mouseOverTargetAndInterested;\n }\n else {\n return false;\n }\n };\n DragAndDropService.prototype.addDropTarget = function (dropTarget) {\n this.dropTargets.push(dropTarget);\n };\n DragAndDropService.prototype.workOutHDirection = function (event) {\n if (this.eventLastTime.clientX > event.clientX) {\n return HDirection.Left;\n }\n else if (this.eventLastTime.clientX < event.clientX) {\n return HDirection.Right;\n }\n else {\n return null;\n }\n };\n DragAndDropService.prototype.workOutVDirection = function (event) {\n if (this.eventLastTime.clientY > event.clientY) {\n return VDirection.Up;\n }\n else if (this.eventLastTime.clientY < event.clientY) {\n return VDirection.Down;\n }\n else {\n return null;\n }\n };\n DragAndDropService.prototype.createDropTargetEvent = function (dropTarget, event, hDirection, vDirection, fromNudge) {\n // localise x and y to the target component\n var rect = dropTarget.getContainer().getBoundingClientRect();\n var x = event.clientX - rect.left;\n var y = event.clientY - rect.top;\n var dropTargetEvent = {\n event: event,\n x: x,\n y: y,\n vDirection: vDirection,\n hDirection: hDirection,\n dragSource: this.dragSource,\n fromNudge: fromNudge,\n dragItem: this.dragItem\n };\n return dropTargetEvent;\n };\n DragAndDropService.prototype.positionGhost = function (event) {\n var ghostRect = this.eGhost.getBoundingClientRect();\n var ghostHeight = ghostRect.height;\n // for some reason, without the '-2', it still overlapped by 1 or 2 pixels, which\n // then brought in scrollbars to the browser. no idea why, but putting in -2 here\n // works around it which is good enough for me.\n var browserWidth = utils_1._.getBodyWidth() - 2;\n var browserHeight = utils_1._.getBodyHeight() - 2;\n // put ghost vertically in middle of cursor\n var top = event.pageY - (ghostHeight / 2);\n // horizontally, place cursor just right of icon\n var left = event.pageX - 30;\n var usrDocument = this.gridOptionsWrapper.getDocument();\n var windowScrollY = window.pageYOffset || usrDocument.documentElement.scrollTop;\n var windowScrollX = window.pageXOffset || usrDocument.documentElement.scrollLeft;\n // check ghost is not positioned outside of the browser\n if (browserWidth > 0) {\n if ((left + this.eGhost.clientWidth) > (browserWidth + windowScrollX)) {\n left = browserWidth + windowScrollX - this.eGhost.clientWidth;\n }\n }\n if (left < 0) {\n left = 0;\n }\n if (browserHeight > 0) {\n if ((top + this.eGhost.clientHeight) > (browserHeight + windowScrollY)) {\n top = browserHeight + windowScrollY - this.eGhost.clientHeight;\n }\n }\n if (top < 0) {\n top = 0;\n }\n this.eGhost.style.left = left + 'px';\n this.eGhost.style.top = top + 'px';\n };\n DragAndDropService.prototype.removeGhost = function () {\n if (this.eGhost && this.eGhostParent) {\n this.eGhostParent.removeChild(this.eGhost);\n }\n this.eGhost = null;\n };\n DragAndDropService.prototype.createGhost = function () {\n this.eGhost = utils_1._.loadTemplate(DragAndDropService_1.GHOST_TEMPLATE);\n var theme = this.environment.getTheme().theme;\n if (theme) {\n utils_1._.addCssClass(this.eGhost, theme);\n }\n this.eGhostIcon = this.eGhost.querySelector('.ag-dnd-ghost-icon');\n this.setGhostIcon(null);\n var eText = this.eGhost.querySelector('.ag-dnd-ghost-label');\n eText.innerHTML = utils_1._.escape(this.dragSource.dragItemName);\n this.eGhost.style.height = '25px';\n this.eGhost.style.top = '20px';\n this.eGhost.style.left = '20px';\n var usrDocument = this.gridOptionsWrapper.getDocument();\n this.eGhostParent = usrDocument.querySelector('body');\n if (!this.eGhostParent) {\n console.warn('ag-Grid: could not find document body, it is needed for dragging columns');\n }\n else {\n this.eGhostParent.appendChild(this.eGhost);\n }\n };\n DragAndDropService.prototype.setGhostIcon = function (iconName, shake) {\n if (shake === void 0) { shake = false; }\n utils_1._.clearElement(this.eGhostIcon);\n var eIcon;\n switch (iconName) {\n case DragAndDropService_1.ICON_ADD:\n eIcon = this.ePlusIcon;\n break;\n case DragAndDropService_1.ICON_PINNED:\n eIcon = this.ePinnedIcon;\n break;\n case DragAndDropService_1.ICON_MOVE:\n eIcon = this.eMoveIcon;\n break;\n case DragAndDropService_1.ICON_LEFT:\n eIcon = this.eLeftIcon;\n break;\n case DragAndDropService_1.ICON_RIGHT:\n eIcon = this.eRightIcon;\n break;\n case DragAndDropService_1.ICON_GROUP:\n eIcon = this.eGroupIcon;\n break;\n case DragAndDropService_1.ICON_AGGREGATE:\n eIcon = this.eAggregateIcon;\n break;\n case DragAndDropService_1.ICON_PIVOT:\n eIcon = this.ePivotIcon;\n break;\n case DragAndDropService_1.ICON_NOT_ALLOWED:\n eIcon = this.eDropNotAllowedIcon;\n break;\n default:\n eIcon = this.eHiddenIcon;\n break;\n }\n this.eGhostIcon.appendChild(eIcon);\n utils_1._.addOrRemoveCssClass(this.eGhostIcon, 'ag-shake-left-to-right', shake);\n };\n var DragAndDropService_1;\n DragAndDropService.ICON_PINNED = 'pinned';\n DragAndDropService.ICON_ADD = 'add';\n DragAndDropService.ICON_MOVE = 'move';\n DragAndDropService.ICON_LEFT = 'left';\n DragAndDropService.ICON_RIGHT = 'right';\n DragAndDropService.ICON_GROUP = 'group';\n DragAndDropService.ICON_AGGREGATE = 'aggregate';\n DragAndDropService.ICON_PIVOT = 'pivot';\n DragAndDropService.ICON_NOT_ALLOWED = 'notAllowed';\n DragAndDropService.GHOST_TEMPLATE = '
' +\n ' ' +\n '
' +\n '
' +\n '
';\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], DragAndDropService.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('dragService'),\n __metadata(\"design:type\", dragService_1.DragService)\n ], DragAndDropService.prototype, \"dragService\", void 0);\n __decorate([\n context_1.Autowired('environment'),\n __metadata(\"design:type\", environment_1.Environment)\n ], DragAndDropService.prototype, \"environment\", void 0);\n __decorate([\n context_1.Autowired('columnController'),\n __metadata(\"design:type\", columnController_1.ColumnController)\n ], DragAndDropService.prototype, \"columnController\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], DragAndDropService.prototype, \"init\", null);\n __decorate([\n __param(0, context_1.Qualifier('loggerFactory')),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [logger_1.LoggerFactory]),\n __metadata(\"design:returntype\", void 0)\n ], DragAndDropService.prototype, \"setBeans\", null);\n __decorate([\n context_1.PreDestroy,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], DragAndDropService.prototype, \"destroy\", null);\n DragAndDropService = DragAndDropService_1 = __decorate([\n context_1.Bean('dragAndDropService')\n ], DragAndDropService);\n return DragAndDropService;\n}());\nexports.DragAndDropService = DragAndDropService;\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 logger_1 = require(\"../logger\");\nvar eventService_1 = require(\"../eventService\");\nvar events_1 = require(\"../events\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar columnApi_1 = require(\"../columnController/columnApi\");\nvar gridApi_1 = require(\"../gridApi\");\nvar utils_1 = require(\"../utils\");\n/** Adds drag listening onto an element. In ag-Grid this is used twice, first is resizing columns,\n * second is moving the columns and column groups around (ie the 'drag' part of Drag and Drop. */\nvar DragService = /** @class */ (function () {\n function DragService() {\n this.onMouseUpListener = this.onMouseUp.bind(this);\n this.onMouseMoveListener = this.onMouseMove.bind(this);\n this.onTouchEndListener = this.onTouchUp.bind(this);\n this.onTouchMoveListener = this.onTouchMove.bind(this);\n this.dragEndFunctions = [];\n this.dragSources = [];\n }\n DragService.prototype.init = function () {\n this.logger = this.loggerFactory.create('DragService');\n };\n DragService.prototype.destroy = function () {\n this.dragSources.forEach(this.removeListener.bind(this));\n this.dragSources.length = 0;\n };\n DragService.prototype.removeListener = function (dragSourceAndListener) {\n var element = dragSourceAndListener.dragSource.eElement;\n var mouseDownListener = dragSourceAndListener.mouseDownListener;\n element.removeEventListener('mousedown', mouseDownListener);\n // remove touch listener only if it exists\n if (dragSourceAndListener.touchEnabled) {\n var touchStartListener = dragSourceAndListener.touchStartListener;\n element.removeEventListener('touchstart', touchStartListener, { passive: true });\n }\n };\n DragService.prototype.removeDragSource = function (params) {\n var dragSourceAndListener = utils_1._.find(this.dragSources, function (item) { return item.dragSource === params; });\n if (!dragSourceAndListener) {\n return;\n }\n this.removeListener(dragSourceAndListener);\n utils_1._.removeFromArray(this.dragSources, dragSourceAndListener);\n };\n DragService.prototype.setNoSelectToBody = function (noSelect) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var eBody = eDocument.querySelector('body');\n if (utils_1._.exists(eBody)) {\n // when we drag the mouse in ag-Grid, this class gets added / removed from the body, so that\n // the mouse isn't selecting text when dragging.\n utils_1._.addOrRemoveCssClass(eBody, 'ag-unselectable', noSelect);\n }\n };\n DragService.prototype.addDragSource = function (params, includeTouch) {\n if (includeTouch === void 0) { includeTouch = false; }\n var mouseListener = this.onMouseDown.bind(this, params);\n params.eElement.addEventListener('mousedown', mouseListener);\n var touchListener = null;\n var suppressTouch = this.gridOptionsWrapper.isSuppressTouch();\n if (includeTouch && !suppressTouch) {\n touchListener = this.onTouchStart.bind(this, params);\n params.eElement.addEventListener('touchstart', touchListener, { passive: false });\n }\n this.dragSources.push({\n dragSource: params,\n mouseDownListener: mouseListener,\n touchStartListener: touchListener,\n touchEnabled: includeTouch\n });\n };\n // gets called whenever mouse down on any drag source\n DragService.prototype.onTouchStart = function (params, touchEvent) {\n var _this = this;\n this.currentDragParams = params;\n this.dragging = false;\n var touch = touchEvent.touches[0];\n this.touchLastTime = touch;\n this.touchStart = touch;\n touchEvent.preventDefault();\n // we temporally add these listeners, for the duration of the drag, they\n // are removed in touch end handling.\n params.eElement.addEventListener('touchmove', this.onTouchMoveListener, { passive: true });\n params.eElement.addEventListener('touchend', this.onTouchEndListener, { passive: true });\n params.eElement.addEventListener('touchcancel', this.onTouchEndListener, { passive: true });\n this.dragEndFunctions.push(function () {\n params.eElement.removeEventListener('touchmove', _this.onTouchMoveListener, { passive: true });\n params.eElement.removeEventListener('touchend', _this.onTouchEndListener, { passive: true });\n params.eElement.removeEventListener('touchcancel', _this.onTouchEndListener, { passive: true });\n });\n // see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onCommonMove(touch, this.touchStart);\n }\n };\n // gets called whenever mouse down on any drag source\n DragService.prototype.onMouseDown = function (params, mouseEvent) {\n var _this = this;\n // we ignore when shift key is pressed. this is for the range selection, as when\n // user shift-clicks a cell, this should not be interpreted as the start of a drag.\n // if (mouseEvent.shiftKey) { return; }\n if (params.skipMouseEvent) {\n if (params.skipMouseEvent(mouseEvent)) {\n return;\n }\n }\n // if there are two elements with parent / child relationship, and both are draggable,\n // when we drag the child, we should NOT drag the parent. an example of this is row moving\n // and range selection - row moving should get preference when use drags the rowDrag component.\n if (mouseEvent._alreadyProcessedByDragService) {\n return;\n }\n mouseEvent._alreadyProcessedByDragService = true;\n // only interested in left button clicks\n if (mouseEvent.button !== 0) {\n return;\n }\n this.currentDragParams = params;\n this.dragging = false;\n this.mouseStartEvent = mouseEvent;\n var eDocument = this.gridOptionsWrapper.getDocument();\n this.setNoSelectToBody(true);\n // we temporally add these listeners, for the duration of the drag, they\n // are removed in mouseup handling.\n eDocument.addEventListener('mousemove', this.onMouseMoveListener);\n eDocument.addEventListener('mouseup', this.onMouseUpListener);\n this.dragEndFunctions.push(function () {\n eDocument.removeEventListener('mousemove', _this.onMouseMoveListener);\n eDocument.removeEventListener('mouseup', _this.onMouseUpListener);\n });\n //see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onMouseMove(mouseEvent);\n }\n };\n // returns true if the event is close to the original event by X pixels either vertically or horizontally.\n // we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n DragService.prototype.isEventNearStartEvent = function (currentEvent, startEvent) {\n // by default, we wait 4 pixels before starting the drag\n var dragStartPixels = this.currentDragParams.dragStartPixels;\n var requiredPixelDiff = utils_1._.exists(dragStartPixels) ? dragStartPixels : 4;\n return utils_1._.areEventsNear(currentEvent, startEvent, requiredPixelDiff);\n };\n DragService.prototype.getFirstActiveTouch = function (touchList) {\n for (var i = 0; i < touchList.length; i++) {\n if (touchList[i].identifier === this.touchStart.identifier) {\n return touchList[i];\n }\n }\n return null;\n };\n DragService.prototype.onCommonMove = function (currentEvent, startEvent) {\n if (!this.dragging) {\n // if mouse hasn't travelled from the start position enough, do nothing\n if (!this.dragging && this.isEventNearStartEvent(currentEvent, startEvent)) {\n return;\n }\n this.dragging = true;\n var event_1 = {\n type: events_1.Events.EVENT_DRAG_STARTED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n this.currentDragParams.onDragStart(startEvent);\n }\n this.currentDragParams.onDragging(currentEvent);\n };\n DragService.prototype.onTouchMove = function (touchEvent) {\n var touch = this.getFirstActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n // this.___statusPanel.setInfoText(Math.random() + ' onTouchMove preventDefault stopPropagation');\n // if we don't preview default, then the browser will try and do it's own touch stuff,\n // like do 'back button' (chrome does this) or scroll the page (eg drag column could be confused\n // with scroll page in the app)\n // touchEvent.preventDefault();\n this.onCommonMove(touch, this.touchStart);\n };\n // only gets called after a mouse down - as this is only added after mouseDown\n // and is removed when mouseUp happens\n DragService.prototype.onMouseMove = function (mouseEvent) {\n this.onCommonMove(mouseEvent, this.mouseStartEvent);\n };\n DragService.prototype.onTouchUp = function (touchEvent) {\n var touch = this.getFirstActiveTouch(touchEvent.changedTouches);\n // i haven't worked this out yet, but there is no matching touch\n // when we get the touch up event. to get around this, we swap in\n // the last touch. this is a hack to 'get it working' while we\n // figure out what's going on, why we are not getting a touch in\n // current event.\n if (!touch) {\n touch = this.touchLastTime;\n }\n // if mouse was left up before we started to move, then this is a tap.\n // we check this before onUpCommon as onUpCommon resets the dragging\n // let tap = !this.dragging;\n // let tapTarget = this.currentDragParams.eElement;\n this.onUpCommon(touch);\n // if tap, tell user\n // console.log(`${Math.random()} tap = ${tap}`);\n // if (tap) {\n // tapTarget.click();\n // }\n };\n DragService.prototype.onMouseUp = function (mouseEvent) {\n this.onUpCommon(mouseEvent);\n };\n DragService.prototype.onUpCommon = function (eventOrTouch) {\n if (this.dragging) {\n this.dragging = false;\n this.currentDragParams.onDragStop(eventOrTouch);\n var event_2 = {\n type: events_1.Events.EVENT_DRAG_STOPPED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_2);\n }\n this.setNoSelectToBody(false);\n this.mouseStartEvent = null;\n this.touchStart = null;\n this.touchLastTime = null;\n this.currentDragParams = null;\n this.dragEndFunctions.forEach(function (func) { return func(); });\n this.dragEndFunctions.length = 0;\n };\n __decorate([\n context_1.Autowired('loggerFactory'),\n __metadata(\"design:type\", logger_1.LoggerFactory)\n ], DragService.prototype, \"loggerFactory\", void 0);\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], DragService.prototype, \"eventService\", void 0);\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], DragService.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('columnApi'),\n __metadata(\"design:type\", columnApi_1.ColumnApi)\n ], DragService.prototype, \"columnApi\", void 0);\n __decorate([\n context_1.Autowired('gridApi'),\n __metadata(\"design:type\", gridApi_1.GridApi)\n ], DragService.prototype, \"gridApi\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], DragService.prototype, \"init\", null);\n __decorate([\n context_1.PreDestroy,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], DragService.prototype, \"destroy\", null);\n DragService = __decorate([\n context_1.Bean('dragService')\n ], DragService);\n return DragService;\n}());\nexports.DragService = DragService;\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 SideBarDefParser = /** @class */ (function () {\n function SideBarDefParser() {\n }\n SideBarDefParser.parse = function (toParse) {\n if (!toParse) {\n return null;\n }\n if (toParse === true) {\n return {\n toolPanels: [\n SideBarDefParser.DEFAULT_COLUMN_COMP,\n SideBarDefParser.DEFAULT_FILTER_COMP,\n ],\n defaultToolPanel: 'columns'\n };\n }\n if (typeof toParse === 'string') {\n return SideBarDefParser.parse([toParse]);\n }\n if (Array.isArray(toParse)) {\n var comps_1 = [];\n toParse.forEach(function (key) {\n var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[key];\n if (!lookupResult) {\n console.warn(\"ag-grid: the key \" + key + \" is not a valid key for specifying a tool panel, valid keys are: \" + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));\n return;\n }\n comps_1.push(lookupResult);\n });\n if (comps_1.length === 0) {\n return null;\n }\n return {\n toolPanels: comps_1,\n defaultToolPanel: comps_1[0].id\n };\n }\n var result = {\n toolPanels: SideBarDefParser.parseComponents(toParse.toolPanels),\n defaultToolPanel: toParse.defaultToolPanel,\n hiddenByDefault: toParse.hiddenByDefault\n };\n return result;\n };\n SideBarDefParser.parseComponents = function (from) {\n var result = [];\n from.forEach(function (it) {\n var toAdd = null;\n if (typeof it === 'string') {\n var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[it];\n if (!lookupResult) {\n console.warn(\"ag-grid: the key \" + it + \" is not a valid key for specifying a tool panel, valid keys are: \" + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));\n return;\n }\n toAdd = lookupResult;\n }\n else {\n toAdd = it;\n }\n result.push(toAdd);\n });\n return result;\n };\n SideBarDefParser.DEFAULT_COLUMN_COMP = {\n id: 'columns',\n labelDefault: 'Columns',\n labelKey: 'columns',\n iconKey: 'columns',\n toolPanel: 'agColumnsToolPanel',\n };\n SideBarDefParser.DEFAULT_FILTER_COMP = {\n id: 'filters',\n labelDefault: 'Filters',\n labelKey: 'filters',\n iconKey: 'filter',\n toolPanel: 'agFiltersToolPanel',\n };\n SideBarDefParser.DEFAULT_BY_KEY = {\n columns: SideBarDefParser.DEFAULT_COLUMN_COMP,\n filters: SideBarDefParser.DEFAULT_FILTER_COMP\n };\n return SideBarDefParser;\n}());\nexports.SideBarDefParser = SideBarDefParser;\n"],"sourceRoot":""}