Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…into bpenkov/row-selection-templating
  • Loading branch information
jackofdiamond5 committed Jul 31, 2019
2 parents 3c8c632 + 03daa14 commit be86bb9
Show file tree
Hide file tree
Showing 48 changed files with 928 additions and 364 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ All notable changes for each version of this project will be documented in this
```
- `igx-paginator`
- Replaces the current paginator in all grids. Can be used as a standalone component.
<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:
```
.pagination-container {
display: flex;
justify-content: center;
align-items: center;
}
```
- `IgxCombo`
- Input `[overlaySettings]` - allows an object of type `OverlaySettings` to be passed. These custom overlay settings control how the drop-down list displays.
- `IgxForOf` now offers usage of local variables `even`, `odd`, `first` and `last` to help with the distinction of the currently iterated element.
Expand Down
143 changes: 73 additions & 70 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,82 @@

# Current Milestone

## Milestone 8 (Due by July, 2019)
## Milestone 9 (Due by September, 2019)

1. IgxGrid Advanced Filtering [#5496](https://github.com/IgniteUI/igniteui-angular/issues/5496)
2. IgxGrid row and cell selection modes [#4989](https://github.com/IgniteUI/igniteui-angular/issues/4989)
3. Fluent Theme [#5335](https://github.com/IgniteUI/igniteui-angular/issues/5335)
4. Drag and Drop enhancements [#5319](https://github.com/IgniteUI/igniteui-angular/issues/5319)

## Going down the road

1. Row-pinning
2. Column Groups expand/collapse, with column grouping templates
3. Visual Cell merging

# Previous Milestones

## Milestone 8 (Released July 22nd, 2019)

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)
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)
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)
4. Slider custom labels #4594
5. Copy data from the igxGrid #4907
6. BottomNav and Tabs integration with router outlet container [#4297](https://github.com/IgniteUI/igniteui-angular/issues/4297)
4. **[DONE]** Slider custom labels [#4594](https://github.com/IgniteUI/igniteui-angular/issues/4594)
5. **[DONE]** Copy data from the igxGrid [#4907](https://github.com/IgniteUI/igniteui-angular/issues/4907)
6. **[DONE]** BottomNav and Tabs integration with router outlet container [#4297](https://github.com/IgniteUI/igniteui-angular/issues/4297)
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)
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)
9. Grid column group header templates [#3344](https://github.com/IgniteUI/igniteui-angular/issues/3344)
9. **[DONE]** Grid column group header templates [#3344](https://github.com/IgniteUI/igniteui-angular/issues/3344)

## Milestone 7 (13.05.2019)

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

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

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

# Previous Milestones
## Milestone 5 (14.12.2018)

## Milestone 1 (by January 15th, 2018)
1. **[DONE]** TreeGrid summaries
2. **[DONE]** Grid GroupBy summaries
3. **[DONE]** Banner Component [issue](https://github.com/IgniteUI/igniteui-angular/issues/2672)
4. **[DONE]** Toolbar Templatable and NavBar Templatable

## Milestone 4 (November 30th, 2018)

1. **[Done]** Tree Grid [issue](https://github.com/IgniteUI/igniteui-angular/issues/2530)
2. **[Done]** Quick Per-column Search in the igxGrid [issue](https://github.com/IgniteUI/igniteui-angular/issues/542)
3. **[Done]** Expandable Panel [issue](https://github.com/IgniteUI/igniteui-angular/issues/307)
4. **[Done]** Conditional Cell Styling capability [issue](https://github.com/IgniteUI/igniteui-angular/issues/1079)
5. **[Done]** igxTypography for theming
6. **[Done]** Tooltip [issue](https://github.com/IgniteUI/igniteui-angular/issues/1710)
7. **[Removed]** Vertical Tabs - material doesn't define vertical tabs
8. **[Done]** Row Editing with transactions (Batch editing) [issue](https://github.com/IgniteUI/igniteui-angular/issues/566)
9. **[Done]** Adding Disabled Dates and Special Dates options in igxCalander [issue](https://github.com/IgniteUI/igniteui-angular/issues/1980)
10. **[Done]** Drag and Drop Directive

## Milestone 3 (by July 6th, 2018)

1. **[DONE]** Grouping
2. **[DONE]** Grid Multi-column Headers [issue](https://github.com/IgniteUI/igniteui-angular/issues/488)
3. **[DONE]** Combo
4. **[DONE]** Column Hiding UI
5. **[DONE]** Operations UI - column chooser
6. **[DONE]** Advanced Filtering
7. **[DONE]** Column Moving
8. **[DONE]** Update to Angular 6
9. **[DONE]** Design: Release Updated Design System (Sketch UI kits, UI patterns, screens, documentation)
10. **[DONE]** Design: Data dense theme for data grid

1. **[DONE]** Row objects - 1st sprint (by November 20th, 2017) [issue](https://github.com/IgniteUI/igniteui-angular/issues/479)
In order to implement virtualization in the Grid, we would need a row object to be abstracted.
2. **[DONE]** Cell objects - 2nd sprint (by December 11th, 2017) [issue](https://github.com/IgniteUI/igniteui-angular/issues/480)
3. **[DONE]** Grid Row virtualization - after row objects and virtualization are implemented
4. **[DONE]** Grid Column virtualization - after row objects and column component refactoring are done
This feature enables Grid columns to be virtualized. The feature splits records into parts, and only a certain part of the record is rendered.
5. **[DONE]** Alternating row style [issue](https://github.com/IgniteUI/igniteui-angular/issues/489)
6. **[DONE]** Ignite UI CLI integration [issue](https://github.com/IgniteUI/ignite-ui-cli/issues/53)
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.

## Milestone 2 (due April 25th, 2018)

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

## Milestone 1 (by January 15th, 2018)

## Milestone 3 (by July 6th, 2018)

1. **[DONE]** Grouping
2. **[DONE]** Grid Multi-column Headers [issue](https://github.com/IgniteUI/igniteui-angular/issues/488)
3. **[DONE]** Combo
4. **[DONE]** Column Hiding UI
5. **[DONE]** Operations UI - column chooser
6. **[DONE]** Advanced Filtering
7. **[DONE]** Column Moving
8. **[DONE]** Update to Angular 6
9. **[DONE]** Design: Release Updated Design System (Sketch UI kits, UI patterns, screens, documentation)
10. **[DONE]** Design: Data dense theme for data grid

## Milestone 4 (November 30th, 2018)

1. **[Done]** Tree Grid [issue](https://github.com/IgniteUI/igniteui-angular/issues/2530)
2. **[Done]** Quick Per-column Search in the igxGrid [issue](https://github.com/IgniteUI/igniteui-angular/issues/542)
3. **[Done]** Expandable Panel [issue](https://github.com/IgniteUI/igniteui-angular/issues/307)
4. **[Done]** Conditional Cell Styling capability [issue](https://github.com/IgniteUI/igniteui-angular/issues/1079)
5. **[Done]** igxTypography for theming
6. **[Done]** Tooltip [issue](https://github.com/IgniteUI/igniteui-angular/issues/1710)
7. **[Removed]** Vertical Tabs - material doesn't define vertical tabs
8. **[Done]** Row Editing with transactions (Batch editing) [issue](https://github.com/IgniteUI/igniteui-angular/issues/566)
9. **[Done]** Adding Disabled Dates and Special Dates options in igxCalander [issue](https://github.com/IgniteUI/igniteui-angular/issues/1980)
10. **[Done]** Drag and Drop Directive

## Milestone 5 (14.12.2018)

1. **[DONE]** TreeGrid summaries
2. **[DONE]** Grid GroupBy summaries
3. **[DONE]** Banner Component [issue](https://github.com/IgniteUI/igniteui-angular/issues/2672)
4. **[DONE]** Toolbar Templatable and NavBar Templatable

## Milestone 6 (Due March 8th, 2019)

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

## Milestone 7 (13.05.2019)

1. **[DONE]** Multi-cell Selection #3915
2. **[DONE]** Grid Multi-Row Layout #4384
3. **[DONE]** Grid Row Dragging #3993
3. **[DONE]** List, button, button group display density support #4393 #4502 #4532
1. **[DONE]** Row objects - 1st sprint (by November 20th, 2017) [issue](https://github.com/IgniteUI/igniteui-angular/issues/479)
In order to implement virtualization in the Grid, we would need a row object to be abstracted.
2. **[DONE]** Cell objects - 2nd sprint (by December 11th, 2017) [issue](https://github.com/IgniteUI/igniteui-angular/issues/480)
3. **[DONE]** Grid Row virtualization - after row objects and virtualization are implemented
4. **[DONE]** Grid Column virtualization - after row objects and column component refactoring are done
This feature enables Grid columns to be virtualized. The feature splits records into parts, and only a certain part of the record is rendered.
5. **[DONE]** Alternating row style [issue](https://github.com/IgniteUI/igniteui-angular/issues/489)
6. **[DONE]** Ignite UI CLI integration [issue](https://github.com/IgniteUI/ignite-ui-cli/issues/53)
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.
6 changes: 3 additions & 3 deletions projects/igniteui-angular/src/lib/core/grid-selection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ export class IgxGridCRUDService {
return new IgxRow(cell.id.rowID, cell.rowIndex, cell.rowData);
}

sameRow(rowIndex): boolean {
return this.row && this.row.index === rowIndex;
sameRow(rowID): boolean {
return this.row && this.row.id === rowID;
}

sameCell(cell: IgxCell): boolean {
Expand Down Expand Up @@ -175,7 +175,7 @@ export class IgxGridCRUDService {
return;
}

if (this.row && !this.sameRow(this.cell.rowIndex)) {
if (this.row && !this.sameRow(this.cell.id.rowID)) {
this.grid.endEdit(true);
this.cell = this.createCell(cell);
this.beginRowEdit();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@
}

%cbx-composite-wrapper {
position: relative;
width: $size;
height: $size;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@
width: inherit;
height: inherit;
fill: currentColor;

use {
pointer-events: none;
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,41 @@
flex-flow: column wrap;
justify-content: center;
border-radius: --var($theme, 'item-border-radius');
color: --var($theme, 'item-text-color');
background: --var($theme, 'item-background');

&:hover {
color: --var($theme, 'item-text-color-hover');
background: --var($theme, 'item-background-hover');

%igx-list__item-lines {
color: currentColor;
}

%igx-list__item-line-title {
color: --var($theme, 'item-title-color-hover');
}

%igx-list__item-line-subtitle {
color: --var($theme, 'item-subtitle-color-hover');
}

%igx-list__item-actions {
color: --var($theme, 'item-action-color-hover');

%igx-icon-display {
color: --var($theme, 'item-action-color-hover')
}
}

%igx-list__item-thumbnail {
color: --var($theme, 'item-thumbnail-color-hover');

%igx-icon-display {
color: --var($theme, 'item-thumbnail-color-hover')
}
}
}
}

%igx-list-item-pan {
Expand Down Expand Up @@ -381,43 +416,9 @@
align-items: center;
position: relative;
padding: map-get($list-item-padding, 'comfortable');
color: --var($theme, 'item-text-color');
background: --var($theme, 'item-background');
border-radius: --var($theme, 'item-border-radius');
background: inherit;
z-index: 2;

&:hover {
color: --var($theme, 'item-text-color-hover');
background: --var($theme, 'item-background-hover');

%igx-list__item-lines {
color: currentColor;
}

%igx-list__item-line-title {
color: --var($theme, 'item-title-color-hover');
}

%igx-list__item-line-subtitle {
color: --var($theme, 'item-subtitle-color-hover');
}

%igx-list__item-actions {
color: --var($theme, 'item-action-color-hover');

%igx-icon-display {
color: --var($theme, 'item-action-color-hover')
}
}

%igx-list__item-thumbnail {
color: --var($theme, 'item-thumbnail-color-hover');

%igx-icon-display {
color: --var($theme, 'item-thumbnail-color-hover')
}
}
}
}

%igx-list-item-content--compact {
Expand Down
42 changes: 26 additions & 16 deletions projects/igniteui-angular/src/lib/core/styles/themes/_index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -274,17 +274,22 @@
$exclude: (),
$legacy-support: true
) {
$primary: igx-color($palette, 'primary');
$secondary: igx-color($palette, 'secondary');
$grays: igx-color($palette, 'grays');
$surface: igx-color($palette, 'surface');

$light-palette: igx-palette(
$primary: igx-color($palette, 'primary'),
$secondary: igx-color($palette, 'secondary'),
$info: igx-color($palette, 'info'),
$success: igx-color($palette, 'success'),
$warn: igx-color($palette, 'warn'),
$error: igx-color($palette, 'error'),
$surface: if($surface != #fff, $surface, #fff),
$grays: if($grays != rgba(0, 0, 0, .38), $grays, #000),
);

@include igx-theme(
$palette: igx-palette(
$primary,
$secondary,
$surface: if($surface != #fff, $surface, #fff),
$grays: #000
),
$palette: $light-palette,
$schema: $light-schema,
$legacy-support: $legacy-support,
$exclude: $exclude
Expand All @@ -300,17 +305,22 @@
$exclude: (),
$legacy-support: true
) {
$primary: igx-color($palette, 'primary');
$secondary: igx-color($palette, 'secondary');
$grays: igx-color($palette, 'grays');
$surface: igx-color($palette, 'surface');

$dark-palette: igx-palette(
$primary: igx-color($palette, 'primary'),
$secondary: igx-color($palette, 'secondary'),
$info: igx-color($palette, 'info'),
$success: igx-color($palette, 'success'),
$warn: igx-color($palette, 'warn'),
$error: igx-color($palette, 'error'),
$surface: if($surface != #fff, $surface, #222),
$grays: if($grays != rgba(0, 0, 0, .38), $grays, #fff),
);

@include igx-theme(
$palette: igx-palette(
$primary,
$secondary,
$surface: if($surface != #fff, $surface, #222),
$grays: #fff
),
$palette: $dark-palette,
$schema: $dark-schema,
$legacy-support: $legacy-support,
$exclude: $exclude
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -679,7 +679,7 @@ export class IgxForOfDirective<T> implements OnInit, OnChanges, DoCheck, OnDestr

const containerSize = parseInt(this.igxForContainerSize, 10);
const maxRealScrollTop = event.target.children[0].scrollHeight - containerSize;
const realPercentScrolled = event.target.scrollTop / maxRealScrollTop;
const realPercentScrolled = maxRealScrollTop !== 0 ? event.target.scrollTop / maxRealScrollTop : 0;
if (!this._bScrollInternal) {
const maxVirtScrollTop = this._virtHeight - containerSize;
this._virtScrollTop = realPercentScrolled * maxVirtScrollTop;
Expand Down Expand Up @@ -1512,7 +1512,7 @@ export class IgxGridForOfDirective<T> extends IgxForOfDirective<T> implements On

const containerSize = parseInt(this.igxForContainerSize, 10);
const maxRealScrollTop = event.target.children[0].scrollHeight - containerSize;
const realPercentScrolled = event.target.scrollTop / maxRealScrollTop;
const realPercentScrolled = maxRealScrollTop !== 0 ? event.target.scrollTop / maxRealScrollTop : 0;
if (!this._bScrollInternal) {
const maxVirtScrollTop = this._virtHeight - containerSize;
this._virtScrollTop = realPercentScrolled * maxVirtScrollTop;
Expand Down
Loading

0 comments on commit be86bb9

Please sign in to comment.