Skip to content

Commit bdb0086

Browse files
committed
Merge remote-tracking branch 'remotes/origin/master' into mvenkov/handle_correctly_target_as_point
# Conflicts: # projects/igniteui-angular/src/lib/services/overlay/overlay.ts
2 parents ad8bbbe + 4f04db4 commit bdb0086

File tree

82 files changed

+2104
-914
lines changed

Some content is hidden

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

82 files changed

+2104
-914
lines changed

CHANGELOG.md

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,47 @@ All notable changes for each version of this project will be documented in this
44
## 10.2.0
55

66
### General
7-
- `IgxDatePicker`
8-
- Added `aria-labelledby` property for the input field. This will ensure the users of assistive technologies will also know what component is used for, upon input focus.
7+
- `IgxGridActions`
8+
- Added `asMenuItems` Input for grid actions - `igx-grid-editing-actions`, `igx-grid-pinning-actions`. When set to true will render the related action buttons as separate menu items with button and label.
9+
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
10+
- **Behavioral Change** - The Excel Style Filtering has been reworked to provide filtering experience such as in Excel. This includes the following changes:
11+
- You can close the Excel Style Filtering menu by pressing `Ctrl + Shift + L`.
12+
- You can apply the filter by pressing `Enter`.
13+
- When searching items in the Excel Style Filtering menu, only the rows that match your search term will be filtered in.
14+
- By checking the `Add current selection to filter` option, the new search results will be added to the previously filtered items.
915
- `IgxInputGroup`
1016
- **Breaking Change** - Removed `fluent`, `fluent_search`, `bootstrap`, and `indigo` as possible values for the `type` input property.
1117
- **Behavioral Change** - The styling of the input group is now dictated by the theme being used. The remaining `types` - `line`, `border`, and `box` will only have effect on the styling when used with the `material` theme. The `search` type will affect styling when used with all themes. Changing the theme at runtime will not change the styling of the input group, a page refresh is required.
18+
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
19+
- **Rename outputs**
20+
`onRowEditEnter` to `rowEditEnter`
21+
`onCellEditEnter` to `cellEditEnter`
22+
`onCellEdit` to `cellEdit`
23+
`onRowEdit` to `rowEdit`
24+
- **Breaking Change** - The `onCellEditCancel` event is replaced by the new `cellEditExit` event that emits every time the editable cell exits edit mode.
25+
- **Breaking Change** - The `onRowEditCancel` event is replaced by the new `rowEditExit` event that emits every time the editable row exits edit mode.
1226
- `IgxOverlay`
1327
- **Breaking Change** - `target` property in `PositionSettings` has been deprecated. You can set the attaching target for the component to show in `OverlaySettings` instead.
28+
- `IgxToggleDirective`
29+
- `onAppended`, `onOpened` and `onClosed` events are emitting now arguments of `ToggleViewEventArgs` type.
30+
- `onOpening` and `onClosing` events are emitting now arguments of `ToggleViewCancelableEventArgs` type.
1431
- `IgxSelect`
1532
- Added `aria-labelledby` property for the items list container(marked as `role="listbox"`). This will ensure the users of assistive technologies will also know what the list items container is used for, upon opening.
1633
- `IgxDatePicker`
1734
- **Breaking Change** - Deprecated the `label` property.
18-
- `igxGridActions`
19-
- Added `asMenuItems` Input for grid actions - `igx-grid-editing-actions`, `igx-grid-pinning-actions`. When set to true will render the related action buttons as separate menu items with button and label.
20-
35+
- Added `aria-labelledby` property for the input field. This will ensure the users of assistive technologies will also know what component is used for, upon input focus.
36+
- `igxNavigationDrawer`
37+
- Added `disableAnimation` property which enables/disables the animation, when toggling the drawer. Set to `false` by default.
38+
- `igxTabs`
39+
- Added `disableAnimation` property which enables/disables the transition animation of the tabs' content. Set to `false` by default.
40+
- `IgxExpansionPanel`
41+
- `IExpansionPanelEventArgs.panel` - Deprecated. Usе `owner` property to get a reference to the panel.
2142

2243
### New Features
2344
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
2445
- When triggering an export of the grid via the toolbar and the export takes more than 500 milliseconds, the export button becomes disabled and an indeterminate progress bar is shown at the bottom of the toolbar until the export is finished.
46+
- `cellEditExit` is a new event that fires when cell exits edit mode
47+
- `rowEditExit` is a new event that fires when row exits edit mode
2548
- Added *getRowData(rowSelector)* method that returns an object that represents the data that is contained in the specified row component.
2649
- Added ability to spawn row adding UI through exoposed methods. Note that rowEditing should be enabled.
2750
- `beginAddRow` method which starts the adding row UI.
@@ -54,6 +77,9 @@ All notable changes for each version of this project will be documented in this
5477
- The component now utilizes the `IgxOverlayService` to position itself in the DOM.
5578
- An additional input property `outlet` has been added to allow users to specify custom Overlay Outlets using the `IgxOverlayOutletDirective`;
5679
- The `position` property now accepts values of type `IgxToastPosition` that work with strict templates.
80+
- `IgxExpansionPanelHeader`
81+
- `onInteraction` is now cancelable
82+
- Added `iconRef` property. This can be used to get a reference to the displayed expand/collapsed indicator. Returns `null` if `iconPosition` is set to `NONE`.
5783

