Skip to content

Commit 64dd206

Browse files
authored
Merge branch '8.1.x' into mkirova/fix-4719-8.1.x
2 parents 8bb8913 + 303652c commit 64dd206

17 files changed

+410
-94
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ All notable changes for each version of this project will be documented in this
2626
```
2727
- `igx-paginator`
2828
- Replaces the current paginator in all grids. Can be used as a standalone component.
29+
<br/>Have in mind that if you have set the `paginationTemplate`, you may have to modify your css to display the pagination correctly. The style should be something similar to:
30+
```
31+
.pagination-container {
32+
display: flex;
33+
justify-content: center;
34+
align-items: center;
35+
}
36+
```
2937
- `IgxCombo`
3038
- Input `[overlaySettings]` - allows an object of type `OverlaySettings` to be passed. These custom overlay settings control how the drop-down list displays.
3139
- `IgxForOf` now offers usage of local variables `even`, `odd`, `first` and `last` to help with the distinction of the currently iterated element.

ROADMAP.md

Lines changed: 73 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,82 @@
22

33
# Current Milestone
44

5-
## Milestone 8 (Due by July, 2019)
5+
## Milestone 9 (Due by September, 2019)
6+
7+
1. IgxGrid Advanced Filtering [#5496](https://github.com/IgniteUI/igniteui-angular/issues/5496)
8+
2. IgxGrid row and cell selection modes [#4989](https://github.com/IgniteUI/igniteui-angular/issues/4989)
9+
3. Fluent Theme [#5335](https://github.com/IgniteUI/igniteui-angular/issues/5335)
10+
4. Drag and Drop enhancements [#5319](https://github.com/IgniteUI/igniteui-angular/issues/5319)
11+
12+
## Going down the road
13+
14+
1. Row-pinning
15+
2. Column Groups expand/collapse, with column grouping templates
16+
3. Visual Cell merging
17+
18+
# Previous Milestones
19+
20+
## Milestone 8 (Released July 22nd, 2019)
621

722
1. **[DONE]** Grid Multi-Row Layout keyboard nav [#4708](https://github.com/IgniteUI/igniteui-angular/issues/4708) Released in [8.0.0](https://github.com/IgniteUI/igniteui-angular/releases/tag/8.0.0), [7.3.4](https://github.com/IgniteUI/igniteui-angular/releases/tag/7.3.4)
823
2. **[DONE]** Angular 8 compatibility [#4908](https://github.com/IgniteUI/igniteui-angular/issues/4908) Released in [8.0.0](https://github.com/IgniteUI/igniteui-angular/releases/tag/8.0.0)
924
3. **[DONE]** Display density for Drop Downs [#2960](https://github.com/IgniteUI/igniteui-angular/issues/2960) Released in [8.0.1](https://github.com/IgniteUI/igniteui-angular/releases/tag/8.0.1), [7.3.4](https://github.com/IgniteUI/igniteui-angular/releases/tag/7.3.4), [7.2.12](https://github.com/IgniteUI/igniteui-angular/releases/tag/7.2.12)
10-
4. Slider custom labels #4594
11-
5. Copy data from the igxGrid #4907
12-
6. BottomNav and Tabs integration with router outlet container [#4297](https://github.com/IgniteUI/igniteui-angular/issues/4297)
25+
4. **[DONE]** Slider custom labels [#4594](https://github.com/IgniteUI/igniteui-angular/issues/4594)
26+
5. **[DONE]** Copy data from the igxGrid [#4907](https://github.com/IgniteUI/igniteui-angular/issues/4907)
27+
6. **[DONE]** BottomNav and Tabs integration with router outlet container [#4297](https://github.com/IgniteUI/igniteui-angular/issues/4297)
1328
7. **[DONE]** Date/Time pickers action buttons customization [#4647](https://github.com/IgniteUI/igniteui-angular/issues/4647) Released in [8.0.0](https://github.com/IgniteUI/igniteui-angular/releases/tag/8.0.0)
1429
8. **[DONE]** Square and oval presets in theming [#4964](https://github.com/IgniteUI/igniteui-angular/issues/4964) Released in [8.0.0](https://github.com/IgniteUI/igniteui-angular/releases/tag/8.0.0)
15-
9. Grid column group header templates [#3344](https://github.com/IgniteUI/igniteui-angular/issues/3344)
30+
9. **[DONE]** Grid column group header templates [#3344](https://github.com/IgniteUI/igniteui-angular/issues/3344)
1631

32+
## Milestone 7 (13.05.2019)
1733

18-
## Going down the road
34+
1. **[DONE]** Multi-cell Selection #3915
35+
2. **[DONE]** Grid Multi-Row Layout #4384
36+
3. **[DONE]** Grid Row Dragging #3993
37+
3. **[DONE]** List, button, button group display density support #4393 #4502 #4532
1938

20-
1. Advanced Filtering
21-
2. Row-pinning
22-
3. Column Groups expand/collapse, with column grouping templates
23-
4. Visual Cell merging
39+
## Milestone 6 (Due March 8th, 2019)
2440

41+
1. **[DONE]** Hierarchical Grid #827
42+
2. **[DROPPED]** igxGrid rendering strategies (like record-based rendering) #2384
43+
3. **[DONE]** Auto-complete (inline editable) #3585
44+
4. **[DONE]** Excel Style Filtering #3592
45+
5. **[DONE]** Inline date and time pickers (with drop down/toggle) #3034 #2337
46+
6. **[DONE]** igxSelect Component #3148
2547

26-
# Previous Milestones
48+
## Milestone 5 (14.12.2018)
2749

28-
## Milestone 1 (by January 15th, 2018)
50+
1. **[DONE]** TreeGrid summaries
51+
2. **[DONE]** Grid GroupBy summaries
52+
3. **[DONE]** Banner Component [issue](https://github.com/IgniteUI/igniteui-angular/issues/2672)
53+
4. **[DONE]** Toolbar Templatable and NavBar Templatable
54+
55+
## Milestone 4 (November 30th, 2018)
56+
57+
1. **[Done]** Tree Grid [issue](https://github.com/IgniteUI/igniteui-angular/issues/2530)
58+
2. **[Done]** Quick Per-column Search in the igxGrid [issue](https://github.com/IgniteUI/igniteui-angular/issues/542)
59+
3. **[Done]** Expandable Panel [issue](https://github.com/IgniteUI/igniteui-angular/issues/307)
60+
4. **[Done]** Conditional Cell Styling capability [issue](https://github.com/IgniteUI/igniteui-angular/issues/1079)
61+
5. **[Done]** igxTypography for theming
62+
6. **[Done]** Tooltip [issue](https://github.com/IgniteUI/igniteui-angular/issues/1710)
63+
7. **[Removed]** Vertical Tabs - material doesn't define vertical tabs
64+
8. **[Done]** Row Editing with transactions (Batch editing) [issue](https://github.com/IgniteUI/igniteui-angular/issues/566)
65+
9. **[Done]** Adding Disabled Dates and Special Dates options in igxCalander [issue](https://github.com/IgniteUI/igniteui-angular/issues/1980)
66+
10. **[Done]** Drag and Drop Directive
67+
68+
## Milestone 3 (by July 6th, 2018)
69+
70+
1. **[DONE]** Grouping
71+
2. **[DONE]** Grid Multi-column Headers [issue](https://github.com/IgniteUI/igniteui-angular/issues/488)
72+
3. **[DONE]** Combo
73+
4. **[DONE]** Column Hiding UI
74+
5. **[DONE]** Operations UI - column chooser
75+
6. **[DONE]** Advanced Filtering
76+
7. **[DONE]** Column Moving
77+
8. **[DONE]** Update to Angular 6
78+
9. **[DONE]** Design: Release Updated Design System (Sketch UI kits, UI patterns, screens, documentation)
79+
10. **[DONE]** Design: Data dense theme for data grid
2980

30-
1. **[DONE]** Row objects - 1st sprint (by November 20th, 2017) [issue](https://github.com/IgniteUI/igniteui-angular/issues/479)
31-
In order to implement virtualization in the Grid, we would need a row object to be abstracted.
32-
2. **[DONE]** Cell objects - 2nd sprint (by December 11th, 2017) [issue](https://github.com/IgniteUI/igniteui-angular/issues/480)
33-
3. **[DONE]** Grid Row virtualization - after row objects and virtualization are implemented
34-
4. **[DONE]** Grid Column virtualization - after row objects and column component refactoring are done
35-
This feature enables Grid columns to be virtualized. The feature splits records into parts, and only a certain part of the record is rendered.
36-
5. **[DONE]** Alternating row style [issue](https://github.com/IgniteUI/igniteui-angular/issues/489)
37-
6. **[DONE]** Ignite UI CLI integration [issue](https://github.com/IgniteUI/ignite-ui-cli/issues/53)
38-
Ignite UI CLI will also provide Ignite UI for Angular templates, views, and components integration. All features of the CLI will be accessible in the context of Ignite UI for Angular, as well as the full Ignite UI product suite.
39-
4081
## Milestone 2 (due April 25th, 2018)
4182

4283
1. **[DONE]** Expanding Ignite UI CLI views and templates with Ignite UI for Angular
@@ -57,52 +98,14 @@
5798
13. **[DONE]** Charting: Category Chart types Line (Area, Column, Point, StepLine, StepArea, Spline, SplineArea, Waterfall
5899
14. **[DONE]** Charting: Financial Chart types
59100

101+
## Milestone 1 (by January 15th, 2018)
60102

61-
## Milestone 3 (by July 6th, 2018)
62-
63-
1. **[DONE]** Grouping
64-
2. **[DONE]** Grid Multi-column Headers [issue](https://github.com/IgniteUI/igniteui-angular/issues/488)
65-
3. **[DONE]** Combo
66-
4. **[DONE]** Column Hiding UI
67-
5. **[DONE]** Operations UI - column chooser
68-
6. **[DONE]** Advanced Filtering
69-
7. **[DONE]** Column Moving
70-
8. **[DONE]** Update to Angular 6
71-
9. **[DONE]** Design: Release Updated Design System (Sketch UI kits, UI patterns, screens, documentation)
72-
10. **[DONE]** Design: Data dense theme for data grid
73-
74-
## Milestone 4 (November 30th, 2018)
75-
76-
1. **[Done]** Tree Grid [issue](https://github.com/IgniteUI/igniteui-angular/issues/2530)
77-
2. **[Done]** Quick Per-column Search in the igxGrid [issue](https://github.com/IgniteUI/igniteui-angular/issues/542)
78-
3. **[Done]** Expandable Panel [issue](https://github.com/IgniteUI/igniteui-angular/issues/307)
79-
4. **[Done]** Conditional Cell Styling capability [issue](https://github.com/IgniteUI/igniteui-angular/issues/1079)
80-
5. **[Done]** igxTypography for theming
81-
6. **[Done]** Tooltip [issue](https://github.com/IgniteUI/igniteui-angular/issues/1710)
82-
7. **[Removed]** Vertical Tabs - material doesn't define vertical tabs
83-
8. **[Done]** Row Editing with transactions (Batch editing) [issue](https://github.com/IgniteUI/igniteui-angular/issues/566)
84-
9. **[Done]** Adding Disabled Dates and Special Dates options in igxCalander [issue](https://github.com/IgniteUI/igniteui-angular/issues/1980)
85-
10. **[Done]** Drag and Drop Directive
86-
87-
## Milestone 5 (14.12.2018)
88-
89-
1. **[DONE]** TreeGrid summaries
90-
2. **[DONE]** Grid GroupBy summaries
91-
3. **[DONE]** Banner Component [issue](https://github.com/IgniteUI/igniteui-angular/issues/2672)
92-
4. **[DONE]** Toolbar Templatable and NavBar Templatable
93-
94-
## Milestone 6 (Due March 8th, 2019)
95-
96-
1. **[DONE]** Hierarchical Grid #827
97-
2. **[DROPPED]** igxGrid rendering strategies (like record-based rendering) #2384
98-
3. **[DONE]** Auto-complete (inline editable) #3585
99-
4. **[DONE]** Excel Style Filtering #3592
100-
5. **[DONE]** Inline date and time pickers (with drop down/toggle) #3034 #2337
101-
6. **[DONE]** igxSelect Component #3148
102-
103-
## Milestone 7 (13.05.2019)
104-
105-
1. **[DONE]** Multi-cell Selection #3915
106-
2. **[DONE]** Grid Multi-Row Layout #4384
107-
3. **[DONE]** Grid Row Dragging #3993
108-
3. **[DONE]** List, button, button group display density support #4393 #4502 #4532
103+
1. **[DONE]** Row objects - 1st sprint (by November 20th, 2017) [issue](https://github.com/IgniteUI/igniteui-angular/issues/479)
104+
In order to implement virtualization in the Grid, we would need a row object to be abstracted.
105+
2. **[DONE]** Cell objects - 2nd sprint (by December 11th, 2017) [issue](https://github.com/IgniteUI/igniteui-angular/issues/480)
106+
3. **[DONE]** Grid Row virtualization - after row objects and virtualization are implemented
107+
4. **[DONE]** Grid Column virtualization - after row objects and column component refactoring are done
108+
This feature enables Grid columns to be virtualized. The feature splits records into parts, and only a certain part of the record is rendered.
109+
5. **[DONE]** Alternating row style [issue](https://github.com/IgniteUI/igniteui-angular/issues/489)
110+
6. **[DONE]** Ignite UI CLI integration [issue](https://github.com/IgniteUI/ignite-ui-cli/issues/53)
111+
Ignite UI CLI will also provide Ignite UI for Angular templates, views, and components integration. All features of the CLI will be accessible in the context of Ignite UI for Angular, as well as the full Ignite UI product suite.

projects/igniteui-angular/src/lib/core/styles/components/checkbox/_checkbox-theme.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@
121121
}
122122

123123
%cbx-composite-wrapper {
124+
position: relative;
124125
width: $size;
125126
height: $size;
126127
}

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

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import { IgxCheckboxComponent } from './../checkbox/checkbox.component';
4949
import { GridBaseAPIService } from './api.service';
5050
import { IgxGridCellComponent } from './cell.component';
5151
import { IColumnVisibilityChangedEventArgs } from './column-hiding-item.directive';
52-
import { IgxColumnComponent } from './column.component';
52+
import { IgxColumnComponent, IgxColumnGroupComponent } from './column.component';
5353
import { ISummaryExpression } from './summaries/grid-summary';
5454
import { DropPosition, ContainerPositioningStrategy, IgxDecimalPipeComponent, IgxDatePipeComponent } from './grid.common';
5555
import { IgxGridToolbarComponent } from './grid-toolbar.component';
@@ -566,7 +566,7 @@ export abstract class IgxGridBaseComponent extends DisplayDensityBase implements
566566

567567
@Input()
568568
get rowDraggable(): boolean {
569-
return this._rowDrag;
569+
return this._rowDrag && this.hasVisibleColumns;
570570
}
571571

572572
/**
@@ -2500,6 +2500,10 @@ export abstract class IgxGridBaseComponent extends DisplayDensityBase implements
25002500
* @hidden
25012501
*/
25022502
protected _wheelListener = null;
2503+
/**
2504+
* @hidden
2505+
*/
2506+
protected _hasVisibleColumns;
25032507
protected _allowFiltering = false;
25042508
protected _filterMode = FilterMode.quickFilter;
25052509
private resizeHandler;
@@ -2777,6 +2781,7 @@ export abstract class IgxGridBaseComponent extends DisplayDensityBase implements
27772781
this.resetColumnsCaches();
27782782
this.resetColumnCollections();
27792783
this.resetCachedWidths();
2784+
this.hasVisibleColumns = undefined;
27802785
this._columnGroups = this.columnList.some(col => col.columnGroup);
27812786
}
27822787

@@ -3313,7 +3318,7 @@ export abstract class IgxGridBaseComponent extends DisplayDensityBase implements
33133318
}
33143319

33153320
get showRowCheckboxes(): boolean {
3316-
return this.rowSelectable && this.columns.length > this.hiddenColumnsCount;
3321+
return this.rowSelectable && this.hasVisibleColumns;
33173322
}
33183323

33193324
/**
@@ -3939,6 +3944,20 @@ export abstract class IgxGridBaseComponent extends DisplayDensityBase implements
39393944
get rootSummariesEnabled(): boolean {
39403945
return this.summaryCalculationMode !== GridSummaryCalculationMode.childLevelsOnly;
39413946
}
3947+
3948+
/**
3949+
* @hidden
3950+
*/
3951+
get hasVisibleColumns(): boolean {
3952+
if (this._hasVisibleColumns === undefined) {
3953+
return this.columnList ? this.columnList.some(c => !c.hidden) : false;
3954+
}
3955+
return this._hasVisibleColumns;
3956+
}
3957+
3958+
set hasVisibleColumns(value) {
3959+
this._hasVisibleColumns = value;
3960+
}
39423961
/**
39433962
* Returns if the `IgxGridComponent` has moveable columns.
39443963
* ```typescript
@@ -4284,12 +4303,16 @@ export abstract class IgxGridBaseComponent extends DisplayDensityBase implements
42844303
added = true;
42854304
});
42864305

