@@ -9,16 +9,16 @@ import type { Components } from '@revolist/revogrid/standalone';
99import { defineCustomElements } from '@revolist/revogrid/loader' ;
1010@ProxyCmp ( {
1111 defineCustomElementFn : defineCustomElements ,
12- inputs : [ 'accessible' , 'additionalData' , 'applyOnClose' , 'autoSizeColumn' , 'canDrag' , 'canFocus' , 'canMoveColumns' , 'colSize' , 'columnTypes' , 'columns' , 'disableVirtualX' , 'disableVirtualY' , 'editors' , 'exporting' , 'filter' , 'focusTemplate' , 'frameSize' , 'grouping' , 'hideAttribution' , 'jobsBeforeRender' , 'pinnedBottomSource' , 'pinnedTopSource' , 'plugins' , 'range' , 'readonly' , 'registerVNode' , 'resize' , 'rowClass' , 'rowDefinitions' , 'rowHeaders' , 'rowSize' , 'rtl' , 'sorting' , 'source' , 'stretch' , 'theme' , 'trimmedRows' , 'useClipboard' ] ,
12+ inputs : [ 'accessible' , 'additionalData' , 'applyOnClose' , 'autoSizeColumn' , 'canDrag' , 'canFocus' , 'canMoveColumns' , 'colSize' , 'columnTypes' , 'columns' , 'disableVirtualX' , 'disableVirtualY' , 'editors' , 'exporting' , 'filter' , 'focusTemplate' , 'frameSize' , 'grouping' , 'hideAttribution' , 'jobsBeforeRender' , 'noHorizontalScrollTransfer' , ' pinnedBottomSource', 'pinnedTopSource' , 'plugins' , 'range' , 'readonly' , 'registerVNode' , 'resize' , 'rowClass' , 'rowDefinitions' , 'rowHeaders' , 'rowSize' , 'rtl' , 'sorting' , 'source' , 'stretch' , 'theme' , 'trimmedRows' , 'useClipboard' ] ,
1313 methods : [ 'refresh' , 'setDataAt' , 'scrollToRow' , 'scrollToColumnIndex' , 'scrollToColumnProp' , 'updateColumns' , 'addTrimmed' , 'scrollToCoordinate' , 'setCellEdit' , 'setCellsFocus' , 'getSource' , 'getVisibleSource' , 'getSourceStore' , 'getColumnStore' , 'updateColumnSorting' , 'clearSorting' , 'getColumns' , 'clearFocus' , 'getPlugins' , 'getFocused' , 'getContentSize' , 'getSelectedRange' , 'refreshExtraElements' , 'getProviders' ]
1414} )
1515@Component ( {
1616 selector : 'revo-grid' ,
1717 changeDetection : ChangeDetectionStrategy . OnPush ,
1818 template : '<ng-content></ng-content>' ,
1919 // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
20- inputs : [ 'accessible' , 'additionalData' , 'applyOnClose' , 'autoSizeColumn' , 'canDrag' , 'canFocus' , 'canMoveColumns' , 'colSize' , 'columnTypes' , 'columns' , 'disableVirtualX' , 'disableVirtualY' , 'editors' , 'exporting' , 'filter' , 'focusTemplate' , 'frameSize' , 'grouping' , 'hideAttribution' , 'jobsBeforeRender' , 'pinnedBottomSource' , 'pinnedTopSource' , 'plugins' , 'range' , 'readonly' , 'registerVNode' , 'resize' , 'rowClass' , 'rowDefinitions' , 'rowHeaders' , 'rowSize' , 'rtl' , 'sorting' , 'source' , 'stretch' , 'theme' , 'trimmedRows' , 'useClipboard' ] ,
21- outputs : [ 'contentsizechanged' , 'beforeedit' , 'beforerangeedit' , 'afteredit' , 'beforeautofill' , 'beforerange' , 'afterfocus' , 'roworderchanged' , 'beforesorting' , 'beforesourcesortingapply' , 'beforesortingapply' , 'rowdragstart' , 'headerclick' , 'beforecellfocus' , 'beforefocuslost' , 'beforesourceset' , 'beforeanysource' , 'aftersourceset' , 'afteranysource' , 'beforecolumnsset' , 'beforecolumnapplied' , 'aftercolumnsset' , 'beforefilterapply' , 'beforefiltertrimmed' , 'beforetrimmed' , 'aftertrimmed' , 'viewportscroll' , 'beforeexport' , 'beforeeditstart' , 'aftercolumnresize' , 'beforerowdefinition' , 'filterconfigchanged' , 'sortingconfigchanged' , 'rowheaderschanged' , 'beforegridrender' , 'aftergridrender' , 'aftergridinit' , 'additionaldatachanged' , 'afterthemechanged' , 'created' ] ,
20+ inputs : [ 'accessible' , 'additionalData' , 'applyOnClose' , 'autoSizeColumn' , 'canDrag' , 'canFocus' , 'canMoveColumns' , 'colSize' , 'columnTypes' , 'columns' , 'disableVirtualX' , 'disableVirtualY' , 'editors' , 'exporting' , 'filter' , 'focusTemplate' , 'frameSize' , 'grouping' , 'hideAttribution' , 'jobsBeforeRender' , 'noHorizontalScrollTransfer' , ' pinnedBottomSource', 'pinnedTopSource' , 'plugins' , 'range' , 'readonly' , 'registerVNode' , 'resize' , 'rowClass' , 'rowDefinitions' , 'rowHeaders' , 'rowSize' , 'rtl' , 'sorting' , 'source' , 'stretch' , 'theme' , 'trimmedRows' , 'useClipboard' ] ,
21+ outputs : [ 'contentsizechanged' , 'beforeedit' , 'beforerangeedit' , 'afteredit' , 'beforeautofill' , 'beforerange' , 'afterfocus' , 'roworderchanged' , 'beforesorting' , 'beforesourcesortingapply' , 'beforesortingapply' , 'rowdragstart' , 'headerclick' , 'beforecellfocus' , 'beforefocuslost' , 'beforesourceset' , 'beforeanysource' , 'aftersourceset' , 'afteranysource' , 'beforecolumnsgather' , ' beforecolumnsset', 'beforecolumnapplied' , 'aftercolumnsset' , 'beforefilterapply' , 'beforefiltertrimmed' , 'beforetrimmed' , 'aftertrimmed' , 'viewportscroll' , 'beforeexport' , 'beforeeditstart' , 'aftercolumnresize' , 'beforerowdefinition' , 'filterconfigchanged' , 'sortingconfigchanged' , 'rowheaderschanged' , 'beforegridrender' , 'aftergridrender' , 'aftergridinit' , 'additionaldatachanged' , 'afterthemechanged' , 'created' ] ,
2222} )
2323export class RevoGrid {
2424 protected el : HTMLRevoGridElement ;
@@ -41,6 +41,7 @@ export class RevoGrid {
4141 @Output ( ) beforeanysource = new EventEmitter < CustomEvent < { type : IRevoGridDimensionRows ; source : IRevoGridDataType [ ] ; } > > ( ) ;
4242 @Output ( ) aftersourceset = new EventEmitter < CustomEvent < { type : IRevoGridDimensionRows ; source : IRevoGridDataType [ ] ; } > > ( ) ;
4343 @Output ( ) afteranysource = new EventEmitter < CustomEvent < { type : IRevoGridDimensionRows ; source : IRevoGridDataType [ ] ; } > > ( ) ;
44+ @Output ( ) beforecolumnsgather = new EventEmitter < CustomEvent < { columns : ( IRevoGridColumnGrouping | IRevoGridColumnRegular ) [ ] ; } > > ( ) ;
4445 @Output ( ) beforecolumnsset = new EventEmitter < CustomEvent < IRevoGridColumnCollection > > ( ) ;
4546 @Output ( ) beforecolumnapplied = new EventEmitter < CustomEvent < IRevoGridColumnCollection > > ( ) ;
4647 @Output ( ) aftercolumnsset = new EventEmitter < CustomEvent < { columns : IRevoGridColumnCollection ; order : IRevoGridSortingOrder ; } > > ( ) ;
@@ -81,6 +82,7 @@ import type { SortingOrder as IRevoGridSortingOrder } from '@revolist/revogrid/s
8182import type { RowDragStartDetails as IRevoGridRowDragStartDetails } from '@revolist/revogrid/standalone' ;
8283import type { FocusedData as IRevoGridFocusedData } from '@revolist/revogrid/standalone' ;
8384import type { DataType as IRevoGridDataType } from '@revolist/revogrid/standalone' ;
85+ import type { ColumnGrouping as IRevoGridColumnGrouping } from '@revolist/revogrid/standalone' ;
8486import type { ColumnCollection as IRevoGridColumnCollection } from '@revolist/revogrid/standalone' ;
8587import type { ColumnProp as IRevoGridColumnProp } from '@revolist/revogrid/standalone' ;
8688import type { FilterCollectionItem as IRevoGridFilterCollectionItem } from '@revolist/revogrid/standalone' ;
@@ -191,6 +193,11 @@ You can override data source here
191193Useful for tracking all changes originating from sources in both the pinned and main viewports.
192194 */
193195 afteranysource : EventEmitter < CustomEvent < { type : IRevoGridDimensionRows ; source : IRevoGridDataType [ ] ; } > > ;
196+ /**
197+ * Emitted before user column definitions are gathered into the internal column collection.
198+ Listeners can replace `detail.columns` to rewrite the raw column set before RevoGrid normalizes it.
199+ */
200+ beforecolumnsgather : EventEmitter < CustomEvent < { columns : ( IRevoGridColumnGrouping | IRevoGridColumnRegular ) [ ] ; } > > ;
194201 /**
195202 * Emitted before a column update is applied.
196203Listeners can use this event to perform any necessary actions or modifications before the column update is finalized.
0 commit comments