Skip to content

Commit 35474b4

Browse files
authored
Merge branch '18.1.x' into ganastasov/fix-14262-18.1.x
2 parents 15c6812 + d291d13 commit 35474b4

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

projects/igniteui-angular/src/lib/grids/grid-base.directive.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -989,6 +989,11 @@ export abstract class IgxGridBaseDirective implements GridType,
989989
@Output()
990990
public expansionStatesChange = new EventEmitter<Map<any, boolean>>();
991991

992+
/* blazorInclude */
993+
/** @hidden @internal */
994+
@Output()
995+
public selectedRowsChange = new EventEmitter<any[]>();
996+
992997
/**
993998
* Emitted when the expanded state of a row gets changed.
994999
*
@@ -2451,7 +2456,7 @@ export abstract class IgxGridBaseDirective implements GridType,
24512456

24522457
/* blazorByValueArray */
24532458
/* blazorAlwaysWriteback */
2454-
/* @tsTwoWayProperty (true, "RowSelectionChanging", "Detail.NewSelection", false) */
2459+
/* @tsTwoWayProperty (true, "SelectedRowsChange", "Detail", false) */
24552460
/* blazorPrimitiveValue */
24562461
/**
24572462
* Gets/Sets the current selection state.
@@ -3405,6 +3410,9 @@ export abstract class IgxGridBaseDirective implements GridType,
34053410
this._transactions = this.transactionFactory.create(TRANSACTION_TYPE.None);
34063411
this._transactions.cloneStrategy = this.dataCloneStrategy;
34073412
this.cdr.detach();
3413+
this.selectionService.selectedRowsChange.pipe(takeUntil(this.destroy$)).subscribe((args: any[]) => {
3414+
this.selectedRowsChange.emit(args);
3415+
});
34083416
IgcTrialWatermark.register();
34093417
}
34103418

projects/igniteui-angular/src/lib/grids/selection/selection.service.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export class IgxGridSelectionService {
3333
/**
3434
* @hidden @internal
3535
*/
36-
public selectedRowsChange = new Subject<void>();
36+
public selectedRowsChange = new Subject<any[]>();
3737

3838
/**
3939
* Toggled when a pointerdown event is triggered inside the grid body (cells).
@@ -561,14 +561,14 @@ export class IgxGridSelectionService {
561561
}
562562
rowIDs.forEach(rowID => this.rowSelection.add(rowID));
563563
this.clearHeaderCBState();
564-
this.selectedRowsChange.next();
564+
this.selectedRowsChange.next(rowIDs);
565565
}
566566

567567
/** Deselect specified rows. No event is emitted. */
568568
public deselectRowsWithNoEvent(rowIDs: any[]): void {
569569
this.clearHeaderCBState();
570570
rowIDs.forEach(rowID => this.rowSelection.delete(rowID));
571-
this.selectedRowsChange.next();
571+
this.selectedRowsChange.next(this.getSelectedRows());
572572
}
573573

574574
public isRowSelected(rowID): boolean {
@@ -688,7 +688,7 @@ export class IgxGridSelectionService {
688688
this.rowSelection.clear();
689689
this.indeterminateRows.clear();
690690
this.clearHeaderCBState();
691-
this.selectedRowsChange.next();
691+
this.selectedRowsChange.next([]);
692692
}
693693

694694
/** Returns all data in the grid, with applied filtering and sorting and without deleted rows. */

projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid-selection.service.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export class IgxTreeGridSelectionService extends IgxGridSelectionService {
5858
this.indeterminateRows = new Set(this.rowsToBeIndeterminate);
5959
// TODO: emit selectionChangeD event, calculate its args through the handleAddedAndRemovedArgs method
6060
this.clearHeaderCBState();
61-
this.selectedRowsChange.next();
61+
this.selectedRowsChange.next(this.getSelectedRows());
6262
return;
6363
}
6464
const newParents = new Set<any>();
@@ -89,7 +89,7 @@ export class IgxTreeGridSelectionService extends IgxGridSelectionService {
8989
this.rowSelection = new Set(this.rowsToBeSelected);
9090
this.indeterminateRows = new Set(this.rowsToBeIndeterminate);
9191
this.clearHeaderCBState();
92-
this.selectedRowsChange.next();
92+
this.selectedRowsChange.next(this.getSelectedRows());
9393
}
9494

9595
private cascadeDeselectRowsWithNoEvent(rowIDs: any[]): void {
@@ -99,7 +99,7 @@ export class IgxTreeGridSelectionService extends IgxGridSelectionService {
9999
this.rowSelection = new Set(this.rowsToBeSelected);
100100
this.indeterminateRows = new Set(this.rowsToBeIndeterminate);
101101
this.clearHeaderCBState();
102-
this.selectedRowsChange.next();
102+
this.selectedRowsChange.next(this.getSelectedRows());
103103
}
104104

105105
public get selectionService(): IgxGridSelectionService {
@@ -134,7 +134,7 @@ export class IgxTreeGridSelectionService extends IgxGridSelectionService {
134134
this.rowSelection = new Set(this.rowsToBeSelected);
135135
this.indeterminateRows = new Set(this.rowsToBeIndeterminate);
136136
this.clearHeaderCBState();
137-
this.selectedRowsChange.next();
137+
this.selectedRowsChange.next(this.getSelectedRows());
138138
} else {
139139
// select the rows within the modified args.newSelection with no event
140140
this.cascadeSelectRowsWithNoEvent(newSelectionIDs, true);

0 commit comments

Comments
 (0)