4287-
diff.forEachRemovedItem((record: IterableChangeRecord<IgxColumnComponent>) => {
4288-
// Clear Filtering
4289-
this.gridAPI.clear_filter(record.item.field);
4306+
diff.forEachRemovedItem((record: IterableChangeRecord<IgxColumnComponent | IgxColumnGroupComponent>) => {
4307+
const isColumnGroup = record.item instanceof IgxColumnGroupComponent;
4308+
if (!isColumnGroup) {
4309+
// Clear Filtering
4310+
this.gridAPI.clear_filter(record.item.field);
4311+
4312+
// Clear Sorting
4313+
this.gridAPI.clear_sort(record.item.field);
4314+
}
42904315

4291-
// Clear Sorting
4292-
this.gridAPI.clear_sort(record.item.field);
42934316
removed = true;
42944317
});
42954318

@@ -4626,7 +4649,7 @@ export abstract class IgxGridBaseComponent extends DisplayDensityBase implements
46264649
* @hidden
46274650
*/
46284651
public updateHeaderCheckboxStatusOnFilter(data) {
4629-
if (!data) {
4652+
if (!data || !this.hasVisibleColumns || !this.headerCheckbox) {
46304653
this.checkHeaderCheckboxStatus();
46314654
return;
46324655
}

projects/igniteui-angular/src/lib/grids/grid-common.pipes.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,17 @@ export class IgxGridPaginatorOptionsPipe implements PipeTransform {
9898
return Array.from(new Set([...values])).sort((a, b) => a - b);
9999
}
100100
}
101+
102+
@Pipe({
103+
name: 'visibleColumns',
104+
pure: true
105+
})
106+
export class IgxHasVisibleColumnsPipe implements PipeTransform {
107+
transform(values: any[], hasVisibleColumns) {
108+
if (!(values && values.length)) {
109+
return values;
110+
}
111+
return hasVisibleColumns ? values : [];
112+
}
113+
114+
}

projects/igniteui-angular/src/lib/grids/grid-pipes.module.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import {
77
IgxGridNotGroupedPipe,
88
IgxGridTopLevelColumns,
99
IgxGridCellStylesPipe,
10-
IgxGridPaginatorOptionsPipe
10+
IgxGridPaginatorOptionsPipe,
11+
IgxHasVisibleColumnsPipe
1112
} from './grid-common.pipes';
1213

1314
@NgModule({
@@ -19,7 +20,8 @@ import {
1920
IgxGridNotGroupedPipe,
2021
IgxGridTopLevelColumns,
2122
IgxGridCellStylesPipe,
22-
IgxGridPaginatorOptionsPipe
23+
IgxGridPaginatorOptionsPipe,
24+
IgxHasVisibleColumnsPipe
2325
],
2426
exports: [
2527
IgxDatePipeComponent,
@@ -29,7 +31,8 @@ import {
2931
IgxGridNotGroupedPipe,
3032
IgxGridTopLevelColumns,
3133
IgxGridCellStylesPipe,
32-
IgxGridPaginatorOptionsPipe
34+
IgxGridPaginatorOptionsPipe,
35+
IgxHasVisibleColumnsPipe
3336
],
3437
imports: [
3538
CommonModule

0 commit comments

Comments
 (0)