@ag-grid-community/client-side-row-model
Advanced tools
Comparing version 31.3.2 to 32.0.0
@@ -1,8 +0,8 @@ | ||
- [Question or Problem?](#question) | ||
- [Issues and Bugs](#issue) | ||
- [Feature Requests](#feature) | ||
- [Submission Guidelines](#submit) | ||
- [Coding Rules](#rules) | ||
- [Commit Message Guidelines](#commit) | ||
- [Signing the CLA](#cla) | ||
- [Question or Problem?](#question) | ||
- [Issues and Bugs](#issue) | ||
- [Feature Requests](#feature) | ||
- [Submission Guidelines](#submit) | ||
- [Coding Rules](#rules) | ||
- [Commit Message Guidelines](#commit) | ||
- [Signing the CLA](#cla) | ||
@@ -18,2 +18,3 @@ ## <a name="question"></a> Got a Question or Problem? | ||
## <a name="issue"></a> Found a Bug? | ||
If you find a bug in the source code, you can help us by | ||
@@ -23,3 +24,4 @@ [submitting an issue](#submit-issue) to our [GitHub Repository][github]. | ||
## <a name="feature"></a> Missing a Feature? | ||
You can *request* a new feature by [submitting an issue](#submit-issue) to our GitHub | ||
You can _request_ a new feature by [submitting an issue](#submit-issue) to our GitHub | ||
Repository. | ||
@@ -35,5 +37,5 @@ | ||
- version of AG Grid used | ||
- 3rd-party libraries and their versions | ||
- and most importantly - a use-case that fails | ||
- version of AG Grid used | ||
- 3rd-party libraries and their versions | ||
- and most importantly - a use-case that fails | ||
@@ -50,3 +52,2 @@ A minimal reproduce scenario using http://plnkr.co/ allows us to quickly confirm a bug (or point out coding problem) as well as confirm that we are fixing the right problem. If plunker is not a suitable way to demonstrate the problem (for example for issues related to our npm packaging), please create a standalone git repository demonstrating the problem. | ||
[github]: https://github.com/ag-grid/ag-grid | ||
@@ -57,2 +58,1 @@ [jsfiddle]: http://jsfiddle.net | ||
[stackoverflow]: http://stackoverflow.com/questions/tagged/ag-grid | ||
@@ -1,1 +0,1 @@ | ||
var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(t,e)=>{for(var o in e)__defProp(t,o,{get:e[o],enumerable:!0})},__copyProps=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of __getOwnPropNames(e))!__hasOwnProp.call(t,s)&&s!==o&&__defProp(t,s,{get:()=>e[s],enumerable:!(i=__getOwnPropDesc(e,s))||i.enumerable});return t},__toCommonJS=t=>__copyProps(__defProp({},"__esModule",{value:!0}),t),__decorateClass=(t,e,o,i)=>{for(var s=i>1?void 0:i?__getOwnPropDesc(e,o):e,r=t.length-1,n;r>=0;r--)(n=t[r])&&(s=(i?n(e,o,s):n(s))||s);return i&&s&&__defProp(e,o,s),s},main_exports={};__export(main_exports,{ClientSideRowModelModule:()=>ClientSideRowModelModule}),module.exports=__toCommonJS(main_exports);var import_core9=require("@ag-grid-community/core"),import_core2=require("@ag-grid-community/core"),import_core=require("@ag-grid-community/core"),_ClientSideNodeManager=class w{constructor(e,o,i,s,r,n){this.nextId=0,this.rowCountReady=!1,this.allNodesMap={},this.rootNode=e,this.gos=o,this.eventService=i,this.columnModel=s,this.beans=n,this.selectionService=r,this.rootNode.group=!0,this.rootNode.level=-1,this.rootNode.id=w.ROOT_NODE_ID,this.rootNode.allLeafChildren=[],this.rootNode.childrenAfterGroup=[],this.rootNode.childrenAfterSort=[],this.rootNode.childrenAfterAggFilter=[],this.rootNode.childrenAfterFilter=[]}getCopyOfNodesMap(){return import_core._.cloneObject(this.allNodesMap)}getRowNode(e){return this.allNodesMap[e]}setRowData(e){if(typeof e=="string"){console.warn("AG Grid: rowData must be an array.");return}this.rowCountReady=!0,this.dispatchRowDataUpdateStartedEvent(e);const o=this.rootNode,i=this.rootNode.sibling;o.childrenAfterFilter=null,o.childrenAfterGroup=null,o.childrenAfterAggFilter=null,o.childrenAfterSort=null,o.childrenMapped=null,o.updateHasChildren(),this.nextId=0,this.allNodesMap={},e?o.allLeafChildren=e.map(s=>this.createNode(s,this.rootNode,w.TOP_LEVEL)):(o.allLeafChildren=[],o.childrenAfterGroup=[]),i&&(i.childrenAfterFilter=o.childrenAfterFilter,i.childrenAfterGroup=o.childrenAfterGroup,i.childrenAfterAggFilter=o.childrenAfterAggFilter,i.childrenAfterSort=o.childrenAfterSort,i.childrenMapped=o.childrenMapped,i.allLeafChildren=o.allLeafChildren)}updateRowData(e,o){this.rowCountReady=!0,this.dispatchRowDataUpdateStartedEvent(e.add);const i={remove:[],update:[],add:[]},s=[];return this.executeRemove(e,i,s),this.executeUpdate(e,i,s),this.executeAdd(e,i),this.updateSelection(s,"rowDataChanged"),o&&import_core._.sortRowNodesByOrder(this.rootNode.allLeafChildren,o),i}isRowCountReady(){return this.rowCountReady}dispatchRowDataUpdateStartedEvent(e){const o={type:import_core.Events.EVENT_ROW_DATA_UPDATE_STARTED,firstRowData:e?.length?e[0]:null};this.eventService.dispatchEvent(o)}updateSelection(e,o){const i=e.length>0;if(i&&this.selectionService.setNodesSelected({newValue:!1,nodes:e,suppressFinishActions:!0,source:o}),this.selectionService.updateGroupsFromChildrenSelections(o),i){const s={type:import_core.Events.EVENT_SELECTION_CHANGED,source:o};this.eventService.dispatchEvent(s)}}executeAdd(e,o){var i;const{add:s,addIndex:r}=e;if(import_core._.missingOrEmpty(s))return;const n=s.map(a=>this.createNode(a,this.rootNode,w.TOP_LEVEL));if(typeof r=="number"&&r>=0){const{allLeafChildren:a}=this.rootNode,d=a.length;let l=r;if(this.gos.get("treeData")&&r>0&&d>0){for(let p=0;p<d;p++)if(((i=a[p])==null?void 0:i.rowIndex)==r-1){l=p+1;break}}const c=a.slice(0,l),h=a.slice(l,a.length);this.rootNode.allLeafChildren=[...c,...n,...h]}else this.rootNode.allLeafChildren=[...this.rootNode.allLeafChildren,...n];this.rootNode.sibling&&(this.rootNode.sibling.allLeafChildren=this.rootNode.allLeafChildren),o.add=n}executeRemove(e,o,i){const{remove:s}=e;if(import_core._.missingOrEmpty(s))return;const r={};s.forEach(n=>{const a=this.lookupRowNode(n);a&&(a.isSelected()&&i.push(a),a.clearRowTopAndRowIndex(),r[a.id]=!0,delete this.allNodesMap[a.id],o.remove.push(a))}),this.rootNode.allLeafChildren=this.rootNode.allLeafChildren.filter(n=>!r[n.id]),this.rootNode.sibling&&(this.rootNode.sibling.allLeafChildren=this.rootNode.allLeafChildren)}executeUpdate(e,o,i){const{update:s}=e;import_core._.missingOrEmpty(s)||s.forEach(r=>{const n=this.lookupRowNode(r);n&&(n.updateData(r),!n.selectable&&n.isSelected()&&i.push(n),this.setMasterForRow(n,r,w.TOP_LEVEL,!1),o.update.push(n))})}lookupRowNode(e){const o=this.gos.getCallback("getRowId");let i;if(o){const s=o({data:e,level:0});if(i=this.allNodesMap[s],!i)return console.error(`AG Grid: could not find row id=${s}, data item was not found for this id`),null}else if(i=this.rootNode.allLeafChildren.find(s=>s.data===e),!i)return console.error("AG Grid: could not find data item as object was not found",e),console.error("Consider using getRowId to help the Grid find matching row data"),null;return i||null}createNode(e,o,i){const s=new import_core.RowNode(this.beans);s.group=!1,this.setMasterForRow(s,e,i,!0);const r=this.gos.get("suppressParentsInRowNodes");return o&&!r&&(s.parent=o),s.level=i,s.setDataAndId(e,this.nextId.toString()),this.allNodesMap[s.id]&&console.warn(`AG Grid: duplicate node id '${s.id}' detected from getRowId callback, this could cause issues in your grid.`),this.allNodesMap[s.id]=s,this.nextId++,s}setMasterForRow(e,o,i,s){if(this.gos.get("treeData"))e.setMaster(!1),s&&(e.expanded=!1);else{if(this.gos.get("masterDetail")){const a=this.gos.get("isRowMaster");a?e.setMaster(a(o)):e.setMaster(!0)}else e.setMaster(!1);if(s){const a=this.columnModel.getRowGroupColumns(),d=a?a.length:0,l=i+d;e.expanded=e.master?this.isExpanded(l):!1}}}isExpanded(e){const o=this.gos.get("groupDefaultExpanded");return o===-1?!0:e<o}};_ClientSideNodeManager.TOP_LEVEL=0,_ClientSideNodeManager.ROOT_NODE_ID="ROOT_NODE_ID";var ClientSideNodeManager=_ClientSideNodeManager,ClientSideRowModel=class extends import_core2.BeanStub{constructor(){super(...arguments),this.onRowHeightChanged_debounced=import_core2._.debounce(this.onRowHeightChanged.bind(this),100),this.rowsToDisplay=[],this.hasStarted=!1,this.shouldSkipSettingDataOnStart=!1,this.isRefreshingModel=!1,this.rowCountReady=!1}init(){const t=this.refreshModel.bind(this,{step:import_core2.ClientSideRowModelSteps.EVERYTHING}),e=!this.gos.get("suppressAnimationFrame"),o=this.refreshModel.bind(this,{step:import_core2.ClientSideRowModelSteps.EVERYTHING,afterColumnsChanged:!0,keepRenderedRows:!0,animate:e});this.addManagedListener(this.eventService,import_core2.Events.EVENT_NEW_COLUMNS_LOADED,o),this.addManagedListener(this.eventService,import_core2.Events.EVENT_COLUMN_ROW_GROUP_CHANGED,t),this.addManagedListener(this.eventService,import_core2.Events.EVENT_COLUMN_VALUE_CHANGED,this.onValueChanged.bind(this)),this.addManagedListener(this.eventService,import_core2.Events.EVENT_COLUMN_PIVOT_CHANGED,this.refreshModel.bind(this,{step:import_core2.ClientSideRowModelSteps.PIVOT})),this.addManagedListener(this.eventService,import_core2.Events.EVENT_FILTER_CHANGED,this.onFilterChanged.bind(this)),this.addManagedListener(this.eventService,import_core2.Events.EVENT_SORT_CHANGED,this.onSortChanged.bind(this)),this.addManagedListener(this.eventService,import_core2.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED,t),this.addManagedListener(this.eventService,import_core2.Events.EVENT_GRID_STYLES_CHANGED,this.onGridStylesChanges.bind(this)),this.addManagedListener(this.eventService,import_core2.Events.EVENT_GRID_READY,()=>this.onGridReady()),this.addPropertyListeners(),this.rootNode=new import_core2.RowNode(this.beans),this.nodeManager=new ClientSideNodeManager(this.rootNode,this.gos,this.eventService,this.columnModel,this.selectionService,this.beans)}addPropertyListeners(){const t=new Set(["treeData","masterDetail"]),e=new Set(["suppressParentsInRowNodes","groupDefaultExpanded","groupAllowUnbalanced","initialGroupOrderComparator","groupHideOpenParents","groupDisplayType"]),o=new Set(["excludeChildrenWhenTreeDataFiltering"]),i=new Set(["removePivotHeaderRowWhenSingleValueColumn","pivotRowTotals","pivotColumnGroupTotals","suppressExpandablePivotGroups"]),s=new Set(["getGroupRowAgg","alwaysAggregateAtRootLevel","groupIncludeTotalFooter","suppressAggFilteredOnly","grandTotalRow"]),r=new Set(["postSortRows","groupDisplayType","accentedSort"]),n=new Set([]),a=new Set(["groupRemoveSingleChildren","groupRemoveLowestSingleChildren","groupIncludeFooter","groupTotalRow"]),d=[...t,...e,...o,...i,...i,...s,...r,...n,...a];this.addManagedPropertyListeners(d,l=>{var u;const c=(u=l.changeSet)==null?void 0:u.properties;if(!c)return;const h=p=>c.some(g=>p.has(g));if(h(t)){this.setRowData(this.rootNode.allLeafChildren.map(p=>p.data));return}if(h(e)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.EVERYTHING});return}if(h(o)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.FILTER});return}if(h(i)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.PIVOT});return}if(h(s)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.AGGREGATE});return}if(h(r)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.SORT});return}if(h(n)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.FILTER_AGGREGATES});return}h(a)&&this.refreshModel({step:import_core2.ClientSideRowModelSteps.MAP})}),this.addManagedPropertyListener("rowHeight",()=>this.resetRowHeights())}start(){this.hasStarted=!0,this.shouldSkipSettingDataOnStart?this.dispatchUpdateEventsAndRefresh():this.setInitialData()}setInitialData(){const t=this.gos.get("rowData");t&&(this.shouldSkipSettingDataOnStart=!0,this.setRowData(t))}ensureRowHeightsValid(t,e,o,i){let s,r=!1;do{s=!1;const n=this.getRowIndexAtPixel(t),a=this.getRowIndexAtPixel(e),d=Math.max(n,o),l=Math.min(a,i);for(let u=d;u<=l;u++){const c=this.getRow(u);if(c.rowHeightEstimated){const h=this.gos.getRowHeightForNode(c);c.setRowHeight(h.height),s=!0,r=!0}}s&&this.setRowTopAndRowIndex()}while(s);return r}setRowTopAndRowIndex(){const t=this.environment.getDefaultRowHeight();let e=0;const o=new Set,i=this.gos.isDomLayout("normal");for(let s=0;s<this.rowsToDisplay.length;s++){const r=this.rowsToDisplay[s];if(r.id!=null&&o.add(r.id),r.rowHeight==null){const n=this.gos.getRowHeightForNode(r,i,t);r.setRowHeight(n.height,n.estimated)}r.setRowTop(e),r.setRowIndex(s),e+=r.rowHeight}return o}clearRowTopAndRowIndex(t,e){const o=t.isActive(),i=r=>{r&&r.id!=null&&!e.has(r.id)&&r.clearRowTopAndRowIndex()},s=r=>{if(i(r),i(r.detailNode),i(r.sibling),r.hasChildren()&&r.childrenAfterGroup){const n=r.level==-1;o&&!n&&!r.expanded||r.childrenAfterGroup.forEach(s)}};s(this.rootNode)}ensureRowsAtPixel(t,e,o=0){const i=this.getRowIndexAtPixel(e),s=this.getRow(i),r=!this.gos.get("suppressAnimationFrame");return s===t[0]?!1:(t.forEach(n=>{import_core2._.removeFromArray(this.rootNode.allLeafChildren,n)}),t.forEach((n,a)=>{import_core2._.insertIntoArray(this.rootNode.allLeafChildren,n,Math.max(i+o,0)+a)}),this.refreshModel({step:import_core2.ClientSideRowModelSteps.EVERYTHING,keepRenderedRows:!0,keepEditingRows:!0,animate:r}),!0)}highlightRowAtPixel(t,e){const o=e!=null?this.getRowIndexAtPixel(e):null,i=o!=null?this.getRow(o):null;if(!i||!t||i===t||e==null){this.lastHighlightedRow&&(this.lastHighlightedRow.setHighlighted(null),this.lastHighlightedRow=null);return}const s=this.getHighlightPosition(e,i);this.lastHighlightedRow&&this.lastHighlightedRow!==i&&(this.lastHighlightedRow.setHighlighted(null),this.lastHighlightedRow=null),i.setHighlighted(s),this.lastHighlightedRow=i}getHighlightPosition(t,e){if(!e){const s=this.getRowIndexAtPixel(t);if(e=this.getRow(s||0),!e)return import_core2.RowHighlightPosition.Below}const{rowTop:o,rowHeight:i}=e;return t-o<i/2?import_core2.RowHighlightPosition.Above:import_core2.RowHighlightPosition.Below}getLastHighlightedRowNode(){return this.lastHighlightedRow}isLastRowIndexKnown(){return!0}getRowCount(){return this.rowsToDisplay?this.rowsToDisplay.length:0}getTopLevelRowCount(){if(this.rowsToDisplay&&this.rowsToDisplay[0]===this.rootNode)return 1;const e=this.rootNode.childrenAfterAggFilter;return e?e.length:0}getTopLevelRowDisplayedIndex(t){if(this.rowsToDisplay&&this.rowsToDisplay[0]===this.rootNode)return t;let o=this.rootNode.childrenAfterSort[t];if(this.gos.get("groupHideOpenParents"))for(;o.expanded&&o.childrenAfterSort&&o.childrenAfterSort.length>0;)o=o.childrenAfterSort[0];return o.rowIndex}getRowBounds(t){if(import_core2._.missing(this.rowsToDisplay))return null;const e=this.rowsToDisplay[t];return e?{rowTop:e.rowTop,rowHeight:e.rowHeight}:null}onRowGroupOpened(){const t=this.gos.isAnimateRows();this.refreshModel({step:import_core2.ClientSideRowModelSteps.MAP,keepRenderedRows:!0,animate:t})}onFilterChanged(t){if(t.afterDataChange)return;const e=this.gos.isAnimateRows(),i=t.columns.length===0||t.columns.some(s=>s.isPrimary())?import_core2.ClientSideRowModelSteps.FILTER:import_core2.ClientSideRowModelSteps.FILTER_AGGREGATES;this.refreshModel({step:i,keepRenderedRows:!0,animate:e})}onSortChanged(){const t=this.gos.isAnimateRows();this.refreshModel({step:import_core2.ClientSideRowModelSteps.SORT,keepRenderedRows:!0,animate:t,keepEditingRows:!0})}getType(){return"clientSide"}onValueChanged(){this.columnModel.isPivotActive()?this.refreshModel({step:import_core2.ClientSideRowModelSteps.PIVOT}):this.refreshModel({step:import_core2.ClientSideRowModelSteps.AGGREGATE})}createChangePath(t){const e=import_core2._.missingOrEmpty(t),o=new import_core2.ChangedPath(!1,this.rootNode);return(e||this.gos.get("treeData"))&&o.setInactive(),o}isSuppressModelUpdateAfterUpdateTransaction(t){if(!this.gos.get("suppressModelUpdateAfterUpdateTransaction")||t.rowNodeTransactions==null)return!1;const e=t.rowNodeTransactions.filter(i=>i.add!=null&&i.add.length>0||i.remove!=null&&i.remove.length>0);return e==null||e.length==0}buildRefreshModelParams(t){let e=import_core2.ClientSideRowModelSteps.EVERYTHING;const o={everything:import_core2.ClientSideRowModelSteps.EVERYTHING,group:import_core2.ClientSideRowModelSteps.EVERYTHING,filter:import_core2.ClientSideRowModelSteps.FILTER,map:import_core2.ClientSideRowModelSteps.MAP,aggregate:import_core2.ClientSideRowModelSteps.AGGREGATE,sort:import_core2.ClientSideRowModelSteps.SORT,pivot:import_core2.ClientSideRowModelSteps.PIVOT};if(import_core2._.exists(t)&&(e=o[t]),import_core2._.missing(e)){console.error(`AG Grid: invalid step ${t}, available steps are ${Object.keys(o).join(", ")}`);return}const i=!this.gos.get("suppressAnimationFrame");return{step:e,keepRenderedRows:!0,keepEditingRows:!0,animate:i}}refreshModel(t){if(!this.hasStarted||this.isRefreshingModel||this.columnModel.shouldRowModelIgnoreRefresh())return;let e=typeof t=="object"&&"step"in t?t:this.buildRefreshModelParams(t);if(!e||this.isSuppressModelUpdateAfterUpdateTransaction(e))return;const o=this.createChangePath(e.rowNodeTransactions);switch(this.isRefreshingModel=!0,e.step){case import_core2.ClientSideRowModelSteps.EVERYTHING:this.doRowGrouping(e.rowNodeTransactions,e.rowNodeOrder,o,!!e.afterColumnsChanged);case import_core2.ClientSideRowModelSteps.FILTER:this.doFilter(o);case import_core2.ClientSideRowModelSteps.PIVOT:this.doPivot(o);case import_core2.ClientSideRowModelSteps.AGGREGATE:this.doAggregate(o);case import_core2.ClientSideRowModelSteps.FILTER_AGGREGATES:this.doFilterAggregates(o);case import_core2.ClientSideRowModelSteps.SORT:this.doSort(e.rowNodeTransactions,o);case import_core2.ClientSideRowModelSteps.MAP:this.doRowsToDisplay()}const i=this.setRowTopAndRowIndex();this.clearRowTopAndRowIndex(o,i),this.isRefreshingModel=!1;const s={type:import_core2.Events.EVENT_MODEL_UPDATED,animate:e.animate,keepRenderedRows:e.keepRenderedRows,newData:e.newData,newPage:!1,keepUndoRedoStack:e.keepUndoRedoStack};this.eventService.dispatchEvent(s)}isEmpty(){const t=import_core2._.missing(this.rootNode.allLeafChildren)||this.rootNode.allLeafChildren.length===0;return import_core2._.missing(this.rootNode)||t||!this.columnModel.isReady()}isRowsToRender(){return import_core2._.exists(this.rowsToDisplay)&&this.rowsToDisplay.length>0}getNodesInRangeForSelection(t,e){let o=!e,i=!1;const s=[],r=this.gos.get("groupSelectsChildren");return this.forEachNodeAfterFilterAndSort(n=>{if(i)return;if(o&&(n===e||n===t)&&(i=!0,n.group&&r)){s.push(...n.allLeafChildren);return}if(!o){if(n!==e&&n!==t)return;o=!0}if(!n.group||!r){s.push(n);return}}),s}setDatasource(t){console.error("AG Grid: should never call setDatasource on clientSideRowController")}getTopLevelNodes(){return this.rootNode?this.rootNode.childrenAfterGroup:null}getRootNode(){return this.rootNode}getRow(t){return this.rowsToDisplay[t]}isRowPresent(t){return this.rowsToDisplay.indexOf(t)>=0}getRowIndexAtPixel(t){if(this.isEmpty()||this.rowsToDisplay.length===0)return-1;let e=0,o=this.rowsToDisplay.length-1;if(t<=0)return 0;if(import_core2._.last(this.rowsToDisplay).rowTop<=t)return this.rowsToDisplay.length-1;let s=-1,r=-1;for(;;){const n=Math.floor((e+o)/2),a=this.rowsToDisplay[n];if(this.isRowInPixel(a,t)||(a.rowTop<t?e=n+1:a.rowTop>t&&(o=n-1),s===e&&r===o))return n;s=e,r=o}}isRowInPixel(t,e){const o=t.rowTop,i=t.rowTop+t.rowHeight;return o<=e&&i>e}forEachLeafNode(t){this.rootNode.allLeafChildren&&this.rootNode.allLeafChildren.forEach((e,o)=>t(e,o))}forEachNode(t,e=!1){this.recursivelyWalkNodesAndCallback({nodes:[...this.rootNode.childrenAfterGroup||[]],callback:t,recursionType:0,index:0,includeFooterNodes:e})}forEachNodeAfterFilter(t,e=!1){this.recursivelyWalkNodesAndCallback({nodes:[...this.rootNode.childrenAfterAggFilter||[]],callback:t,recursionType:1,index:0,includeFooterNodes:e})}forEachNodeAfterFilterAndSort(t,e=!1){this.recursivelyWalkNodesAndCallback({nodes:[...this.rootNode.childrenAfterSort||[]],callback:t,recursionType:2,index:0,includeFooterNodes:e})}forEachPivotNode(t,e=!1){this.recursivelyWalkNodesAndCallback({nodes:[this.rootNode],callback:t,recursionType:3,index:0,includeFooterNodes:e})}recursivelyWalkNodesAndCallback(t){const{nodes:e,callback:o,recursionType:i,includeFooterNodes:s}=t;let{index:r}=t;const n=a=>{var d;const l=(d=e[0])==null?void 0:d.parent;if(!l)return;const u=s&&this.gos.getGrandTotalRow(),c=this.gos.getGroupTotalRowCallback(),h=s&&c({node:l});if(l===this.rootNode){u===a&&(l.createFooter(),o(l.sibling,r++));return}h===a&&(l.createFooter(),o(l.sibling,r++))};n("top");for(let a=0;a<e.length;a++){const d=e[a];if(o(d,r++),d.hasChildren()&&!d.footer){let l=null;switch(i){case 0:l=d.childrenAfterGroup;break;case 1:l=d.childrenAfterAggFilter;break;case 2:l=d.childrenAfterSort;break;case 3:l=d.leafGroup?null:d.childrenAfterSort;break}l&&(r=this.recursivelyWalkNodesAndCallback({nodes:[...l],callback:o,recursionType:i,index:r,includeFooterNodes:s}))}}return n("bottom"),r}doAggregate(t){var e;(e=this.aggregationStage)==null||e.execute({rowNode:this.rootNode,changedPath:t})}doFilterAggregates(t){this.filterAggregatesStage?this.filterAggregatesStage.execute({rowNode:this.rootNode,changedPath:t}):this.rootNode.childrenAfterAggFilter=this.rootNode.childrenAfterFilter}expandOrCollapseAll(t){const e=this.gos.get("treeData"),o=this.columnModel.isPivotActive(),i=n=>{n&&n.forEach(a=>{const d=()=>{a.expanded=t,i(a.childrenAfterGroup)};if(e){import_core2._.exists(a.childrenAfterGroup)&&d();return}if(o){!a.leafGroup&&d();return}a.group&&d()})};this.rootNode&&i(this.rootNode.childrenAfterGroup),this.refreshModel({step:import_core2.ClientSideRowModelSteps.MAP});const s=t?"expandAll":"collapseAll",r={type:import_core2.Events.EVENT_EXPAND_COLLAPSE_ALL,source:s};this.eventService.dispatchEvent(r)}doSort(t,e){this.sortStage.execute({rowNode:this.rootNode,rowNodeTransactions:t,changedPath:e})}doRowGrouping(t,e,o,i){if(this.groupStage){if(t?this.groupStage.execute({rowNode:this.rootNode,rowNodeTransactions:t,rowNodeOrder:e,changedPath:o}):this.groupStage.execute({rowNode:this.rootNode,changedPath:o,afterColumnsChanged:i}),this.gos.get("groupSelectsChildren")&&this.selectionService.updateGroupsFromChildrenSelections("rowGroupChanged",o)){const r={type:import_core2.Events.EVENT_SELECTION_CHANGED,source:"rowGroupChanged"};this.eventService.dispatchEvent(r)}}else this.rootNode.childrenAfterGroup=this.rootNode.allLeafChildren,this.rootNode.sibling&&(this.rootNode.sibling.childrenAfterGroup=this.rootNode.childrenAfterGroup),this.rootNode.updateHasChildren();this.nodeManager.isRowCountReady()&&(this.rowCountReady=!0,this.eventService.dispatchEventOnce({type:import_core2.Events.EVENT_ROW_COUNT_READY}))}doFilter(t){this.filterStage.execute({rowNode:this.rootNode,changedPath:t})}doPivot(t){var e;(e=this.pivotStage)==null||e.execute({rowNode:this.rootNode,changedPath:t})}getCopyOfNodesMap(){return this.nodeManager.getCopyOfNodesMap()}getRowNode(t){if(typeof t=="string"&&t.indexOf(import_core2.RowNode.ID_PREFIX_ROW_GROUP)==0){let o;return this.forEachNode(i=>{i.id===t&&(o=i)}),o}return this.nodeManager.getRowNode(t)}setRowData(t){this.selectionService.reset("rowDataChanged"),this.nodeManager.setRowData(t),this.hasStarted&&this.dispatchUpdateEventsAndRefresh()}dispatchUpdateEventsAndRefresh(){const t={type:import_core2.Events.EVENT_ROW_DATA_UPDATED};this.eventService.dispatchEvent(t),this.refreshModel({step:import_core2.ClientSideRowModelSteps.EVERYTHING,newData:!0})}batchUpdateRowData(t,e){if(this.applyAsyncTransactionsTimeout==null){this.rowDataTransactionBatch=[];const o=this.gos.getAsyncTransactionWaitMillis();this.applyAsyncTransactionsTimeout=window.setTimeout(()=>{this.executeBatchUpdateRowData()},o)}this.rowDataTransactionBatch.push({rowDataTransaction:t,callback:e})}flushAsyncTransactions(){this.applyAsyncTransactionsTimeout!=null&&(clearTimeout(this.applyAsyncTransactionsTimeout),this.executeBatchUpdateRowData())}executeBatchUpdateRowData(){this.valueCache.onDataChanged();const t=[],e=[];let o=!1;if(this.rowDataTransactionBatch&&this.rowDataTransactionBatch.forEach(i=>{const s=this.nodeManager.updateRowData(i.rowDataTransaction,void 0);e.push(s),i.callback&&t.push(i.callback.bind(null,s)),typeof i.rowDataTransaction.addIndex=="number"&&(o=!0)}),this.commonUpdateRowData(e,void 0,o),t.length>0&&window.setTimeout(()=>{t.forEach(i=>i())},0),e.length>0){const i={type:import_core2.Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED,results:e};this.eventService.dispatchEvent(i)}this.rowDataTransactionBatch=null,this.applyAsyncTransactionsTimeout=void 0}updateRowData(t,e){this.valueCache.onDataChanged();const o=this.nodeManager.updateRowData(t,e),i=typeof t.addIndex=="number";return this.commonUpdateRowData([o],e,i),o}createRowNodeOrder(){if(this.gos.get("suppressMaintainUnsortedOrder"))return;const e={};if(this.rootNode&&this.rootNode.allLeafChildren)for(let o=0;o<this.rootNode.allLeafChildren.length;o++){const i=this.rootNode.allLeafChildren[o];e[i.id]=o}return e}commonUpdateRowData(t,e,o){if(!this.hasStarted)return;const i=!this.gos.get("suppressAnimationFrame");o&&(e=this.createRowNodeOrder());const s={type:import_core2.Events.EVENT_ROW_DATA_UPDATED};this.eventService.dispatchEvent(s),this.refreshModel({step:import_core2.ClientSideRowModelSteps.EVERYTHING,rowNodeTransactions:t,rowNodeOrder:e,keepRenderedRows:!0,keepEditingRows:!0,animate:i})}doRowsToDisplay(){this.rowsToDisplay=this.flattenStage.execute({rowNode:this.rootNode})}onRowHeightChanged(){this.refreshModel({step:import_core2.ClientSideRowModelSteps.MAP,keepRenderedRows:!0,keepEditingRows:!0,keepUndoRedoStack:!0})}onRowHeightChangedDebounced(){this.onRowHeightChanged_debounced()}resetRowHeights(){const t=this.resetRowHeightsForAllRowNodes();this.rootNode.setRowHeight(this.rootNode.rowHeight,!0),this.rootNode.sibling&&this.rootNode.sibling.setRowHeight(this.rootNode.sibling.rowHeight,!0),t&&this.onRowHeightChanged()}resetRowHeightsForAllRowNodes(){let t=!1;return this.forEachNode(e=>{e.setRowHeight(e.rowHeight,!0);const o=e.detailNode;o&&o.setRowHeight(o.rowHeight,!0),e.sibling&&e.sibling.setRowHeight(e.sibling.rowHeight,!0),t=!0}),t}onGridStylesChanges(){this.columnModel.isAutoRowHeightActive()||this.resetRowHeights()}onGridReady(){this.hasStarted||this.setInitialData()}isRowDataLoaded(){return this.rowCountReady}};__decorateClass([(0,import_core2.Autowired)("columnModel")],ClientSideRowModel.prototype,"columnModel",2),__decorateClass([(0,import_core2.Autowired)("selectionService")],ClientSideRowModel.prototype,"selectionService",2),__decorateClass([(0,import_core2.Autowired)("valueCache")],ClientSideRowModel.prototype,"valueCache",2),__decorateClass([(0,import_core2.Autowired)("beans")],ClientSideRowModel.prototype,"beans",2),__decorateClass([(0,import_core2.Autowired)("filterStage")],ClientSideRowModel.prototype,"filterStage",2),__decorateClass([(0,import_core2.Autowired)("sortStage")],ClientSideRowModel.prototype,"sortStage",2),__decorateClass([(0,import_core2.Autowired)("flattenStage")],ClientSideRowModel.prototype,"flattenStage",2),__decorateClass([(0,import_core2.Optional)("groupStage")],ClientSideRowModel.prototype,"groupStage",2),__decorateClass([(0,import_core2.Optional)("aggregationStage")],ClientSideRowModel.prototype,"aggregationStage",2),__decorateClass([(0,import_core2.Optional)("pivotStage")],ClientSideRowModel.prototype,"pivotStage",2),__decorateClass([(0,import_core2.Optional)("filterAggregatesStage")],ClientSideRowModel.prototype,"filterAggregatesStage",2),__decorateClass([import_core2.PostConstruct],ClientSideRowModel.prototype,"init",1),ClientSideRowModel=__decorateClass([(0,import_core2.Bean)("rowModel")],ClientSideRowModel);var import_core3=require("@ag-grid-community/core"),FilterStage=class extends import_core3.BeanStub{execute(t){const{changedPath:e}=t;this.filterService.filter(e)}};__decorateClass([(0,import_core3.Autowired)("filterService")],FilterStage.prototype,"filterService",2),FilterStage=__decorateClass([(0,import_core3.Bean)("filterStage")],FilterStage);var import_core4=require("@ag-grid-community/core"),SortStage=class extends import_core4.BeanStub{execute(t){const e=this.sortController.getSortOptions(),o=import_core4._.exists(e)&&e.length>0,i=o&&import_core4._.exists(t.rowNodeTransactions)&&this.gos.get("deltaSort"),s=e.some(r=>this.gos.isColumnsSortingCoupledToGroup()?r.column.isPrimary()&&r.column.isRowGroupActive():!!r.column.getColDef().showRowGroup);this.sortService.sort(e,o,i,t.rowNodeTransactions,t.changedPath,s)}};__decorateClass([(0,import_core4.Autowired)("sortService")],SortStage.prototype,"sortService",2),__decorateClass([(0,import_core4.Autowired)("sortController")],SortStage.prototype,"sortController",2),SortStage=__decorateClass([(0,import_core4.Bean)("sortStage")],SortStage);var import_core5=require("@ag-grid-community/core"),FlattenStage=class extends import_core5.BeanStub{execute(t){const e=t.rowNode,o=[],i=this.beans.columnModel.isPivotMode(),s=i&&e.leafGroup,r=s?[e]:e.childrenAfterSort,n=this.getFlattenDetails();this.recursivelyAddToRowsToDisplay(n,r,o,i,0);const a=o.length>0;if(!s&&a&&n.grandTotalRow){e.createFooter();const l=n.grandTotalRow==="top";this.addRowNodeToRowsToDisplay(n,e.sibling,o,0,l)}return o}getFlattenDetails(){const t=this.gos.get("groupRemoveSingleChildren");return{groupRemoveLowestSingleChildren:!t&&this.gos.get("groupRemoveLowestSingleChildren"),groupRemoveSingleChildren:t,isGroupMultiAutoColumn:this.gos.isGroupMultiAutoColumn(),hideOpenParents:this.gos.get("groupHideOpenParents"),grandTotalRow:this.gos.getGrandTotalRow(),groupTotalRow:this.gos.getGroupTotalRowCallback()}}recursivelyAddToRowsToDisplay(t,e,o,i,s){if(!import_core5._.missingOrEmpty(e))for(let r=0;r<e.length;r++){const n=e[r],a=n.hasChildren(),d=i&&!a,l=t.groupRemoveSingleChildren&&a&&n.childrenAfterGroup.length===1,u=t.groupRemoveLowestSingleChildren&&a&&n.leafGroup&&n.childrenAfterGroup.length===1,c=i&&n.leafGroup,h=t.hideOpenParents&&n.expanded&&!n.master&&!c;if(!d&&!h&&!l&&!u&&this.addRowNodeToRowsToDisplay(t,n,o,s),!(i&&n.leafGroup)){if(a){const g=l||u;if(n.expanded||g){const R=t.groupTotalRow({node:n});R||n.destroyFooter();const f=g?s:s+1;R==="top"&&(n.createFooter(),this.addRowNodeToRowsToDisplay(t,n.sibling,o,f)),this.recursivelyAddToRowsToDisplay(t,n.childrenAfterSort,o,i,f),R==="bottom"&&(n.createFooter(),this.addRowNodeToRowsToDisplay(t,n.sibling,o,f))}}else if(n.master&&n.expanded){const g=this.createDetailNode(n);this.addRowNodeToRowsToDisplay(t,g,o,s)}}}}addRowNodeToRowsToDisplay(t,e,o,i,s){s?o.unshift(e):o.push(e),e.setUiLevel(t.isGroupMultiAutoColumn?0:i)}createDetailNode(t){if(import_core5._.exists(t.detailNode))return t.detailNode;const e=new import_core5.RowNode(this.beans);return e.detail=!0,e.selectable=!1,e.parent=t,import_core5._.exists(t.id)&&(e.id="detail_"+t.id),e.data=t.data,e.level=t.level+1,t.detailNode=e,e}};__decorateClass([(0,import_core5.Autowired)("beans")],FlattenStage.prototype,"beans",2),FlattenStage=__decorateClass([(0,import_core5.Bean)("flattenStage")],FlattenStage);var import_core6=require("@ag-grid-community/core"),SortService=class extends import_core6.BeanStub{sort(t,e,o,i,s,r){const n=this.gos.get("groupMaintainOrder"),a=this.columnModel.getAllGridColumns().some(h=>h.isRowGroupActive());let d={};o&&i&&(d=this.calculateDirtyNodes(i));const l=this.columnModel.isPivotMode(),u=this.gos.getCallback("postSortRows"),c=h=>{var p;this.pullDownGroupDataForHideOpenParents(h.childrenAfterAggFilter,!0);const g=l&&h.leafGroup;if(n&&a&&!h.leafGroup&&!r){const f=(p=this.columnModel.getRowGroupColumns())==null?void 0:p[h.level+1],E=f?.getSort()===null,C=h.childrenAfterAggFilter.slice(0);if(h.childrenAfterSort&&!E){const S={};h.childrenAfterSort.forEach((A,v)=>{S[A.id]=v}),C.sort((A,v)=>{var m,T;return((m=S[A.id])!=null?m:0)-((T=S[v.id])!=null?T:0)})}h.childrenAfterSort=C}else!e||g?h.childrenAfterSort=h.childrenAfterAggFilter.slice(0):o?h.childrenAfterSort=this.doDeltaSort(h,d,s,t):h.childrenAfterSort=this.rowNodeSorter.doFullSort(h.childrenAfterAggFilter,t);if(h.sibling&&(h.sibling.childrenAfterSort=h.childrenAfterSort),this.updateChildIndexes(h),u){const f={nodes:h.childrenAfterSort};u(f)}};s&&s.forEachChangedNodeDepthFirst(c),this.updateGroupDataForHideOpenParents(s)}calculateDirtyNodes(t){const e={},o=i=>{i&&i.forEach(s=>e[s.id]=!0)};return t&&t.forEach(i=>{o(i.add),o(i.update),o(i.remove)}),e}doDeltaSort(t,e,o,i){const s=t.childrenAfterAggFilter,r=t.childrenAfterSort;if(!r)return this.rowNodeSorter.doFullSort(s,i);const n={},a=[];s.forEach(c=>{e[c.id]||!o.canSkip(c)?a.push(c):n[c.id]=!0});const d=r.filter(c=>n[c.id]),l=(c,h)=>({currentPos:h,rowNode:c}),u=a.map(l).sort((c,h)=>this.rowNodeSorter.compareRowNodes(i,c,h));return this.mergeSortedArrays(i,u,d.map(l)).map(({rowNode:c})=>c)}mergeSortedArrays(t,e,o){const i=[];let s=0,r=0;for(;s<e.length&&r<o.length;)this.rowNodeSorter.compareRowNodes(t,e[s],o[r])<0?i.push(e[s++]):i.push(o[r++]);for(;s<e.length;)i.push(e[s++]);for(;r<o.length;)i.push(o[r++]);return i}updateChildIndexes(t){if(import_core6._.missing(t.childrenAfterSort))return;const e=t.childrenAfterSort;for(let o=0;o<e.length;o++){const i=e[o],s=o===0,r=o===t.childrenAfterSort.length-1;i.setFirstChild(s),i.setLastChild(r),i.setChildIndex(o)}}updateGroupDataForHideOpenParents(t){if(!this.gos.get("groupHideOpenParents"))return;if(this.gos.get("treeData"))return import_core6._.warnOnce("The property hideOpenParents dose not work with Tree Data. This is because Tree Data has values at the group level, it doesn't make sense to hide them."),!1;const e=o=>{this.pullDownGroupDataForHideOpenParents(o.childrenAfterSort,!1),o.childrenAfterSort.forEach(i=>{i.hasChildren()&&e(i)})};t&&t.executeFromRootNode(o=>e(o))}pullDownGroupDataForHideOpenParents(t,e){!this.gos.get("groupHideOpenParents")||import_core6._.missing(t)||t.forEach(o=>{this.columnModel.getGroupDisplayColumns().forEach(s=>{const r=s.getColDef().showRowGroup;if(typeof r!="string"){console.error("AG Grid: groupHideOpenParents only works when specifying specific columns for colDef.showRowGroup");return}const n=r,a=this.columnModel.getPrimaryColumn(n);if(a!==o.rowGroupColumn)if(e)o.setGroupValue(s.getId(),void 0);else{const l=o.getFirstChildOfFirstChild(a);l&&o.setGroupValue(s.getId(),l.key)}})})}};__decorateClass([(0,import_core6.Autowired)("columnModel")],SortService.prototype,"columnModel",2),__decorateClass([(0,import_core6.Autowired)("rowNodeSorter")],SortService.prototype,"rowNodeSorter",2),SortService=__decorateClass([(0,import_core6.Bean)("sortService")],SortService);var import_core7=require("@ag-grid-community/core"),FilterService=class extends import_core7.BeanStub{filter(t){const e=this.filterManager.isChildFilterPresent();this.filterNodes(e,t)}filterNodes(t,e){const o=(i,s)=>{i.hasChildren()&&t&&!s?i.childrenAfterFilter=i.childrenAfterGroup.filter(r=>{const n=r.childrenAfterFilter&&r.childrenAfterFilter.length>0,a=r.data&&this.filterManager.doesRowPassFilter({rowNode:r});return n||a}):i.childrenAfterFilter=i.childrenAfterGroup,i.sibling&&(i.sibling.childrenAfterFilter=i.childrenAfterFilter)};if(this.doingTreeDataFiltering()){const i=(r,n)=>{if(r.childrenAfterGroup)for(let a=0;a<r.childrenAfterGroup.length;a++){const d=r.childrenAfterGroup[a],l=n||this.filterManager.doesRowPassFilter({rowNode:d});d.childrenAfterGroup?i(r.childrenAfterGroup[a],l):o(d,l)}o(r,n)},s=r=>i(r,!1);e.executeFromRootNode(s)}else{const i=s=>o(s,!1);e.forEachChangedNodeDepthFirst(i,!0)}}doingTreeDataFiltering(){return this.gos.get("treeData")&&!this.gos.get("excludeChildrenWhenTreeDataFiltering")}};__decorateClass([(0,import_core7.Autowired)("filterManager")],FilterService.prototype,"filterManager",2),FilterService=__decorateClass([(0,import_core7.Bean)("filterService")],FilterService);var import_core8=require("@ag-grid-community/core"),ImmutableService=class extends import_core8.BeanStub{postConstruct(){this.rowModel.getType()==="clientSide"&&(this.clientSideRowModel=this.rowModel,this.addManagedPropertyListener("rowData",()=>this.onRowDataUpdated()))}isActive(){const t=this.gos.exists("getRowId");return this.gos.get("resetRowDataOnUpdate")?!1:t}setRowData(t){const e=this.createTransactionForRowData(t);if(!e)return;const[o,i]=e;this.clientSideRowModel.updateRowData(o,i)}createTransactionForRowData(t){if(import_core8._.missing(this.clientSideRowModel)){console.error("AG Grid: ImmutableService only works with ClientSideRowModel");return}const e=this.gos.getCallback("getRowId");if(e==null){console.error("AG Grid: ImmutableService requires getRowId() callback to be implemented, your row data needs IDs!");return}const o={remove:[],update:[],add:[]},i=this.clientSideRowModel.getCopyOfNodesMap(),r=this.gos.get("suppressMaintainUnsortedOrder")?void 0:{};return import_core8._.exists(t)&&t.forEach((n,a)=>{const d=e({data:n,level:0}),l=i[d];r&&(r[d]=a),l?(l.data!==n&&o.update.push(n),i[d]=void 0):o.add.push(n)}),import_core8._.iterateObject(i,(n,a)=>{a&&o.remove.push(a.data)}),[o,r]}onRowDataUpdated(){const t=this.gos.get("rowData");t&&(this.isActive()?this.setRowData(t):(this.selectionService.reset("rowDataChanged"),this.clientSideRowModel.setRowData(t)))}};__decorateClass([(0,import_core8.Autowired)("rowModel")],ImmutableService.prototype,"rowModel",2),__decorateClass([(0,import_core8.Autowired)("rowRenderer")],ImmutableService.prototype,"rowRenderer",2),__decorateClass([(0,import_core8.Autowired)("selectionService")],ImmutableService.prototype,"selectionService",2),__decorateClass([import_core8.PostConstruct],ImmutableService.prototype,"postConstruct",1),ImmutableService=__decorateClass([(0,import_core8.Bean)("immutableService")],ImmutableService);var VERSION="31.3.2",ClientSideRowModelModule={version:VERSION,moduleName:import_core9.ModuleNames.ClientSideRowModelModule,rowModel:"clientSide",beans:[ClientSideRowModel,FilterStage,SortStage,FlattenStage,SortService,FilterService,ImmutableService]}; | ||
var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var o in t)__defProp(e,o,{get:t[o],enumerable:!0})},__copyProps=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of __getOwnPropNames(t))!__hasOwnProp.call(e,r)&&r!==o&&__defProp(e,r,{get:()=>t[r],enumerable:!(i=__getOwnPropDesc(t,r))||i.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),main_exports={};__export(main_exports,{ClientSideRowModelModule:()=>ClientSideRowModelModule}),module.exports=__toCommonJS(main_exports);var import_core9=require("@ag-grid-community/core"),import_core2=require("@ag-grid-community/core"),import_core=require("@ag-grid-community/core"),ROOT_NODE_ID="ROOT_NODE_ID",TOP_LEVEL=0,ClientSideNodeManager=class{constructor(e,t,o,i,r,s){this.nextId=0,this.rowCountReady=!1,this.allNodesMap={},this.rootNode=e,this.gos=t,this.eventService=o,this.funcColsService=i,this.beans=s,this.selectionService=r,this.rootNode.group=!0,this.rootNode.level=-1,this.rootNode.id=ROOT_NODE_ID,this.rootNode.allLeafChildren=[],this.rootNode.childrenAfterGroup=[],this.rootNode.childrenAfterSort=[],this.rootNode.childrenAfterAggFilter=[],this.rootNode.childrenAfterFilter=[]}getCopyOfNodesMap(){return(0,import_core._cloneObject)(this.allNodesMap)}getRowNode(e){return this.allNodesMap[e]}setRowData(e){if(typeof e=="string"){(0,import_core._warnOnce)("rowData must be an array.");return}this.rowCountReady=!0,this.dispatchRowDataUpdateStartedEvent(e);const t=this.rootNode,o=this.rootNode.sibling;t.childrenAfterFilter=null,t.childrenAfterGroup=null,t.childrenAfterAggFilter=null,t.childrenAfterSort=null,t.childrenMapped=null,t.updateHasChildren(),this.nextId=0,this.allNodesMap={},e?t.allLeafChildren=e.map(i=>this.createNode(i,this.rootNode,TOP_LEVEL)):(t.allLeafChildren=[],t.childrenAfterGroup=[]),o&&(o.childrenAfterFilter=t.childrenAfterFilter,o.childrenAfterGroup=t.childrenAfterGroup,o.childrenAfterAggFilter=t.childrenAfterAggFilter,o.childrenAfterSort=t.childrenAfterSort,o.childrenMapped=t.childrenMapped,o.allLeafChildren=t.allLeafChildren)}updateRowData(e,t){this.rowCountReady=!0,this.dispatchRowDataUpdateStartedEvent(e.add);const o={remove:[],update:[],add:[]},i=[];return this.executeRemove(e,o,i),this.executeUpdate(e,o,i),this.executeAdd(e,o),this.updateSelection(i,"rowDataChanged"),t&&(0,import_core._sortRowNodesByOrder)(this.rootNode.allLeafChildren,t),o}isRowCountReady(){return this.rowCountReady}dispatchRowDataUpdateStartedEvent(e){const t={type:"rowDataUpdateStarted",firstRowData:e?.length?e[0]:null};this.eventService.dispatchEvent(t)}updateSelection(e,t){const o=e.length>0;if(o&&this.selectionService.setNodesSelected({newValue:!1,nodes:e,suppressFinishActions:!0,source:t}),this.selectionService.updateGroupsFromChildrenSelections(t),o){const i={type:"selectionChanged",source:t};this.eventService.dispatchEvent(i)}}executeAdd(e,t){const{add:o,addIndex:i}=e;if((0,import_core._missingOrEmpty)(o))return;const r=o.map(n=>this.createNode(n,this.rootNode,TOP_LEVEL)),s=this.rootNode.allLeafChildren;if(typeof i=="number"&&i>=0){const n=s.length;let l=i;if(this.gos.get("treeData")&&i>0&&n>0){for(let d=0;d<n;d++)if(s[d]?.rowIndex==i-1){l=d+1;break}}const h=s.slice(0,l),u=s.slice(l,s.length);this.rootNode.allLeafChildren=[...h,...r,...u]}else this.rootNode.allLeafChildren=[...s,...r];this.rootNode.sibling&&(this.rootNode.sibling.allLeafChildren=s),t.add=r}executeRemove(e,t,o){const{remove:i}=e;if((0,import_core._missingOrEmpty)(i))return;const r={};i.forEach(s=>{const n=this.lookupRowNode(s);n&&(n.isSelected()&&o.push(n),n.clearRowTopAndRowIndex(),r[n.id]=!0,delete this.allNodesMap[n.id],t.remove.push(n))}),this.rootNode.allLeafChildren=this.rootNode.allLeafChildren?.filter(s=>!r[s.id])??null,this.rootNode.sibling&&(this.rootNode.sibling.allLeafChildren=this.rootNode.allLeafChildren)}executeUpdate(e,t,o){const{update:i}=e;(0,import_core._missingOrEmpty)(i)||i.forEach(r=>{const s=this.lookupRowNode(r);s&&(s.updateData(r),!s.selectable&&s.isSelected()&&o.push(s),this.setMasterForRow(s,r,TOP_LEVEL,!1),t.update.push(s))})}lookupRowNode(e){const t=this.gos.getRowIdCallback();let o;if(t){const i=t({data:e,level:0});if(o=this.allNodesMap[i],!o)return(0,import_core._errorOnce)(`could not find row id=${i}, data item was not found for this id`),null}else if(o=this.rootNode.allLeafChildren?.find(i=>i.data===e),!o)return(0,import_core._errorOnce)("could not find data item as object was not found",e),(0,import_core._errorOnce)("Consider using getRowId to help the Grid find matching row data"),null;return o||null}createNode(e,t,o){const i=new import_core.RowNode(this.beans);return i.group=!1,this.setMasterForRow(i,e,o,!0),t&&(i.parent=t),i.level=o,i.setDataAndId(e,this.nextId.toString()),this.allNodesMap[i.id]&&(0,import_core._warnOnce)(`duplicate node id '${i.id}' detected from getRowId callback, this could cause issues in your grid.`),this.allNodesMap[i.id]=i,this.nextId++,i}setMasterForRow(e,t,o,i){if(this.gos.get("treeData"))e.setMaster(!1),i&&(e.expanded=!1);else{if(this.gos.get("masterDetail")){const n=this.gos.get("isRowMaster");n?e.setMaster(n(t)):e.setMaster(!0)}else e.setMaster(!1);if(i){const n=this.funcColsService.getRowGroupColumns(),l=n?n.length:0,a=o+l;e.expanded=e.master?this.isExpanded(a):!1}}}isExpanded(e){const t=this.gos.get("groupDefaultExpanded");return t===-1?!0:e<t}},ClientSideRowModel=class extends import_core2.BeanStub{constructor(){super(...arguments),this.beanName="rowModel",this.onRowHeightChanged_debounced=(0,import_core2._debounce)(this.onRowHeightChanged.bind(this),100),this.rowsToDisplay=[],this.hasStarted=!1,this.shouldSkipSettingDataOnStart=!1,this.isRefreshingModel=!1,this.rowCountReady=!1}wireBeans(e){this.beans=e,this.columnModel=e.columnModel,this.funcColsService=e.funcColsService,this.selectionService=e.selectionService,this.valueCache=e.valueCache,this.environment=e.environment,this.filterStage=e.filterStage,this.sortStage=e.sortStage,this.flattenStage=e.flattenStage,this.groupStage=e.groupStage,this.aggregationStage=e.aggregationStage,this.pivotStage=e.pivotStage,this.filterAggregatesStage=e.filterAggregatesStage}postConstruct(){const e=this.refreshModel.bind(this,{step:import_core2.ClientSideRowModelSteps.EVERYTHING}),t=!this.gos.get("suppressAnimationFrame"),o=this.refreshModel.bind(this,{step:import_core2.ClientSideRowModelSteps.EVERYTHING,afterColumnsChanged:!0,keepRenderedRows:!0,animate:t});this.addManagedEventListeners({newColumnsLoaded:o,columnRowGroupChanged:e,columnValueChanged:this.onValueChanged.bind(this),columnPivotChanged:this.refreshModel.bind(this,{step:import_core2.ClientSideRowModelSteps.PIVOT}),filterChanged:this.onFilterChanged.bind(this),sortChanged:this.onSortChanged.bind(this),columnPivotModeChanged:e,gridStylesChanged:this.onGridStylesChanges.bind(this),gridReady:this.onGridReady.bind(this)}),this.addPropertyListeners(),this.rootNode=new import_core2.RowNode(this.beans),this.nodeManager=new ClientSideNodeManager(this.rootNode,this.gos,this.eventService,this.funcColsService,this.selectionService,this.beans)}addPropertyListeners(){const e=new Set(["treeData","masterDetail"]),t=new Set(["groupDefaultExpanded","groupAllowUnbalanced","initialGroupOrderComparator","groupHideOpenParents","groupDisplayType"]),o=new Set(["excludeChildrenWhenTreeDataFiltering"]),i=new Set(["removePivotHeaderRowWhenSingleValueColumn","pivotRowTotals","pivotColumnGroupTotals","suppressExpandablePivotGroups"]),r=new Set(["getGroupRowAgg","alwaysAggregateAtRootLevel","groupIncludeTotalFooter","suppressAggFilteredOnly","grandTotalRow"]),s=new Set(["postSortRows","groupDisplayType","accentedSort"]),n=new Set([]),l=new Set(["groupRemoveSingleChildren","groupRemoveLowestSingleChildren","groupIncludeFooter","groupTotalRow"]),a=[...e,...t,...o,...i,...i,...r,...s,...n,...l];this.addManagedPropertyListeners(a,h=>{const u=h.changeSet?.properties;if(!u)return;const d=c=>u.some(w=>c.has(w));if(d(e)){this.setRowData(this.rootNode.allLeafChildren.map(c=>c.data));return}if(d(t)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.EVERYTHING});return}if(d(o)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.FILTER});return}if(d(i)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.PIVOT});return}if(d(r)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.AGGREGATE});return}if(d(s)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.SORT});return}if(d(n)){this.refreshModel({step:import_core2.ClientSideRowModelSteps.FILTER_AGGREGATES});return}d(l)&&this.refreshModel({step:import_core2.ClientSideRowModelSteps.MAP})}),this.addManagedPropertyListener("rowHeight",()=>this.resetRowHeights())}start(){this.hasStarted=!0,this.shouldSkipSettingDataOnStart?this.dispatchUpdateEventsAndRefresh():this.setInitialData()}setInitialData(){const e=this.gos.get("rowData");e&&(this.shouldSkipSettingDataOnStart=!0,this.setRowData(e))}ensureRowHeightsValid(e,t,o,i){let r,s=!1;do{r=!1;const n=this.getRowIndexAtPixel(e),l=this.getRowIndexAtPixel(t),a=Math.max(n,o),h=Math.min(l,i);for(let u=a;u<=h;u++){const d=this.getRow(u);if(d.rowHeightEstimated){const c=this.gos.getRowHeightForNode(d);d.setRowHeight(c.height),r=!0,s=!0}}r&&this.setRowTopAndRowIndex()}while(r);return s}setRowTopAndRowIndex(){const e=this.environment.getDefaultRowHeight();let t=0;const o=new Set,i=this.gos.isDomLayout("normal");for(let r=0;r<this.rowsToDisplay.length;r++){const s=this.rowsToDisplay[r];if(s.id!=null&&o.add(s.id),s.rowHeight==null){const n=this.gos.getRowHeightForNode(s,i,e);s.setRowHeight(n.height,n.estimated)}s.setRowTop(t),s.setRowIndex(r),t+=s.rowHeight}return o}clearRowTopAndRowIndex(e,t){const o=e.isActive(),i=s=>{s&&s.id!=null&&!t.has(s.id)&&s.clearRowTopAndRowIndex()},r=s=>{if(i(s),i(s.detailNode),i(s.sibling),s.hasChildren()&&s.childrenAfterGroup){const n=s.level==-1;o&&!n&&!s.expanded||s.childrenAfterGroup.forEach(r)}};r(this.rootNode)}ensureRowsAtPixel(e,t,o=0){const i=this.getRowIndexAtPixel(t),r=this.getRow(i),s=!this.gos.get("suppressAnimationFrame");return r===e[0]?!1:(e.forEach(n=>{(0,import_core2._removeFromArray)(this.rootNode.allLeafChildren,n)}),e.forEach((n,l)=>{(0,import_core2._insertIntoArray)(this.rootNode.allLeafChildren,n,Math.max(i+o,0)+l)}),this.refreshModel({step:import_core2.ClientSideRowModelSteps.EVERYTHING,keepRenderedRows:!0,keepEditingRows:!0,animate:s}),!0)}highlightRowAtPixel(e,t){const o=t!=null?this.getRowIndexAtPixel(t):null,i=o!=null?this.getRow(o):null;if(!i||!e||i===e||t==null){this.lastHighlightedRow&&(this.lastHighlightedRow.setHighlighted(null),this.lastHighlightedRow=null);return}const r=this.getHighlightPosition(t,i);this.lastHighlightedRow&&this.lastHighlightedRow!==i&&(this.lastHighlightedRow.setHighlighted(null),this.lastHighlightedRow=null),i.setHighlighted(r),this.lastHighlightedRow=i}getHighlightPosition(e,t){if(!t){const r=this.getRowIndexAtPixel(e);if(t=this.getRow(r||0),!t)return import_core2.RowHighlightPosition.Below}const{rowTop:o,rowHeight:i}=t;return e-o<i/2?import_core2.RowHighlightPosition.Above:import_core2.RowHighlightPosition.Below}getLastHighlightedRowNode(){return this.lastHighlightedRow}isLastRowIndexKnown(){return!0}getRowCount(){return this.rowsToDisplay?this.rowsToDisplay.length:0}getTopLevelRowCount(){if(this.rowsToDisplay&&this.rowsToDisplay[0]===this.rootNode)return 1;const t=this.rootNode.sibling?1:0,o=this.rootNode.childrenAfterAggFilter;return(o?o.length:0)+t}getTopLevelRowDisplayedIndex(e){if(this.rowsToDisplay&&this.rowsToDisplay[0]===this.rootNode)return e;let o=e;if(this.rowsToDisplay[0].footer){if(e===0)return 0;o-=1}let i=this.rootNode.childrenAfterSort[o];if(this.gos.get("groupHideOpenParents"))for(;i.expanded&&i.childrenAfterSort&&i.childrenAfterSort.length>0;)i=i.childrenAfterSort[0];return i.rowIndex}getRowBounds(e){if((0,import_core2._missing)(this.rowsToDisplay))return null;const t=this.rowsToDisplay[e];return t?{rowTop:t.rowTop,rowHeight:t.rowHeight}:null}onRowGroupOpened(){const e=this.gos.isAnimateRows();this.refreshModel({step:import_core2.ClientSideRowModelSteps.MAP,keepRenderedRows:!0,animate:e})}onFilterChanged(e){if(e.afterDataChange)return;const t=this.gos.isAnimateRows(),i=e.columns.length===0||e.columns.some(r=>r.isPrimary())?import_core2.ClientSideRowModelSteps.FILTER:import_core2.ClientSideRowModelSteps.FILTER_AGGREGATES;this.refreshModel({step:i,keepRenderedRows:!0,animate:t})}onSortChanged(){const e=this.gos.isAnimateRows();this.refreshModel({step:import_core2.ClientSideRowModelSteps.SORT,keepRenderedRows:!0,animate:e,keepEditingRows:!0})}getType(){return"clientSide"}onValueChanged(){this.columnModel.isPivotActive()?this.refreshModel({step:import_core2.ClientSideRowModelSteps.PIVOT}):this.refreshModel({step:import_core2.ClientSideRowModelSteps.AGGREGATE})}createChangePath(e){const t=(0,import_core2._missingOrEmpty)(e),o=new import_core2.ChangedPath(!1,this.rootNode);return(t||this.gos.get("treeData"))&&o.setInactive(),o}isSuppressModelUpdateAfterUpdateTransaction(e){if(!this.gos.get("suppressModelUpdateAfterUpdateTransaction")||e.rowNodeTransactions==null)return!1;const t=e.rowNodeTransactions.filter(i=>i.add!=null&&i.add.length>0||i.remove!=null&&i.remove.length>0);return t==null||t.length==0}buildRefreshModelParams(e){let t=import_core2.ClientSideRowModelSteps.EVERYTHING;const o={everything:import_core2.ClientSideRowModelSteps.EVERYTHING,group:import_core2.ClientSideRowModelSteps.EVERYTHING,filter:import_core2.ClientSideRowModelSteps.FILTER,map:import_core2.ClientSideRowModelSteps.MAP,aggregate:import_core2.ClientSideRowModelSteps.AGGREGATE,sort:import_core2.ClientSideRowModelSteps.SORT,pivot:import_core2.ClientSideRowModelSteps.PIVOT};if((0,import_core2._exists)(e)&&(t=o[e]),(0,import_core2._missing)(t)){(0,import_core2._errorOnce)(`invalid step ${e}, available steps are ${Object.keys(o).join(", ")}`);return}const i=!this.gos.get("suppressAnimationFrame");return{step:t,keepRenderedRows:!0,keepEditingRows:!0,animate:i}}refreshModel(e){if(!this.hasStarted||this.isRefreshingModel||this.columnModel.isChangeEventsDispatching())return;const t=typeof e=="object"&&"step"in e?e:this.buildRefreshModelParams(e);if(!t||this.isSuppressModelUpdateAfterUpdateTransaction(t))return;const o=this.createChangePath(t.rowNodeTransactions);switch(this.isRefreshingModel=!0,t.step){case import_core2.ClientSideRowModelSteps.EVERYTHING:this.doRowGrouping(t.rowNodeTransactions,t.rowNodeOrder,o,!!t.afterColumnsChanged);case import_core2.ClientSideRowModelSteps.FILTER:this.doFilter(o);case import_core2.ClientSideRowModelSteps.PIVOT:this.doPivot(o);case import_core2.ClientSideRowModelSteps.AGGREGATE:this.doAggregate(o);case import_core2.ClientSideRowModelSteps.FILTER_AGGREGATES:this.doFilterAggregates(o);case import_core2.ClientSideRowModelSteps.SORT:this.doSort(t.rowNodeTransactions,o);case import_core2.ClientSideRowModelSteps.MAP:this.doRowsToDisplay()}const i=this.setRowTopAndRowIndex();this.clearRowTopAndRowIndex(o,i),this.isRefreshingModel=!1;const r={type:"modelUpdated",animate:t.animate,keepRenderedRows:t.keepRenderedRows,newData:t.newData,newPage:!1,keepUndoRedoStack:t.keepUndoRedoStack};this.eventService.dispatchEvent(r)}isEmpty(){const e=(0,import_core2._missing)(this.rootNode.allLeafChildren)||this.rootNode.allLeafChildren.length===0;return(0,import_core2._missing)(this.rootNode)||e||!this.columnModel.isReady()}isRowsToRender(){return(0,import_core2._exists)(this.rowsToDisplay)&&this.rowsToDisplay.length>0}getNodesInRangeForSelection(e,t){let o=!1,i=!1;const r=[],s=this.gos.get("groupSelectsChildren");return this.forEachNodeAfterFilterAndSort(n=>{if(i)return;if(o&&(n===t||n===e)&&(i=!0,n.group&&s)){r.push(...n.allLeafChildren);return}if(!o){if(n!==t&&n!==e)return;o=!0}if(!n.group||!s){r.push(n);return}}),r}setDatasource(e){(0,import_core2._errorOnce)("should never call setDatasource on clientSideRowController")}getTopLevelNodes(){return this.rootNode?this.rootNode.childrenAfterGroup:null}getRootNode(){return this.rootNode}getRow(e){return this.rowsToDisplay[e]}isRowPresent(e){return this.rowsToDisplay.indexOf(e)>=0}getRowIndexAtPixel(e){if(this.isEmpty()||this.rowsToDisplay.length===0)return-1;let t=0,o=this.rowsToDisplay.length-1;if(e<=0)return 0;if((0,import_core2._last)(this.rowsToDisplay).rowTop<=e)return this.rowsToDisplay.length-1;let r=-1,s=-1;for(;;){const n=Math.floor((t+o)/2),l=this.rowsToDisplay[n];if(this.isRowInPixel(l,e)||(l.rowTop<e?t=n+1:l.rowTop>e&&(o=n-1),r===t&&s===o))return n;r=t,s=o}}isRowInPixel(e,t){const o=e.rowTop,i=e.rowTop+e.rowHeight;return o<=t&&i>t}forEachLeafNode(e){this.rootNode.allLeafChildren&&this.rootNode.allLeafChildren.forEach((t,o)=>e(t,o))}forEachNode(e,t=!1){this.recursivelyWalkNodesAndCallback({nodes:[...this.rootNode.childrenAfterGroup||[]],callback:e,recursionType:0,index:0,includeFooterNodes:t})}forEachNodeAfterFilter(e,t=!1){this.recursivelyWalkNodesAndCallback({nodes:[...this.rootNode.childrenAfterAggFilter||[]],callback:e,recursionType:1,index:0,includeFooterNodes:t})}forEachNodeAfterFilterAndSort(e,t=!1){this.recursivelyWalkNodesAndCallback({nodes:[...this.rootNode.childrenAfterSort||[]],callback:e,recursionType:2,index:0,includeFooterNodes:t})}forEachPivotNode(e,t=!1){this.recursivelyWalkNodesAndCallback({nodes:[this.rootNode],callback:e,recursionType:3,index:0,includeFooterNodes:t})}recursivelyWalkNodesAndCallback(e){const{nodes:t,callback:o,recursionType:i,includeFooterNodes:r}=e;let{index:s}=e;const n=l=>{const a=t[0]?.parent;if(!a)return;const h=r&&this.gos.getGrandTotalRow(),u=this.gos.getGroupTotalRowCallback(),d=r&&u({node:a});if(a===this.rootNode){h===l&&(a.createFooter(),o(a.sibling,s++));return}d===l&&(a.createFooter(),o(a.sibling,s++))};n("top");for(let l=0;l<t.length;l++){const a=t[l];if(o(a,s++),a.hasChildren()&&!a.footer){let h=null;switch(i){case 0:h=a.childrenAfterGroup;break;case 1:h=a.childrenAfterAggFilter;break;case 2:h=a.childrenAfterSort;break;case 3:h=a.leafGroup?null:a.childrenAfterSort;break}h&&(s=this.recursivelyWalkNodesAndCallback({nodes:[...h],callback:o,recursionType:i,index:s,includeFooterNodes:r}))}}return n("bottom"),s}doAggregate(e){this.aggregationStage?.execute({rowNode:this.rootNode,changedPath:e})}doFilterAggregates(e){this.filterAggregatesStage?this.filterAggregatesStage.execute({rowNode:this.rootNode,changedPath:e}):this.rootNode.childrenAfterAggFilter=this.rootNode.childrenAfterFilter}expandOrCollapseAll(e){const t=this.gos.get("treeData"),o=this.columnModel.isPivotActive(),i=n=>{n&&n.forEach(l=>{const a=()=>{l.expanded=e,i(l.childrenAfterGroup)};if(t){(0,import_core2._exists)(l.childrenAfterGroup)&&a();return}if(o){!l.leafGroup&&a();return}l.group&&a()})};this.rootNode&&i(this.rootNode.childrenAfterGroup),this.refreshModel({step:import_core2.ClientSideRowModelSteps.MAP});const s={type:"expandOrCollapseAll",source:e?"expandAll":"collapseAll"};this.eventService.dispatchEvent(s)}doSort(e,t){this.sortStage.execute({rowNode:this.rootNode,rowNodeTransactions:e,changedPath:t})}doRowGrouping(e,t,o,i){if(this.groupStage){if(e?this.groupStage.execute({rowNode:this.rootNode,rowNodeTransactions:e,rowNodeOrder:t,changedPath:o}):this.groupStage.execute({rowNode:this.rootNode,changedPath:o,afterColumnsChanged:i}),this.gos.get("groupSelectsChildren")&&this.selectionService.updateGroupsFromChildrenSelections("rowGroupChanged",o)){const s={type:"selectionChanged",source:"rowGroupChanged"};this.eventService.dispatchEvent(s)}}else this.rootNode.childrenAfterGroup=this.rootNode.allLeafChildren,this.rootNode.sibling&&(this.rootNode.sibling.childrenAfterGroup=this.rootNode.childrenAfterGroup),this.rootNode.updateHasChildren();this.nodeManager.isRowCountReady()&&(this.rowCountReady=!0,this.eventService.dispatchEventOnce({type:"rowCountReady"}))}doFilter(e){this.filterStage.execute({rowNode:this.rootNode,changedPath:e})}doPivot(e){this.pivotStage?.execute({rowNode:this.rootNode,changedPath:e})}getCopyOfNodesMap(){return this.nodeManager.getCopyOfNodesMap()}getRowNode(e){if(typeof e=="string"&&e.indexOf(import_core2.RowNode.ID_PREFIX_ROW_GROUP)==0){let o;return this.forEachNode(i=>{i.id===e&&(o=i)}),o}return this.nodeManager.getRowNode(e)}setRowData(e){this.selectionService.reset("rowDataChanged"),this.nodeManager.setRowData(e),this.hasStarted&&this.dispatchUpdateEventsAndRefresh()}dispatchUpdateEventsAndRefresh(){const e={type:"rowDataUpdated"};this.eventService.dispatchEvent(e),this.refreshModel({step:import_core2.ClientSideRowModelSteps.EVERYTHING,newData:!0})}batchUpdateRowData(e,t){if(this.applyAsyncTransactionsTimeout==null){this.rowDataTransactionBatch=[];const o=this.gos.getAsyncTransactionWaitMillis();this.applyAsyncTransactionsTimeout=window.setTimeout(()=>{this.executeBatchUpdateRowData()},o)}this.rowDataTransactionBatch.push({rowDataTransaction:e,callback:t})}flushAsyncTransactions(){this.applyAsyncTransactionsTimeout!=null&&(clearTimeout(this.applyAsyncTransactionsTimeout),this.executeBatchUpdateRowData())}executeBatchUpdateRowData(){this.valueCache.onDataChanged();const e=[],t=[];let o=!1;if(this.rowDataTransactionBatch&&this.rowDataTransactionBatch.forEach(i=>{const r=this.nodeManager.updateRowData(i.rowDataTransaction,void 0);t.push(r),i.callback&&e.push(i.callback.bind(null,r)),typeof i.rowDataTransaction.addIndex=="number"&&(o=!0)}),this.commonUpdateRowData(t,void 0,o),e.length>0&&window.setTimeout(()=>{e.forEach(i=>i())},0),t.length>0){const i={type:"asyncTransactionsFlushed",results:t};this.eventService.dispatchEvent(i)}this.rowDataTransactionBatch=null,this.applyAsyncTransactionsTimeout=void 0}updateRowData(e,t){this.valueCache.onDataChanged();const o=this.nodeManager.updateRowData(e,t),i=typeof e.addIndex=="number";return this.commonUpdateRowData([o],t,i),o}createRowNodeOrder(){if(this.gos.get("suppressMaintainUnsortedOrder"))return;const t={};if(this.rootNode&&this.rootNode.allLeafChildren)for(let o=0;o<this.rootNode.allLeafChildren.length;o++){const i=this.rootNode.allLeafChildren[o];t[i.id]=o}return t}commonUpdateRowData(e,t,o){if(!this.hasStarted)return;const i=!this.gos.get("suppressAnimationFrame");o&&(t=this.createRowNodeOrder());const r={type:"rowDataUpdated"};this.eventService.dispatchEvent(r),this.refreshModel({step:import_core2.ClientSideRowModelSteps.EVERYTHING,rowNodeTransactions:e,rowNodeOrder:t,keepRenderedRows:!0,keepEditingRows:!0,animate:i})}doRowsToDisplay(){this.rowsToDisplay=this.flattenStage.execute({rowNode:this.rootNode})}onRowHeightChanged(){this.refreshModel({step:import_core2.ClientSideRowModelSteps.MAP,keepRenderedRows:!0,keepEditingRows:!0,keepUndoRedoStack:!0})}onRowHeightChangedDebounced(){this.onRowHeightChanged_debounced()}resetRowHeights(){const e=this.resetRowHeightsForAllRowNodes();this.rootNode.setRowHeight(this.rootNode.rowHeight,!0),this.rootNode.sibling&&this.rootNode.sibling.setRowHeight(this.rootNode.sibling.rowHeight,!0),e&&this.onRowHeightChanged()}resetRowHeightsForAllRowNodes(){let e=!1;return this.forEachNode(t=>{t.setRowHeight(t.rowHeight,!0);const o=t.detailNode;o&&o.setRowHeight(o.rowHeight,!0),t.sibling&&t.sibling.setRowHeight(t.sibling.rowHeight,!0),e=!0}),e}onGridStylesChanges(e){if(e.rowHeightChanged){if(this.columnModel.isAutoRowHeightActive())return;this.resetRowHeights()}}onGridReady(){this.hasStarted||this.setInitialData()}isRowDataLoaded(){return this.rowCountReady}},import_core3=require("@ag-grid-community/core");function onGroupExpandedOrCollapsed(e){e.expansionService.onGroupExpandedOrCollapsed()}function refreshClientSideRowModel(e,t){e.rowModelHelperService?.getClientSideRowModel()?.refreshModel(t)}function forEachLeafNode(e,t){e.rowModelHelperService?.getClientSideRowModel()?.forEachLeafNode(t)}function forEachNodeAfterFilter(e,t){e.rowModelHelperService?.getClientSideRowModel()?.forEachNodeAfterFilter(t)}function forEachNodeAfterFilterAndSort(e,t){e.rowModelHelperService?.getClientSideRowModel()?.forEachNodeAfterFilterAndSort(t)}function resetRowHeights(e){if(e.columnModel.isAutoRowHeightActive()){(0,import_core3._warnOnce)("calling gridApi.resetRowHeights() makes no sense when using Auto Row Height.");return}e.rowModelHelperService?.getClientSideRowModel()?.resetRowHeights()}function applyTransaction(e,t){return e.frameworkOverrides.wrapIncoming(()=>e.rowModelHelperService?.getClientSideRowModel()?.updateRowData(t))}function applyTransactionAsync(e,t,o){e.frameworkOverrides.wrapIncoming(()=>e.rowModelHelperService?.getClientSideRowModel()?.batchUpdateRowData(t,o))}function flushAsyncTransactions(e){e.frameworkOverrides.wrapIncoming(()=>e.rowModelHelperService?.getClientSideRowModel()?.flushAsyncTransactions())}function getBestCostNodeSelection(e){return e.selectionService.getBestCostNodeSelection()}var import_core4=require("@ag-grid-community/core"),FilterStage=class extends import_core4.BeanStub{constructor(){super(...arguments),this.beanName="filterStage"}wireBeans(e){this.filterManager=e.filterManager}execute(e){const{changedPath:t}=e;this.filter(t)}filter(e){const t=!!this.filterManager?.isChildFilterPresent();this.filterNodes(t,e)}filterNodes(e,t){const o=(i,r)=>{i.hasChildren()&&e&&!r?i.childrenAfterFilter=i.childrenAfterGroup.filter(s=>{const n=s.childrenAfterFilter&&s.childrenAfterFilter.length>0,l=s.data&&this.filterManager.doesRowPassFilter({rowNode:s});return n||l}):i.childrenAfterFilter=i.childrenAfterGroup,i.sibling&&(i.sibling.childrenAfterFilter=i.childrenAfterFilter)};if(this.doingTreeDataFiltering()){const i=(s,n)=>{if(s.childrenAfterGroup)for(let l=0;l<s.childrenAfterGroup.length;l++){const a=s.childrenAfterGroup[l],h=n||this.filterManager.doesRowPassFilter({rowNode:a});a.childrenAfterGroup?i(s.childrenAfterGroup[l],h):o(a,h)}o(s,n)},r=s=>i(s,!1);t.executeFromRootNode(r)}else{const i=r=>o(r,!1);t.forEachChangedNodeDepthFirst(i,!0)}}doingTreeDataFiltering(){return this.gos.get("treeData")&&!this.gos.get("excludeChildrenWhenTreeDataFiltering")}},import_core5=require("@ag-grid-community/core"),FlattenStage=class extends import_core5.BeanStub{constructor(){super(...arguments),this.beanName="flattenStage"}wireBeans(e){this.beans=e,this.columnModel=e.columnModel}execute(e){const t=e.rowNode,o=[],i=this.columnModel.isPivotMode(),r=i&&t.leafGroup,s=r?[t]:t.childrenAfterSort,n=this.getFlattenDetails();this.recursivelyAddToRowsToDisplay(n,s,o,i,0);const l=o.length>0;if(!r&&l&&n.grandTotalRow){t.createFooter();const h=n.grandTotalRow==="top";this.addRowNodeToRowsToDisplay(n,t.sibling,o,0,h)}return o}getFlattenDetails(){const e=this.gos.get("groupRemoveSingleChildren");return{groupRemoveLowestSingleChildren:!e&&this.gos.get("groupRemoveLowestSingleChildren"),groupRemoveSingleChildren:e,isGroupMultiAutoColumn:this.gos.isGroupMultiAutoColumn(),hideOpenParents:this.gos.get("groupHideOpenParents"),grandTotalRow:this.gos.getGrandTotalRow(),groupTotalRow:this.gos.getGroupTotalRowCallback()}}recursivelyAddToRowsToDisplay(e,t,o,i,r){if(!(0,import_core5._missingOrEmpty)(t))for(let s=0;s<t.length;s++){const n=t[s],l=n.hasChildren(),a=i&&!l,h=e.groupRemoveSingleChildren&&l&&n.childrenAfterGroup.length===1,u=e.groupRemoveLowestSingleChildren&&l&&n.leafGroup&&n.childrenAfterGroup.length===1,d=i&&n.leafGroup,c=e.hideOpenParents&&n.expanded&&!n.master&&!d;if(!a&&!c&&!h&&!u&&this.addRowNodeToRowsToDisplay(e,n,o,r),!(i&&n.leafGroup)){if(l){const g=h||u;if(n.expanded||g){const p=e.groupTotalRow({node:n});p||n.destroyFooter();const f=g?r:r+1;p==="top"&&(n.createFooter(),this.addRowNodeToRowsToDisplay(e,n.sibling,o,f)),this.recursivelyAddToRowsToDisplay(e,n.childrenAfterSort,o,i,f),p==="bottom"&&(n.createFooter(),this.addRowNodeToRowsToDisplay(e,n.sibling,o,f))}}else if(n.master&&n.expanded){const g=this.createDetailNode(n);this.addRowNodeToRowsToDisplay(e,g,o,r)}}}}addRowNodeToRowsToDisplay(e,t,o,i,r){r?o.unshift(t):o.push(t),t.setUiLevel(e.isGroupMultiAutoColumn?0:i)}createDetailNode(e){if((0,import_core5._exists)(e.detailNode))return e.detailNode;const t=new import_core5.RowNode(this.beans);return t.detail=!0,t.selectable=!1,t.parent=e,(0,import_core5._exists)(e.id)&&(t.id="detail_"+e.id),t.data=e.data,t.level=e.level+1,e.detailNode=t,t}},import_core6=require("@ag-grid-community/core"),ImmutableService=class extends import_core6.BeanStub{constructor(){super(...arguments),this.beanName="immutableService"}wireBeans(e){this.rowModel=e.rowModel,this.selectionService=e.selectionService}postConstruct(){this.rowModel.getType()==="clientSide"&&(this.clientSideRowModel=this.rowModel,this.addManagedPropertyListener("rowData",()=>this.onRowDataUpdated()))}isActive(){const e=this.gos.exists("getRowId");return this.gos.get("resetRowDataOnUpdate")?!1:e}setRowData(e){const t=this.createTransactionForRowData(e);if(!t)return;const[o,i]=t;this.clientSideRowModel.updateRowData(o,i)}createTransactionForRowData(e){if((0,import_core6._missing)(this.clientSideRowModel)){(0,import_core6._errorOnce)("ImmutableService only works with ClientSideRowModel");return}const t=this.gos.getRowIdCallback();if(t==null){(0,import_core6._errorOnce)("ImmutableService requires getRowId() callback to be implemented, your row data needs IDs!");return}const o={remove:[],update:[],add:[]},i=this.clientSideRowModel.getCopyOfNodesMap(),s=this.gos.get("suppressMaintainUnsortedOrder")?void 0:{};return(0,import_core6._exists)(e)&&e.forEach((n,l)=>{const a=t({data:n,level:0}),h=i[a];s&&(s[a]=l),h?(h.data!==n&&o.update.push(n),i[a]=void 0):o.add.push(n)}),(0,import_core6._iterateObject)(i,(n,l)=>{l&&o.remove.push(l.data)}),[o,s]}onRowDataUpdated(){const e=this.gos.get("rowData");e&&(this.isActive()?this.setRowData(e):(this.selectionService.reset("rowDataChanged"),this.clientSideRowModel.setRowData(e)))}},import_core7=require("@ag-grid-community/core"),SortService=class extends import_core7.BeanStub{constructor(){super(...arguments),this.beanName="sortService"}wireBeans(e){this.columnModel=e.columnModel,this.funcColsService=e.funcColsService,this.rowNodeSorter=e.rowNodeSorter,this.showRowGroupColsService=e.showRowGroupColsService}sort(e,t,o,i,r,s){const n=this.gos.get("groupMaintainOrder"),l=this.columnModel.getCols().some(c=>c.isRowGroupActive());let a={};o&&i&&(a=this.calculateDirtyNodes(i));const h=this.columnModel.isPivotMode(),u=this.gos.getCallback("postSortRows"),d=c=>{this.pullDownGroupDataForHideOpenParents(c.childrenAfterAggFilter,!0);const w=h&&c.leafGroup;if(n&&l&&!c.leafGroup&&!s){const f=this.funcColsService.getRowGroupColumns()?.[c.level+1]?.getSort()===null,m=c.childrenAfterAggFilter.slice(0);if(c.childrenAfterSort&&!f){const R={};c.childrenAfterSort.forEach((S,C)=>{R[S.id]=C}),m.sort((S,C)=>(R[S.id]??0)-(R[C.id]??0))}c.childrenAfterSort=m}else!t||w?c.childrenAfterSort=c.childrenAfterAggFilter.slice(0):o?c.childrenAfterSort=this.doDeltaSort(c,a,r,e):c.childrenAfterSort=this.rowNodeSorter.doFullSort(c.childrenAfterAggFilter,e);if(c.sibling&&(c.sibling.childrenAfterSort=c.childrenAfterSort),this.updateChildIndexes(c),u){const p={nodes:c.childrenAfterSort};u(p)}};r&&r.forEachChangedNodeDepthFirst(d),this.updateGroupDataForHideOpenParents(r)}calculateDirtyNodes(e){const t={},o=i=>{i&&i.forEach(r=>t[r.id]=!0)};return e&&e.forEach(i=>{o(i.add),o(i.update),o(i.remove)}),t}doDeltaSort(e,t,o,i){const r=e.childrenAfterAggFilter,s=e.childrenAfterSort;if(!s)return this.rowNodeSorter.doFullSort(r,i);const n={},l=[];r.forEach(d=>{t[d.id]||!o.canSkip(d)?l.push(d):n[d.id]=!0});const a=s.filter(d=>n[d.id]),h=(d,c)=>({currentPos:c,rowNode:d}),u=l.map(h).sort((d,c)=>this.rowNodeSorter.compareRowNodes(i,d,c));return this.mergeSortedArrays(i,u,a.map(h)).map(({rowNode:d})=>d)}mergeSortedArrays(e,t,o){const i=[];let r=0,s=0;for(;r<t.length&&s<o.length;)this.rowNodeSorter.compareRowNodes(e,t[r],o[s])<0?i.push(t[r++]):i.push(o[s++]);for(;r<t.length;)i.push(t[r++]);for(;s<o.length;)i.push(o[s++]);return i}updateChildIndexes(e){if((0,import_core7._missing)(e.childrenAfterSort))return;const t=e.childrenAfterSort;for(let o=0;o<t.length;o++){const i=t[o],r=o===0,s=o===e.childrenAfterSort.length-1;i.setFirstChild(r),i.setLastChild(s),i.setChildIndex(o)}}updateGroupDataForHideOpenParents(e){if(!this.gos.get("groupHideOpenParents"))return;if(this.gos.get("treeData"))return(0,import_core7._warnOnce)("The property hideOpenParents dose not work with Tree Data. This is because Tree Data has values at the group level, it doesn't make sense to hide them."),!1;const t=o=>{this.pullDownGroupDataForHideOpenParents(o.childrenAfterSort,!1),o.childrenAfterSort.forEach(i=>{i.hasChildren()&&t(i)})};e&&e.executeFromRootNode(o=>t(o))}pullDownGroupDataForHideOpenParents(e,t){!this.gos.get("groupHideOpenParents")||(0,import_core7._missing)(e)||e.forEach(o=>{(this.showRowGroupColsService?.getShowRowGroupCols()??[]).forEach(r=>{const s=r.getColDef().showRowGroup;if(typeof s!="string"){(0,import_core7._errorOnce)("groupHideOpenParents only works when specifying specific columns for colDef.showRowGroup");return}const n=s,l=this.columnModel.getColDefCol(n);if(l!==o.rowGroupColumn)if(t)o.setGroupValue(r.getId(),void 0);else{const h=o.getFirstChildOfFirstChild(l);h&&o.setGroupValue(r.getId(),h.key)}})})}},import_core8=require("@ag-grid-community/core"),SortStage=class extends import_core8.BeanStub{constructor(){super(...arguments),this.beanName="sortStage"}wireBeans(e){this.sortService=e.sortService,this.sortController=e.sortController}execute(e){const t=this.sortController.getSortOptions(),o=(0,import_core8._exists)(t)&&t.length>0,i=o&&(0,import_core8._exists)(e.rowNodeTransactions)&&this.gos.get("deltaSort"),r=t.some(s=>this.gos.isColumnsSortingCoupledToGroup()?s.column.isPrimary()&&s.column.isRowGroupActive():!!s.column.getColDef().showRowGroup);this.sortService.sort(t,o,i,e.rowNodeTransactions,e.changedPath,r)}},VERSION="32.0.0",ClientSideRowModelCoreModule={version:VERSION,moduleName:`${import_core9.ModuleNames.ClientSideRowModelModule}-core`,rowModel:"clientSide",beans:[ClientSideRowModel,FilterStage,SortStage,FlattenStage,SortService,ImmutableService]},ClientSideRowModelApiModule={version:VERSION,moduleName:`${import_core9.ModuleNames.ClientSideRowModelModule}-api`,beans:[import_core9.RowModelHelperService],apiFunctions:{onGroupExpandedOrCollapsed,refreshClientSideRowModel,forEachLeafNode,forEachNodeAfterFilter,forEachNodeAfterFilterAndSort,resetRowHeights,applyTransaction,applyTransactionAsync,flushAsyncTransactions,getBestCostNodeSelection},dependantModules:[ClientSideRowModelCoreModule,import_core9._CsrmSsrmSharedApiModule]},ClientSideRowModelModule={version:VERSION,moduleName:import_core9.ModuleNames.ClientSideRowModelModule,dependantModules:[ClientSideRowModelCoreModule,ClientSideRowModelApiModule]}; |
{ | ||
"name": "@ag-grid-community/client-side-row-model", | ||
"version": "31.3.2", | ||
"version": "32.0.0", | ||
"description": "Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue", | ||
"dependencies": { | ||
"tslib": "^2.3.0", | ||
"@ag-grid-community/core": "31.3.2" | ||
"@ag-grid-community/core": "32.0.0" | ||
}, | ||
@@ -18,2 +18,3 @@ "main": "./dist/package/main.cjs.js", | ||
}, | ||
"sideEffects": false, | ||
"devDependencies": { | ||
@@ -20,0 +21,0 @@ "@types/jest": "^29.5.0", |
{ | ||
"name": "@ag-grid-community/client-side-row-model", | ||
"version": "31.3.2", | ||
"version": "32.0.0", | ||
"description": "Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue", | ||
"dependencies": { | ||
"tslib": "^2.3.0", | ||
"@ag-grid-community/core": "31.3.2" | ||
"@ag-grid-community/core": "32.0.0" | ||
}, | ||
@@ -18,2 +18,3 @@ "main": "./src/main.js", | ||
}, | ||
"sideEffects": false, | ||
"devDependencies": { | ||
@@ -20,0 +21,0 @@ "@types/jest": "^29.5.0", |
@@ -1,15 +0,14 @@ | ||
import { Beans, ColumnModel, EventService, RowDataTransaction, RowNode, RowNodeTransaction, GridOptionsService, ISelectionService } from "@ag-grid-community/core"; | ||
import type { BeanCollection, EventService, FuncColsService, GridOptionsService, ISelectionService, RowDataTransaction, RowNodeTransaction } from '@ag-grid-community/core'; | ||
import { RowNode } from '@ag-grid-community/core'; | ||
export declare class ClientSideNodeManager { | ||
private static TOP_LEVEL; | ||
private readonly rootNode; | ||
private gos; | ||
private eventService; | ||
private columnModel; | ||
private funcColsService; | ||
private selectionService; | ||
private beans; | ||
private nextId; | ||
private static ROOT_NODE_ID; | ||
private rowCountReady; | ||
private allNodesMap; | ||
constructor(rootNode: RowNode, gos: GridOptionsService, eventService: EventService, columnModel: ColumnModel, selectionService: ISelectionService, beans: Beans); | ||
constructor(rootNode: RowNode, gos: GridOptionsService, eventService: EventService, funcColsService: FuncColsService, selectionService: ISelectionService, beans: BeanCollection); | ||
getCopyOfNodesMap(): { | ||
@@ -16,0 +15,0 @@ [id: string]: RowNode; |
@@ -1,2 +0,3 @@ | ||
import { BeanStub, ChangedPath, IClientSideRowModel, RefreshModelParams, ClientSideRowModelStep, RowBounds, RowDataTransaction, RowNode, RowHighlightPosition, RowNodeTransaction, RowModelType } from "@ag-grid-community/core"; | ||
import type { BeanCollection, ClientSideRowModelStep, IClientSideRowModel, NamedBean, RefreshModelParams, RowBounds, RowDataTransaction, RowModelType, RowNodeTransaction } from '@ag-grid-community/core'; | ||
import { BeanStub, ChangedPath, RowHighlightPosition, RowNode } from '@ag-grid-community/core'; | ||
export interface BatchTransactionItem<TData = any> { | ||
@@ -9,7 +10,10 @@ rowDataTransaction: RowDataTransaction<TData>; | ||
} | ||
export declare class ClientSideRowModel extends BeanStub implements IClientSideRowModel { | ||
export declare class ClientSideRowModel extends BeanStub implements IClientSideRowModel, NamedBean { | ||
beanName: "rowModel"; | ||
private beans; | ||
private columnModel; | ||
private funcColsService; | ||
private selectionService; | ||
private valueCache; | ||
private beans; | ||
private environment; | ||
private filterStage; | ||
@@ -22,2 +26,3 @@ private sortStage; | ||
private filterAggregatesStage?; | ||
wireBeans(beans: BeanCollection): void; | ||
private onRowHeightChanged_debounced; | ||
@@ -42,3 +47,3 @@ private rootNode; | ||
private rowCountReady; | ||
init(): void; | ||
postConstruct(): void; | ||
private addPropertyListeners; | ||
@@ -45,0 +50,0 @@ start(): void; |
@@ -1,5 +0,11 @@ | ||
import { IRowNodeStage, StageExecuteParams, BeanStub } from "@ag-grid-community/core"; | ||
export declare class FilterStage extends BeanStub implements IRowNodeStage { | ||
private filterService; | ||
import type { BeanCollection, IRowNodeStage, NamedBean, StageExecuteParams } from '@ag-grid-community/core'; | ||
import { BeanStub } from '@ag-grid-community/core'; | ||
export declare class FilterStage extends BeanStub implements IRowNodeStage, NamedBean { | ||
beanName: "filterStage"; | ||
private filterManager?; | ||
wireBeans(beans: BeanCollection): void; | ||
execute(params: StageExecuteParams): void; | ||
private filter; | ||
private filterNodes; | ||
private doingTreeDataFiltering; | ||
} |
@@ -1,4 +0,8 @@ | ||
import { BeanStub, IRowNodeStage, RowNode, StageExecuteParams } from "@ag-grid-community/core"; | ||
export declare class FlattenStage extends BeanStub implements IRowNodeStage { | ||
import type { BeanCollection, IRowNodeStage, NamedBean, StageExecuteParams } from '@ag-grid-community/core'; | ||
import { BeanStub, RowNode } from '@ag-grid-community/core'; | ||
export declare class FlattenStage extends BeanStub implements IRowNodeStage, NamedBean { | ||
beanName: "flattenStage"; | ||
private beans; | ||
private columnModel; | ||
wireBeans(beans: BeanCollection): void; | ||
execute(params: StageExecuteParams): RowNode[]; | ||
@@ -5,0 +9,0 @@ private getFlattenDetails; |
@@ -1,8 +0,10 @@ | ||
import { BeanStub, IImmutableService } from "@ag-grid-community/core"; | ||
export declare class ImmutableService extends BeanStub implements IImmutableService { | ||
import type { BeanCollection, IImmutableService, NamedBean } from '@ag-grid-community/core'; | ||
import { BeanStub } from '@ag-grid-community/core'; | ||
export declare class ImmutableService extends BeanStub implements NamedBean, IImmutableService { | ||
beanName: "immutableService"; | ||
private rowModel; | ||
private rowRenderer; | ||
private selectionService; | ||
wireBeans(beans: BeanCollection): void; | ||
private clientSideRowModel; | ||
private postConstruct; | ||
postConstruct(): void; | ||
isActive(): boolean; | ||
@@ -9,0 +11,0 @@ setRowData(rowData: any[]): void; |
@@ -1,5 +0,10 @@ | ||
import { SortOption, ChangedPath, BeanStub, RowNodeTransaction } from "@ag-grid-community/core"; | ||
export declare class SortService extends BeanStub { | ||
import type { BeanCollection, ChangedPath, NamedBean, RowNodeTransaction, SortOption } from '@ag-grid-community/core'; | ||
import { BeanStub } from '@ag-grid-community/core'; | ||
export declare class SortService extends BeanStub implements NamedBean { | ||
beanName: "sortService"; | ||
private columnModel; | ||
private funcColsService; | ||
private rowNodeSorter; | ||
private showRowGroupColsService?; | ||
wireBeans(beans: BeanCollection): void; | ||
sort(sortOptions: SortOption[], sortActive: boolean, useDeltaSort: boolean, rowNodeTransactions: RowNodeTransaction[] | null | undefined, changedPath: ChangedPath | undefined, sortContainsGroupColumns: boolean): void; | ||
@@ -6,0 +11,0 @@ private calculateDirtyNodes; |
@@ -1,6 +0,9 @@ | ||
import { StageExecuteParams, BeanStub, IRowNodeStage } from "@ag-grid-community/core"; | ||
export declare class SortStage extends BeanStub implements IRowNodeStage { | ||
import type { BeanCollection, IRowNodeStage, NamedBean, StageExecuteParams } from '@ag-grid-community/core'; | ||
import { BeanStub } from '@ag-grid-community/core'; | ||
export declare class SortStage extends BeanStub implements NamedBean, IRowNodeStage { | ||
beanName: "sortStage"; | ||
private sortService; | ||
private sortController; | ||
wireBeans(beans: BeanCollection): void; | ||
execute(params: StageExecuteParams): void; | ||
} |
@@ -1,2 +0,4 @@ | ||
import { Module } from "@ag-grid-community/core"; | ||
import type { Module } from '@ag-grid-community/core'; | ||
export declare const ClientSideRowModelCoreModule: Module; | ||
export declare const ClientSideRowModelApiModule: Module; | ||
export declare const ClientSideRowModelModule: Module; |
@@ -1,1 +0,1 @@ | ||
export { ClientSideRowModelModule } from "./clientSideRowModelModule"; | ||
export { ClientSideRowModelModule } from './clientSideRowModelModule'; |
@@ -1,1 +0,1 @@ | ||
export declare const VERSION = "31.3.2"; | ||
export declare const VERSION = "32.0.0"; |
{ | ||
"name": "@ag-grid-community/client-side-row-model", | ||
"version": "31.3.2", | ||
"version": "32.0.0", | ||
"description": "Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue", | ||
"dependencies": { | ||
"tslib": "^2.3.0", | ||
"@ag-grid-community/core": "31.3.2" | ||
"@ag-grid-community/core": "32.0.0" | ||
}, | ||
@@ -18,2 +18,3 @@ "main": "./dist/package/main.cjs.js", | ||
}, | ||
"sideEffects": false, | ||
"devDependencies": { | ||
@@ -20,0 +21,0 @@ "@types/jest": "^29.5.0", |
@@ -1,2 +0,2 @@ | ||
![AG Grid HTML5 Grid trusted by the community, built for enterprise](./github-banner.png "AG Grid") | ||
![AG Grid HTML5 Grid trusted by the community, built for enterprise](./github-banner.png 'AG Grid') | ||
@@ -7,3 +7,3 @@ [![CDNJS](https://img.shields.io/cdnjs/v/ag-grid.svg)](https://cdnjs.com/libraries/ag-grid) | ||
# AG Grid | ||
# AG Grid | ||
@@ -17,3 +17,3 @@ AG Grid is a fully-featured and highly customizable JavaScript data grid. | ||
This package is the feature module for the [Client Side Row Model](https://ag-grid.com/javascript-data-grid/row-models/#client-side/) to be used when working with AG Grid module setup in order to minimise your bundle size. | ||
This package is the feature module for the [Client Side Row Model](https://ag-grid.com/javascript-data-grid/row-models/#client-side/) to be used when working with AG Grid module setup in order to minimise your bundle size. | ||
@@ -20,0 +20,0 @@ For more details on working with AG Grid modules visit our [modules documentation](https://ag-grid.com/javascript-data-grid/modules/). |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
583559
24
4146
+ Added@ag-grid-community/core@32.0.0(transitive)
+ Addedag-charts-types@10.0.0(transitive)
- Removed@ag-grid-community/core@31.3.2(transitive)