Skip to content

Commit

Permalink
Merge branch '7.0.x' into vpavlov/fix-3033-master
Browse files Browse the repository at this point in the history
  • Loading branch information
kdinev authored Nov 28, 2018
2 parents c7954bc + 79bec52 commit 0425ecc
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 82 deletions.
29 changes: 18 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,20 @@

All notable changes for each version of this project will be documented in this file.

## 7.0.1
### Bug fixes
- Removed the `GridHammerConfig` provider which broke touch events for other components. (Fixed #3185, Reopens #2538)

## 7.0.0
- Updated package dependencies to Angular 7 ([#3000](https://github.com/IgniteUI/igniteui-angular/pull/3000))
- Themes: Add dark schemas and mixins (PR [#3025](https://github.com/IgniteUI/igniteui-angular/pull/3025))

## 6.2.2
- `igx-checkbox`:
- Added a new input property - `disableTransitions`. It allows disabling all CSS transitions on the `igx-checkbox` component for performance optimization.
### Bug fixes
- Removed the `GridHammerConfig` provider which broke touch events for other components. (Fixed #3185, Reopens #2538)


## 6.2.1
### Features
Expand All @@ -22,7 +29,7 @@ All notable changes for each version of this project will be documented in this
- `igxDropDown`
- Added a new property `maxHeight`, defining the max height of the drop down. ([#3001](https://github.com/IgniteUI/igniteui-angular/issues/3001))
- Added migrations for Sass theme properties changes in 6.2.0 ([#2994](https://github.com/IgniteUI/igniteui-angular/issues/2994))
- Themes
- Themes
- Introducing schemas for easier bootstrapping of component themes.
- **Breaking change** removed $variant from `igx-checkbox-theme`, `igx-ripple-theme`, `igx-switch-theme`, `igx-input-group-theme`, `igx-slider-theme`, and `igx-tooltip-theme`. Use the `$schema` prop, now available on all component themes to change the look for a specific theme. See the [Theming](https://www.infragistics.com/products/ignite-ui-angular/angular/components/themes/schemas.html) documentation to learn more.

Expand All @@ -47,7 +54,7 @@ All notable changes for each version of this project will be documented in this
- Cell is not editable on iOS ([#2538](https://github.com/IgniteUI/igniteui-angular/issues/2538))
- `IgxTreeGrid`
- Cell selection wrong behavior when collapsing rows ([#2935](https://github.com/IgniteUI/igniteui-angular/issues/2935))
- `igxCombo`
- `igxCombo`
- Keyboard doesn't scroll virtualized items ([#2999](https://github.com/IgniteUI/igniteui-angular/issues/2999))
- `igxDatePicker`
- Error emitting when value property is initialized with empty string. ([#3021](https://github.com/IgniteUI/igniteui-angular/issues/3021))
Expand All @@ -65,7 +72,7 @@ All notable changes for each version of this project will be documented in this
- **Breaking change:** Applications using Ignite UI for Angular now require the `igx-typography` class to be applied on wrapping element, like the body element for instance.

- Display density can be specified by using the injection token `DisplayDensityToken` and providing a value (comfortable, cosy or compact) on an application or a component level.

Setting display density on a component level:
```typescript
@Component({
Expand All @@ -79,7 +86,7 @@ All notable changes for each version of this project will be documented in this
<igx-input-group [displayDensity]="'cosy'"> ... </igx-input-group>
```
- `igx-drop-down`:
- Added a new boolean argument `cancel` to the `onSelection` `ISelectionEventArgs`. Its default value is false, in case it is set to true, the drop down selection is invalidated.
- Added a new boolean argument `cancel` to the `onSelection` `ISelectionEventArgs`. Its default value is false, in case it is set to true, the drop down selection is invalidated.
- `igxIcon`:
- **Breaking change** `glyphName` property is removed from `IgxIconComponent`. For `Material` icons the icon name should be explicitly defined between the opening and closing tags. `Font Awesome` icons should use the `name` property now.
- Added support for custom SVG icons. Register the SVG icons with the `IgxIconService` and use `IgxIconComponent`'s `name` and `fontSet` properties to visualize the icon.
Expand Down Expand Up @@ -228,9 +235,9 @@ When you focus a specific cell and press one of the following key combinations,
### General

- `sortStrategy` input exposed to provide custom sort strategy for the `IgxColumnComponent`. The custom strategy should implement the `ISortingStrategy` interface, or can extend the base `DefaultSortingStrategy` class and override all or some of its public/protected members.
- The previously optional `ignoreCase` and `strategy` of the `ISortingExpression` interface are no longer optional. In order to use our default sorting strategy in expressions built programmatically, you need to pass `DefaultSortingStrategy.instance()` or any implementation of the `ISortingStrategy` interface.
- The previously optional `ignoreCase` and `strategy` of the `ISortingExpression` interface are no longer optional. In order to use our default sorting strategy in expressions built programmatically, you need to pass `DefaultSortingStrategy.instance()` or any implementation of the `ISortingStrategy` interface.
- `groupingComparer` input exposed to provide custom grouping compare function for the `IgxColumnComponent`. The function receives two values and should return `0` if they are to considered members of the same group.

## 6.1.8

### Bug fixes
Expand Down Expand Up @@ -280,7 +287,7 @@ When you focus a specific cell and press one of the following key combinations,
- `igxGrid`
- Adding inertia scrolling for touch devices.
- `igxCombo`
- Adding inertia scrolling for touch devices.
- Adding inertia scrolling for touch devices.
- `IgxCalendar` - `deselectDate` method added that deselects date(s) (based on the selection type)
- `IgxDatePicker` - `deselectDate` method added that deselects the calendar date.

Expand Down Expand Up @@ -421,10 +428,10 @@ When you focus a specific cell and press one of the following key combinations,
- Regular highlight makes the highlighted text unreadable when the row is selected. #1852
- DatePicker focus is wrong on select date value #1965
- add sass docs, grid document updates and input-group theme-related fixes #1993
- DatePicker focus handler and AoT build #1994
- Change displayDensity runtime #1974
- Change IgxGrid display density runtime #1998
- Error is thrown when using igx-grid theme without $content-background #1996
- DatePicker focus handler and AoT build #1994
- Change displayDensity runtime #1974
- Change IgxGrid display density runtime #1998
- Error is thrown when using igx-grid theme without $content-background #1996
- Update npm deploy token #2002

## 6.1.0
Expand Down
1 change: 0 additions & 1 deletion projects/igniteui-angular/src/lib/grids/cell.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -627,7 +627,6 @@ export class IgxGridCellComponent implements OnInit, AfterViewInit {
*@hidden
*/
@HostListener('dblclick', ['$event'])
@HostListener('doubletap', ['$event'])
public onDoubleClick(event) {
if (this.column.editable) {
this.inEditMode = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@ export class IgxGridFilteringRowComponent implements AfterViewInit {
if (this.expressionsList.length === 1 &&
this.expressionsList[0].expression.searchVal === null &&
this.expressionsList[0].expression.condition.isUnary === false) {
this.filteringService.clearFilter(this.column.field);
this.filteringService.getExpressions(this.column.field).pop();
} else {
this.expressionsList.forEach((item) => {
if (item.expression.searchVal === null && !item.expression.condition.isUnary) {
Expand Down
38 changes: 0 additions & 38 deletions projects/igniteui-angular/src/lib/grids/grid.common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import { IgxGridForOfDirective } from '../directives/for-of/for_of.directive';
import { SortingDirection } from '../data-operations/sorting-expression.interface';
import { ConnectedPositioningStrategy } from '../services';
import { getPointFromPositionsSettings, VerticalAlignment, PositionSettings } from '../services/overlay/utilities';
import { HammerGestureConfig } from '@angular/platform-browser';

/**
* @hidden
Expand Down Expand Up @@ -617,40 +616,3 @@ export class ContainerPositioningStrategy extends ConnectedPositioningStrategy {
contentElement.style.width = target.clientWidth + 'px';
}
}

/**
*@hidden
*/
export class GridHammerConfig extends HammerGestureConfig {
constructor() {
super();

if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream']) {
this.events = ['tap', 'doubletap'];
}
}

events = [];
options: HammerOptions = {
recognizers: [
[ Hammer.Tap ],
[ Hammer.Tap, { event: 'doubletap', taps: 2, interval: 450 } ]
],
inputClass: Hammer.TouchInput
};

buildHammer(element: HTMLElement) {
const mc = new Hammer(element, this.options);


Object.keys(this.overrides).forEach(eventName => {
mc.get(eventName).set(this.overrides[eventName]);
});

mc.get('doubletap').recognizeWith('tap');
mc.get('tap').requireFailure('doubletap');
mc.get('doubletap').dropRequireFailure('tap');

return mc;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -1832,38 +1832,57 @@ describe('IgxGrid - Filtering Row UI actions', () => {
}));

it('should not render chip in header if condition that requires value is applied and then value is cleared in filter row.',
fakeAsync(() => {
const fix = TestBed.createComponent(IgxGridFilteringComponent);
fix.detectChanges();
fakeAsync(() => {
const fix = TestBed.createComponent(IgxGridFilteringComponent);
fix.detectChanges();

let filteringCells = fix.debugElement.queryAll(By.css('igx-grid-filtering-cell'));
const stringCellChip = filteringCells[1].query(By.css('igx-chip'));
const grid = fix.componentInstance.grid;
let filteringCells = fix.debugElement.queryAll(By.css('igx-grid-filtering-cell'));
const stringCellChip = filteringCells[1].query(By.css('igx-chip'));
const grid = fix.componentInstance.grid;

// filter string col
stringCellChip.nativeElement.click();
fix.detectChanges();
// filter string col
stringCellChip.nativeElement.click();
fix.detectChanges();

GridFunctions.filterBy('Starts With', 'I', fix);
const filterUIRow = fix.debugElement.query(By.css(FILTER_UI_ROW));

// remove text from input
const filterUIRow = fix.debugElement.query(By.css(FILTER_UI_ROW));
const input = filterUIRow.query(By.directive(IgxInputDirective));
input.nativeElement.value = null;
// open dropdown
const filterIcon = filterUIRow.query(By.css('igx-icon'));
filterIcon.nativeElement.click();
fix.detectChanges();

const exprList = filterUIRow.componentInstance.expressionsList;
exprList[0].expression.searchVal = null;
fix.detectChanges();
const ddList = fix.debugElement.query(By.css('div.igx-drop-down__list.igx-toggle'));
const ddItems = ddList.nativeElement.children;
let i;
for ( i = 0; i < ddItems.length; i++) {
if (ddItems[i].textContent === 'Starts With') {
ddItems[i].click();
tick(100);
return;
}
}

GridFunctions.closeFilterRow(fix);
const input = filterUIRow.query(By.directive(IgxInputDirective));
input.nativeElement.value = 'I';
input.nativeElement.dispatchEvent(new Event('input'));
fix.detectChanges();

// check no condition is applied
expect(grid.rowList.length).toEqual(8);
const clearButton = filterUIRow.query(By.css('igx-suffix'));

filteringCells = fix.debugElement.queryAll(By.css('igx-grid-filtering-cell'));
const stringCellText = filteringCells[1].query(By.css('igx-chip')).query(By.css('.igx-chip__content'));
expect(stringCellText.nativeElement.textContent).toBe('Filter');
}));
clearButton.nativeElement.click();

tick();
fix.detectChanges();

GridFunctions.closeFilterRow(fix);

// check no condition is applied
expect(grid.rowList.length).toEqual(8);

filteringCells = fix.debugElement.queryAll(By.css('igx-grid-filtering-cell'));
const stringCellText = filteringCells[1].query(By.css('igx-chip')).query(By.css('.igx-chip__content'));
expect(stringCellText.nativeElement.textContent).toBe('Filter');
}));

it('Should correctly update empty filter cells when scrolling horizontally.', async() => {
const fix = TestBed.createComponent(IgxGridFilteringScrollComponent);
Expand Down
8 changes: 1 addition & 7 deletions projects/igniteui-angular/src/lib/grids/grid/grid.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ import { IgxGridRowComponent } from './grid-row.component';
import { IgxChipsModule } from '../../chips/chips.module';
import { IgxGridCommonModule } from '../grid-common.module';
import { DeprecateMethod } from '../../core/deprecateDecorators';
import { HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
import { GridHammerConfig } from '../grid.common';

/**
* @hidden
Expand Down Expand Up @@ -50,11 +48,7 @@ import { GridHammerConfig } from '../grid.common';
FormsModule,
IgxChipsModule,
IgxGridCommonModule
],
providers: [{
provide: HAMMER_GESTURE_CONFIG,
useClass: GridHammerConfig
}]
]
})
export class IgxGridModule {
@DeprecateMethod('IgxGridModule.forRoot method is deprecated. Use IgxGridModule instead.')
Expand Down

0 comments on commit 0425ecc

Please sign in to comment.