5884
## 10.1.0
5985

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
{
2+
"$schema": "../../common/schema/binding.schema.json",
3+
"changes": [
4+
{
5+
"name": "onCellEditCancel",
6+
"replaceWith": "cellEditExit",
7+
"owner": {
8+
"selector": "igx-grid",
9+
"type": "component"
10+
}
11+
},
12+
{
13+
"name": "onCellEditCancel",
14+
"replaceWith": "cellEditExit",
15+
"owner": {
16+
"selector": "igx-tree-grid",
17+
"type": "component"
18+
}
19+
},
20+
{
21+
"name": "onCellEditCancel",
22+
"replaceWith": "cellEditExit",
23+
"owner": {
24+
"selector": "igx-hierarchical-grid",
25+
"type": "component"
26+
}
27+
},
28+
{
29+
"name": "onRowEditCancel",
30+
"replaceWith": "rowEditExit",
31+
"owner": {
32+
"selector": "igx-grid",
33+
"type": "component"
34+
}
35+
},
36+
{
37+
"name": "onRowEditCancel",
38+
"replaceWith": "rowEditExit",
39+
"owner": {
40+
"selector": "igx-tree-grid",
41+
"type": "component"
42+
}
43+
},
44+
{
45+
"name": "onRowEditCancel",
46+
"replaceWith": "rowEditExit",
47+
"owner": {
48+
"selector": "igx-hierarchical-grid",
49+
"type": "component"
50+
}
51+
},
52+
{
53+
"name": "onRowEditEnter",
54+
"replaceWith": "rowEditEnter",
55+
"owner": {
56+
"selector": "igx-grid",
57+
"type": "component"
58+
}
59+
},
60+
{
61+
"name": "onRowEditEnter",
62+
"replaceWith": "rowEditEnter",
63+
"owner": {
64+
"selector": "igx-hierarchical-grid",
65+
"type": "component"
66+
}
67+
},
68+
{
69+
"name": "onRowEditEnter",
70+
"replaceWith": "rowEditEnter",
71+
"owner": {
72+
"selector": "igx-tree-grid",
73+
"type": "component"
74+
}
75+
},
76+
{
77+
"name": "onCellEditEnter",
78+
"replaceWith": "cellEditEnter",
79+
"owner": {
80+
"selector": "igx-grid",
81+
"type": "component"
82+
}
83+
},
84+
{
85+
"name": "onCellEditEnter",
86+
"replaceWith": "cellEditEnter",
87+
"owner": {
88+
"selector": "igx-tree-grid",
89+
"type": "component"
90+
}
91+
},
92+
{
93+
"name": "onCellEditEnter",
94+
"replaceWith": "cellEditEnter",
95+
"owner": {
96+
"selector": "igx-hierarchical-grid",
97+
"type": "component"
98+
}
99+
},
100+
{
101+
"name": "onCellEdit",
102+
"replaceWith": "cellEdit",
103+
"owner": {
104+
"selector": "igx-grid",
105+
"type": "component"
106+
}
107+
},
108+
{
109+
"name": "onCellEdit",
110+
"replaceWith": "cellEdit",
111+
"owner": {
112+
"selector": "igx-tree-grid",
113+
"type": "component"
114+
}
115+
},
116+
{
117+
"name": "onCellEdit",
118+
"replaceWith": "cellEdit",
119+
"owner": {
120+
"selector": "igx-hierarchical-grid",
121+
"type": "component"
122+
}
123+
},
124+
{
125+
"name": "onRowEdit",
126+
"replaceWith": "rowEdit",
127+
"owner": {
128+
"selector": "igx-grid",
129+
"type": "component"
130+
}
131+
},
132+
{
133+
"name": "onRowEdit",
134+
"replaceWith": "rowEdit",
135+
"owner": {
136+
"selector": "igx-hierarchical-grid",
137+
"type": "component"
138+
}
139+
},
140+
{
141+
"name": "onRowEdit",
142+
"replaceWith": "rowEdit",
143+
"owner": {
144+
"selector": "igx-tree-grid",
145+
"type": "component"
146+
}
147+
}
148+
]
149+
}

projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ export class IgxGridEditingActionsComponent extends IgxGridActionsBaseDirective
6969
}
7070
// be sure row is in view
7171
if (grid.rowList.filter(r => r === row).length !== 0) {
72-
grid.crudService.begin(firstEditable);
72+
grid.crudService.enterEditMode(firstEditable);
7373
}
7474
this.strip.hide();
7575
}

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

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import { DisplayDensity } from '../core/density';
1919
import { AbsoluteScrollStrategy, ConnectedPositioningStrategy } from '../services/public_api';
2020
import { IgxSelectionAPIService } from '../core/selection';
2121
import { IgxIconService } from '../icon/public_api';
22-
import { CancelableEventArgs } from '../core/utils';
2322

2423
const CSS_CLASS_COMBO = 'igx-combo';
2524
const CSS_CLASS_COMBO_DROPDOWN = 'igx-combo__drop-down';
@@ -602,6 +601,38 @@ describe('igxCombo', () => {
602601
expect(combo.onSearchInput.emit).toHaveBeenCalledTimes(1);
603602
expect(matchSpy).toHaveBeenCalledTimes(1);
604603
});
604+
it('should not open on click if combo is disabled', () => {
605+
combo = new IgxComboComponent(elementRef, mockCdr, mockSelection as any, mockComboService,
606+
mockIconService, null, null, mockInjector);
607+
const dropdown = jasmine.createSpyObj('IgxComboDropDownComponent', ['open', 'close', 'toggle']);
608+
const spyObj = jasmine.createSpyObj('event', ['stopPropagation', 'preventDefault']);
609+
spyOn(mockIconService, 'addSvgIconFromText').and.returnValue(null);
610+
combo.ngOnInit();
611+
combo.dropdown = dropdown;
612+
dropdown.collapsed = true;
613+
614+
combo.disabled = true;
615+
combo.onInputClick(spyObj);
616+
expect(combo.dropdown.collapsed).toBeTruthy();
617+
});
618+
it('should not clear value when combo is disabled', () => {
619+
const selectionService = new IgxSelectionAPIService();
620+
combo = new IgxComboComponent(elementRef, mockCdr, selectionService, mockComboService,
621+
mockIconService, null, null, mockInjector);
622+
const dropdown = jasmine.createSpyObj('IgxComboDropDownComponent', ['selectItem']);
623+
const spyObj = jasmine.createSpyObj('event', ['stopPropagation']);
624+
spyOn(mockIconService, 'addSvgIconFromText').and.returnValue(null);
625+
combo.ngOnInit();
626+
combo.data = data;
627+
combo.dropdown = dropdown;
628+
combo.disabled = true;
629+
spyOnProperty(combo, 'totalItemCount').and.returnValue(combo.data.length);
630+
631+
const item = combo.data.slice(0, 1);
632+
combo.selectItems(item, true);
633+
combo.handleClearItems(spyObj);
634+
expect(combo.value).toEqual(item[0]);
635+
});
605636
});
606637
describe('Initialization and rendering tests: ', () => {
607638
configureTestSuite();
@@ -2541,13 +2572,6 @@ describe('igxCombo', () => {
25412572
expect(combo.valid).toEqual(IgxComboState.INITIAL);
25422573
expect(combo.comboInput.valid).toEqual(IgxInputState.INITIAL);
25432574
});
2544-
it('should not open on click if combo is disabled', () => {
2545-
combo.disabled = true;
2546-
fixture.detectChanges();
2547-
UIInteractions.simulateClickEvent(combo.comboInput.nativeElement);
2548-
fixture.detectChanges();
2549-
expect(combo.dropdown.collapsed).toBeTruthy();
2550-
});
25512575
it('should be possible to be enabled/disabled when used as a form control', () => {
25522576
const form = fixture.componentInstance.reactiveForm;
25532577
const comboFormReference = form.controls.townCombo;

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

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -185,13 +185,7 @@ export class IgxComboComponent extends DisplayDensityBase implements IgxComboBas
185185
private _remoteSelection = {};
186186
private _onChangeCallback: (_: any) => void = noop;
187187
private _onTouchedCallback: () => void = noop;
188-
private _overlaySettings: OverlaySettings = {
189-
scrollStrategy: new AbsoluteScrollStrategy(),
190-
positionStrategy: new AutoPositionStrategy(),
191-
modal: false,
192-
closeOnOutsideClick: true,
193-
excludePositionTarget: true
194-
};
188+
private _overlaySettings: OverlaySettings;
195189
private _value = '';
196190
private _valid = IgxComboState.INITIAL;
197191
constructor(
@@ -1228,7 +1222,15 @@ export class IgxComboComponent extends DisplayDensityBase implements IgxComboBas
12281222
*/
12291223
public ngOnInit() {
12301224
this.ngControl = this._injector.get<NgControl>(NgControl, null);
1231-
this._overlaySettings.target = this.elementRef.nativeElement;
1225+
const targetElement = this.elementRef.nativeElement;
1226+
this._overlaySettings = {
1227+
target: targetElement,
1228+
scrollStrategy: new AbsoluteScrollStrategy(),
1229+
positionStrategy: new AutoPositionStrategy(),
1230+
modal: false,
1231+
closeOnOutsideClick: true,
1232+
excludeFromOutsideClick: [targetElement as HTMLElement]
1233+
};
12321234
this.selection.set(this.id, new Set());
12331235
this._iconService.addSvgIconFromText(caseSensitiveIcon.name, caseSensitiveIcon.value, 'case-sensitive');
12341236
}
@@ -1324,6 +1326,9 @@ export class IgxComboComponent extends DisplayDensityBase implements IgxComboBas
13241326
* @hidden @internal
13251327
*/
13261328
public handleClearItems(event: Event): void {
1329+
if (this.disabled) {
1330+
return;
1331+
}
13271332
this.deselectAllItems(true, event);
13281333
if (this.collapsed) {
13291334
this.getEditElement().focus();

projects/igniteui-angular/src/lib/core/i18n/grid-resources.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ export interface IGridResourceStrings {
6464
igx_grid_excel_apply?: string;
6565
igx_grid_excel_search_placeholder?: string;
6666
igx_grid_excel_select_all?: string;
67+
igx_grid_excel_select_all_search_results?: string;
68+
igx_grid_excel_add_to_filter?: string;
6769
igx_grid_excel_blanks?: string;
6870
igx_grid_excel_hide?: string;
6971
igx_grid_excel_show?: string;
@@ -174,6 +176,8 @@ export const GridResourceStringsEN: IGridResourceStrings = {
174176
igx_grid_excel_apply: 'apply',
175177
igx_grid_excel_search_placeholder: 'Search',
176178
igx_grid_excel_select_all: 'Select All',
179+
igx_grid_excel_select_all_search_results: 'Select all search results',
180+
igx_grid_excel_add_to_filter: 'Add current selection to filter',
177181
igx_grid_excel_blanks: '(Blanks)',
178182
igx_grid_excel_hide: 'Hide column',
179183
igx_grid_excel_show: 'Show column',

projects/igniteui-angular/src/lib/core/styles/components/action-strip/_action-strip-theme.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
/// @author <a href="https://github.com/simeonoff" target="_blank">Simeon Simeonoff</a>
55
/// @author <a href="https://github.com/desig9stein" target="_blank">Marin Popov</a>
66
////
7-
///
7+
88
/// If only background color is specified, text/icon color will be assigned automatically to a contrasting color.
99
/// @param {Map} $palette [$default-palette] - The palette used as basis for styling the component.
1010
/// @param {Map} $schema [$light-schema] - The schema used as basis for styling the component.

projects/igniteui-angular/src/lib/core/styles/components/navdrawer/_navdrawer-component.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,8 @@
8484
@include e(item, header) {
8585
@extend %item--header !optional;
8686
}
87+
88+
@include m(disable-animation) {
89+
@extend %disable-animation !optional;
90+
}
8791
}

projects/igniteui-angular/src/lib/core/styles/components/navdrawer/_navdrawer-theme.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,10 @@
434434
transition: none;
435435
visibility: hidden;
436436
}
437+
438+
%disable-animation {
439+
transition-duration: 0s;
440+
}
437441
}
438442

439443
/// Adds typography styles for the igx-navdrawer component.

projects/igniteui-angular/src/lib/core/styles/themes/schemas/light/_grid.scss

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -609,7 +609,7 @@ $_bootstrap-grid: extend(
609609
/// @prop {Color} header-text-color [igx-color: 'primary'] - The table header text color.
610610
/// @prop {Map} header-selected-background [igx-color: ('primary', 50)] - The table header background color when selected (ex. column selection).
611611
/// @prop {Map} header-selected-text-color [igx-color: 'primary'] - The table header text color when selected (ex. column selection).
612-
/// @prop {Map} header-border-color [igx-color: ('primary', 100)] - The color used for header borders.
612+
/// @prop {Map} header-border-color [igx-color: ('primary', 500), rgba: .24] - The color used for header borders.
613613
///
614614
/// @prop {Map} filtering-header-text-color [igx-color: ('primary', 900)] - The text color color of the filtered column header.
615615
/// @prop {Map} filtering-background-or [igx-color: 'warn'] - The background color of advanced filtering "OR" condition.
@@ -678,7 +678,8 @@ $_indigo-grid: extend(
678678
),
679679

680680
header-border-color: (
681-
igx-color: ('primary', 100)
681+
igx-color: ('primary', 500),
682+
rgba: .24
682683
),
683684

684685
filtering-header-text-color: (

0 commit comments

Comments
 (0)