Skip to content

Commit 91cb7a8

Browse files
MayaKirovampavlinov
authored andcommitted
Re-emitting events from child grid to related Row Island. (#5663)
* fix(igxHierarchicalGrid): Re-emitting events from child grid to related RI. * chore(*): Adding IBaseEventArgs for grid events. * chore(*): Adding IBaseEventArgs for other component event args. * chore(*): Renaming owner to context in IBaseEventArgs, since argument owner already exists in some of the EventArgs (IRowDragStartEventArgs, IRowDragEndEventArgs, IgxDropLeaveEventArgs, IgxDragCustomEventDetails etc.). * chore(*): Updating sample and tests with new event arg. * chore(*): Adding test for event re-emitting from child to row island. * chore(*): Renaming base event arg to owner. Introducing breaking change for IRowDragEndEventArgs/IRowDragStartEventArgs. * chore(*): Updating Change Log.
1 parent 7018ae6 commit 91cb7a8

File tree

48 files changed

+198
-102
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+198
-102
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,16 @@ All notable changes for each version of this project will be documented in this
88
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
99
- `uniqueColumnValuesStrategy` input is added. This property provides a callback for loading unique column values on demand. If this property is provided, the unique values it generates will be used by the Excel Style Filtering (instead of using the unique values from the data that is bound to the grid).
1010
- `igxExcelStyleLoading` directive is added, which can be used to provide a custom loading template for the Excel Style Filtering. If this property is not provided, a default loading template will be used instead.
11+
- `IgxHierarchicalGrid`
12+
- Row Islands now emit child grid events with an additional argument - `owner`, which holds reference to the related child grid component instance.
13+
1114
### General
1215
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
1316
- **Breaking Change** `igxExcelStyleSortingTemplate` directive is renamed to `igxExcelStyleSorting`.
1417
- **Breaking Change** `igxExcelStyleMovingTemplate` directive is renamed to `igxExcelStyleMoving`.
1518
- **Breaking Change** `igxExcelStyleHidingTemplate` directive is renamed to `igxExcelStyleHiding`.
1619
- **Breaking Change** `igxExcelStylePinningTemplate` directive is renamed to `igxExcelStylePinning`.
20+
- **Breaking Change** `onRowDragEnd` and `onRowDragStart` event arguments are changed - `owner` now holds reference to the grid component instance, while `dragDirective` hold reference to the drag directive.
1721
- `IgxCombo`
1822
- Combo selection is now consistent when `valueKey` is defined. When `valueKey` is specified, selection is based on the value keys of the items. For example:
1923
```html

projects/igniteui-angular/src/lib/banner/banner.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import { IgxButtonModule } from '../directives/button/button.directive';
99
import { IgxRippleModule } from '../directives/ripple/ripple.directive';
1010
import { IgxBannerActionsDirective } from './banner.directives';
1111
import { CommonModule } from '@angular/common';
12-
import { CancelableEventArgs } from '../core/utils';
12+
import { CancelableEventArgs, IBaseEventArgs } from '../core/utils';
1313

14-
export interface BannerEventArgs {
14+
export interface BannerEventArgs extends IBaseEventArgs {
1515
banner: IgxBannerComponent;
1616
event?: Event;
1717
}

projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { IgxRippleModule } from '../directives/ripple/ripple.directive';
2323
import { IgxIconModule } from '../icon/index';
2424
import { takeUntil } from 'rxjs/operators';
2525
import { DisplayDensityBase, DisplayDensityToken, IDisplayDensityOptions, DisplayDensity } from '../core/density';
26+
import { IBaseEventArgs } from '../core/utils';
2627

2728
export enum ButtonGroupAlignment { horizontal, vertical }
2829
let NEXT_ID = 0;
@@ -424,7 +425,7 @@ export class IgxButtonGroupComponent extends DisplayDensityBase implements After
424425
}
425426
}
426427

427-
export interface IButtonGroupEventArgs {
428+
export interface IButtonGroupEventArgs extends IBaseEventArgs {
428429
button: IgxButtonDirective;
429430
index: number;
430431
}

projects/igniteui-angular/src/lib/carousel/carousel.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
Output
1313
} from '@angular/core';
1414
import { IgxIconModule } from '../icon/index';
15+
import { IBaseEventArgs } from '../core/utils';
1516

1617
let NEXT_ID = 0;
1718

@@ -560,7 +561,7 @@ export class IgxSlideComponent implements OnInit, OnDestroy {
560561
}
561562
}
562563

563-
export interface ISlideEventArgs {
564+
export interface ISlideEventArgs extends IBaseEventArgs {
564565
carousel: IgxCarouselComponent;
565566
slide: IgxSlideComponent;
566567
}

projects/igniteui-angular/src/lib/checkbox/checkbox.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ import {
1313
} from '@angular/core';
1414
import { CheckboxRequiredValidator, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
1515
import { IgxRippleModule } from '../directives/ripple/ripple.directive';
16-
import { isIE } from '../core/utils';
16+
import { isIE, IBaseEventArgs } from '../core/utils';
1717
import { EditorProvider } from '../core/edit-provider';
1818

1919
export enum LabelPosition {
2020
BEFORE = 'before',
2121
AFTER = 'after'
2222
}
2323

24-
export interface IChangeCheckboxEventArgs {
24+
export interface IChangeCheckboxEventArgs extends IBaseEventArgs {
2525
checked: boolean;
2626
checkbox: IgxCheckboxComponent;
2727
}

projects/igniteui-angular/src/lib/chips/chip.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ import {
2020
IgxDropEnterEventArgs,
2121
IgxDropEventArgs
2222
} from '../directives/drag-drop/drag-drop.directive';
23+
import { IBaseEventArgs } from '../core/utils';
2324

2425

25-
export interface IBaseChipEventArgs {
26+
export interface IBaseChipEventArgs extends IBaseEventArgs {
2627
originalEvent: PointerEvent | MouseEvent | TouchEvent | KeyboardEvent | IgxDropEnterEventArgs;
2728
owner: IgxChipComponent;
2829
}

projects/igniteui-angular/src/lib/combo/combo.component.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {
1717
import { FormsModule, ReactiveFormsModule, ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, AbstractControl } from '@angular/forms';
1818
import { IgxCheckboxModule } from '../checkbox/checkbox.component';
1919
import { IgxSelectionAPIService } from '../core/selection';
20-
import { cloneArray, CancelableEventArgs, CancelableBrowserEventArgs } from '../core/utils';
20+
import { cloneArray, CancelableEventArgs, CancelableBrowserEventArgs, IBaseEventArgs } from '../core/utils';
2121
import { IgxStringFilteringOperand, IgxBooleanFilteringOperand } from '../data-operations/filtering-condition';
2222
import { FilteringLogic, IFilteringExpression } from '../data-operations/filtering-expression.interface';
2323
import { SortingDirection, ISortingExpression } from '../data-operations/sorting-expression.interface';
@@ -85,7 +85,7 @@ export enum IgxComboState {
8585
}
8686

8787
/** Event emitted when an igx-combo's selection is changing */
88-
export interface IComboSelectionChangeEventArgs extends CancelableEventArgs {
88+
export interface IComboSelectionChangeEventArgs extends CancelableEventArgs, IBaseEventArgs {
8989
/** An array containing the values that are currently selected */
9090
oldSelection: any[];
9191
/** An array containing the values that will be selected after this event */
@@ -98,7 +98,7 @@ export interface IComboSelectionChangeEventArgs extends CancelableEventArgs {
9898
event?: Event;
9999
}
100100

101-
export interface IComboItemAdditionEvent {
101+
export interface IComboItemAdditionEvent extends IBaseEventArgs {
102102
oldCollection: any[];
103103
addedItem: any;
104104
newCollection: any[];
@@ -437,7 +437,7 @@ export class IgxComboComponent extends DisplayDensityBase implements IgxComboBas
437437
* ```
438438
*/
439439
@Output()
440-
public onOpening = new EventEmitter<CancelableEventArgs>();
440+
public onOpening = new EventEmitter<CancelableEventArgs & IBaseEventArgs>();
441441

442442
/**
443443
* Emitted after the dropdown is opened
@@ -457,7 +457,7 @@ export class IgxComboComponent extends DisplayDensityBase implements IgxComboBas
457457
* ```
458458
*/
459459
@Output()
460-
public onClosing = new EventEmitter<CancelableBrowserEventArgs>();
460+
public onClosing = new EventEmitter<CancelableBrowserEventArgs & IBaseEventArgs>();
461461

462462
/**
463463
* Emitted after the dropdown is closed

projects/igniteui-angular/src/lib/core/displayDensity.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { InjectionToken, Input, Output, EventEmitter, DoCheck, OnInit } from '@angular/core';
2+
import { IBaseEventArgs } from './utils';
23

34

45
/**
@@ -17,7 +18,7 @@ export interface IDisplayDensityOptions {
1718
displayDensity: DisplayDensity;
1819
}
1920

20-
export interface IDensityChangedEventArgs {
21+
export interface IDensityChangedEventArgs extends IBaseEventArgs {
2122
oldDensity: DisplayDensity;
2223
newDensity: DisplayDensity;
2324
}

projects/igniteui-angular/src/lib/core/utils.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,13 @@ export interface CancelableEventArgs {
262262
cancel: boolean;
263263
}
264264

265+
export interface IBaseEventArgs {
266+
/**
267+
* Provides reference to the owner component.
268+
*/
269+
owner?: any;
270+
}
271+
265272
export interface CancelableBrowserEventArgs extends CancelableEventArgs {
266273
/** Browser event */
267274
event?: Event;

projects/igniteui-angular/src/lib/data-operations/filtering-expressions-tree.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { IFilteringExpression, FilteringLogic } from './filtering-expression.interface';
2+
import { IBaseEventArgs } from '../core/utils';
23

3-
export declare interface IFilteringExpressionsTree {
4+
export declare interface IFilteringExpressionsTree extends IBaseEventArgs {
45
filteringOperands: (IFilteringExpressionsTree | IFilteringExpression)[];
56
operator: FilteringLogic;
67
fieldName?: string;

0 commit comments

Comments
 (0)