Skip to content

Commit 60b75b1

Browse files
authored
Merge branch 'master' into kdragieva/single-cell-value-master
2 parents e23aa58 + 45cd818 commit 60b75b1

File tree

63 files changed

+732
-714
lines changed

Some content is hidden

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

63 files changed

+732
-714
lines changed

.github/workflows/nodejs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ jobs:
4141
npm run test:lib
4242
npm run test:styles
4343
npm run test:schematics
44+
npm run test:i18n
4445
env:
4546
NODE_OPTIONS: --max_old_space_size=4096
4647
- name: Build i18n & validate output

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ All notable changes for each version of this project will be documented in this
77
### New Features
88
- `IgxCsvExporterService`, `IgxExcelExporterService`
99
- Exporter services are no longer required to be provided in the application since they are now injected on a root level.
10+
- `IgxGridToolbarPinningComponent`, `IgxGridToolbarHidingComponent`
11+
- Exposed new input `buttonText` which sets the text that is displayed inside the dropdown button in the toolbar.
12+
- `IgxCombo`
13+
- Added `groupSortingDirection` input, which allows you to set groups sorting order.
1014

1115
### General
1216

@@ -23,6 +27,19 @@ All notable changes for each version of this project will be documented in this
2327
};
2428
this.alert.positionSettings = this.newPositionSettings;
2529
```
30+
- `igxGrid`, `igxHierarchicalGrid`, `igxTreeGrid`
31+
- **Breaking Change** - The following deprecated inputs have been removed
32+
- Inputs `showToolbar`, `toolbarTitle`, `columnHiding`, `columnHidingTitle`, `hiddenColumnsText`,
33+
`columnPinning`, `columnPinningTitle`, `pinnedColumnsText`.
34+
Use `IgxGridToolbarComponent`, `IgxGridToolbarHidingComponent`, `IgxGridToolbarPinningComponent` instead.
35+
- `IgxColumnActionsComponent`
36+
- **Breaking Change** - The following input has been removed
37+
- Input `columns`. Use `igxGrid` `columns` input instead.
38+
39+
## 12.2.3
40+
41+
### General
42+
- **Breaking Change** - `IgxPercentSummaryOperand` and `IgxCurrencySummaryOperand` have been removed and `IgxNumberSummaryOperand` should be used instead. If you have used the percent or currency summary operands to extend a custom summary operand from them, then change the custom operand to extend from the number summary operand.
2643

2744
## 12.2.1
2845

@@ -3648,3 +3665,4 @@ export class IgxCustomFilteringOperand extends IgxFilteringOperand {
36483665
- `IgxDraggableDirective` moved inside `../directives/dragdrop/` folder
36493666
- `IgxRippleDirective` moved inside `../directives/ripple/` folder
36503667
- Folder `"./navigation/nav-service"` renamed to `"./navigation/nav.service"`
3668+

ROADMAP.md

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,49 @@
22

33
# Current Milestone
44

5-
## Milestone 18 (Due by Oct, 2021)
5+
## Milestone 19 (Due by Nov, 2021)
66

7-
1. **[DONE]** Add row at top of grid [#9675](https://github.com/IgniteUI/igniteui-angular/issues/9675)
8-
2. **[DONE]** Grid row styles and classes [#9969](https://github.com/IgniteUI/igniteui-angular/issues/9969)
9-
3. **[DONE]** Freezing Columns/Rows on Export to Excel (Angular) [#9863](https://github.com/IgniteUI/igniteui-angular/issues/9863)
10-
4. **[DONE]** Persistent State directive for column group [#8516](https://github.com/IgniteUI/igniteui-angular/issues/8516)
11-
5. **[DONE]** IgxTreeGrid: display only filtered records [#9923](https://github.com/IgniteUI/igniteui-angular/issues/9923)
12-
6. **[DONE]** Snackbar support for animation customization [#10126](https://github.com/IgniteUI/igniteui-angular/issues/10126)
7+
1. Stepper component [#8667](https://github.com/IgniteUI/igniteui-angular/issues/8667)
8+
2. Themes: Move code to Sass modules [#9554](https://github.com/IgniteUI/igniteui-angular/issues/9554)
9+
3. **DONE** Themes: Refactor Grid theme [#9556](https://github.com/IgniteUI/igniteui-angular/issues/9556)
10+
4. Make IgxDropDownBaseToken public [#10103](https://github.com/IgniteUI/igniteui-angular/issues/10103)
11+
5. Classes to indicate position of auto overlay [#9481](https://github.com/IgniteUI/igniteui-angular/issues/9481)
12+
6. onFilterDone property to expose additional information [#10243](https://github.com/IgniteUI/igniteui-angular/issues/10243)
13+
7. IgxCombo with single selection [#9832](https://github.com/IgniteUI/igniteui-angular/issues/9832)
1314

1415
## Going down the road
1516

17+
# Due in 2021
18+
1619
1. Angular Pivot Grid [#5700](https://github.com/IgniteUI/igniteui-angular/issues/5700)
17-
2. Grid Cell Merging [#3514](https://github.com/IgniteUI/igniteui-angular/issues/3514)
18-
3. PDF Export feature on Angular Grid [#5696](https://github.com/IgniteUI/igniteui-angular/issues/5696)
19-
4. Themes: Move code to Sass modules [#9554](https://github.com/IgniteUI/igniteui-angular/issues/9554)
20-
5. Themes: Split themes and aid with Grid refactoring [#9556](https://github.com/IgniteUI/igniteui-angular/issues/9556)
21-
6. Stepper component [#8667](https://github.com/IgniteUI/igniteui-angular/issues/8667)
22-
7. Make IgxDropDownBaseToken public [#10103](https://github.com/IgniteUI/igniteui-angular/issues/10103)
23-
8. IgxLinearProgressBar: animate initial progress [#10068](https://github.com/IgniteUI/igniteui-angular/issues/10068)
20+
2. Grid grouping for an unbound field [#10223](https://github.com/IgniteUI/igniteui-angular/issues/10223)
21+
4. Grid autosize feature with performance improvements [#10205](https://github.com/IgniteUI/igniteui-angular/issues/10205)
22+
5. Column moving feature on grid level [#10176](https://github.com/IgniteUI/igniteui-angular/issues/10176)
23+
6. Grid summary custom templating [#7981](https://github.com/IgniteUI/igniteui-angular/issues/7981)
24+
7. IgxLinearProgressBar: animate initial progress [#10068](https://github.com/IgniteUI/igniteui-angular/issues/10068)
25+
8. Improve sorting experience for users [#9674](https://github.com/IgniteUI/igniteui-angular/issues/9674)
2426
9. IgxCombo: being able to set groups sorting order [#10125](https://github.com/IgniteUI/igniteui-angular/issues/10125)
2527
10. Getting only one sort and one filter event after changing the state of grid using setState function [#8064](https://github.com/IgniteUI/igniteui-angular/issues/8064)
28+
11. IgxGridState directive to save disableHiding property [#9304](https://github.com/IgniteUI/igniteui-angular/issues/9304)
29+
12. Template grid excel filter footer [#10183](https://github.com/IgniteUI/igniteui-angular/issues/10183)
30+
13. Igx Grid Sort Icon Change [#10217](https://github.com/IgniteUI/igniteui-angular/issues/10217)
31+
32+
# Due in 2022
33+
34+
1. PDF Export feature on Angular Grid [#5696](https://github.com/IgniteUI/igniteui-angular/issues/5696)
35+
2. Grid Cell Merging [#3514](https://github.com/IgniteUI/igniteui-angular/issues/3514)
2636

2737
# Previous Milestone
2838

39+
## Milestone 18 (Released October 4th, 2021)
40+
41+
1. **[DONE]** Add row at top of grid [#9675](https://github.com/IgniteUI/igniteui-angular/issues/9675)
42+
2. **[DONE]** Grid row styles and classes [#9969](https://github.com/IgniteUI/igniteui-angular/issues/9969)
43+
3. **[DONE]** Freezing Columns/Rows on Export to Excel (Angular) [#9863](https://github.com/IgniteUI/igniteui-angular/issues/9863)
44+
4. **[DONE]** Persistent State directive for column group [#8516](https://github.com/IgniteUI/igniteui-angular/issues/8516)
45+
5. **[DONE]** IgxTreeGrid: display only filtered records [#9923](https://github.com/IgniteUI/igniteui-angular/issues/9923)
46+
6. **[DONE]** Snackbar support for animation customization [#10126](https://github.com/IgniteUI/igniteui-angular/issues/10126)
47+
2948
## Milestone 17 (Released August 2nd, 2021)
3049

3150
1. **[DONE]** Accordion component to Ignite UI for Angular [#9559](https://github.com/IgniteUI/igniteui-angular/issues/9559)

azure-pipelines.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
pool:
2-
vmImage: 'Ubuntu 16.04'
2+
vmImage: 'ubuntu-latest'
33

44
steps:
55
- script: npm ci

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"test:lib:watch": "ng test igniteui-angular --karma-config=./projects/igniteui-angular/karma.watch.conf.js",
2424
"test:schematics": "ts-node --project projects/igniteui-angular/migrations/tsconfig.json ./node_modules/jasmine/bin/jasmine.js ./projects/igniteui-angular/migrations/**/*.spec.ts ./projects/igniteui-angular/schematics/**/*.spec.ts",
2525
"test:styles": "ts-node --skip-project ./node_modules/jasmine/bin/jasmine.js ./projects/igniteui-angular/src/lib/core/styles/spec/tests.ts",
26+
"test:i18n": "ts-node --skip-project ./projects/igniteui-angular/src/lib/core/i18n/tests/tests.ts",
2627
"build:lib": "ng build igniteui-angular --configuration production && gulp buildStyle",
2728
"build:style": "gulp buildStyle",
2829
"build:migration": "gulp copyMigrations && tsc --listEmittedFiles --project ./projects/igniteui-angular/migrations/tsconfig.json",

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
[tabindex]="dropdown.collapsed ? -1 : 0" role="listbox" [attr.id]="dropdown.id">
5353
<igx-combo-item role="option" [itemHeight]='itemHeight' *igxFor="let item of data
5454
| comboFiltering:filterValue:displayKey:filterable:filteringOptions
55-
| comboGrouping:groupKey:valueKey;
55+
| comboGrouping:groupKey:valueKey:groupSortingDirection;
5656
index as rowIndex; containerSize: itemsMaxHeight; scrollOrientation: 'vertical'; itemSize: itemHeight"
5757
[value]="item" [isHeader]="item.isHeader" [index]="rowIndex">
5858
<ng-container *ngIf="item.isHeader">

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { AbsoluteScrollStrategy, ConnectedPositioningStrategy } from '../service
2828
import { IgxSelectionAPIService } from '../core/selection';
2929
import { IgxIconService } from '../icon/public_api';
3030
import { IBaseCancelableBrowserEventArgs } from '../core/utils';
31+
import { SortingDirection } from '../data-operations/sorting-expression.interface';
3132

3233
const CSS_CLASS_COMBO = 'igx-combo';
3334
const CSS_CLASS_COMBO_DROPDOWN = 'igx-combo__drop-down';
@@ -2172,6 +2173,17 @@ describe('igxCombo', () => {
21722173
expect(combo.dropdown.headers.length).toEqual(1);
21732174
expect(combo.dropdown.headers[0].element.nativeElement.innerText).toEqual(fallBackGroup);
21742175
});
2176+
it('should sort groups correctly', () => {
2177+
combo.groupSortingDirection = SortingDirection.Asc;
2178+
combo.toggle();
2179+
fixture.detectChanges();
2180+
expect(combo.dropdown.headers[0].element.nativeElement.innerText).toEqual('East North Central');
2181+
2182+
combo.groupSortingDirection = SortingDirection.Desc;
2183+
combo.toggle();
2184+
fixture.detectChanges();
2185+
expect(combo.dropdown.headers[0].element.nativeElement.innerText).toEqual('West South Cent');
2186+
});
21752187
});
21762188
describe('Filtering tests: ', () => {
21772189
configureTestSuite();

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import { EditorProvider } from '../core/edit-provider';
4040
import { IgxInputState, IgxInputDirective } from '../directives/input/input.directive';
4141
import { IgxInputGroupType, IGX_INPUT_GROUP_TYPE } from '../input-group/public_api';
4242
import { caseSensitive } from '@igniteui/material-icons-extended';
43+
import { SortingDirection } from '../data-operations/sorting-expression.interface';
4344

4445
/**
4546
* @hidden
@@ -774,6 +775,25 @@ export class IgxComboComponent extends DisplayDensityBase implements IgxComboBas
774775
@Input()
775776
public filterable = true;
776777

778+
/**
779+
* An @Input property that sets groups sorting order.
780+
*
781+
* @example
782+
* ```html
783+
* <igx-combo [groupSortingDirection]="groupSortingDirection"></igx-combo>
784+
* ```
785+
* ```typescript
786+
* public groupSortingDirection = SortingDirection.Asc;
787+
* ```
788+
*/
789+
@Input()
790+
public get groupSortingDirection(): SortingDirection {
791+
return this._groupSortingDirection;
792+
}
793+
public set groupSortingDirection(val: SortingDirection) {
794+
this._groupSortingDirection = val;
795+
}
796+
777797
/**
778798
* An @Input property that set aria-labelledby attribute
779799
* ```html
@@ -906,6 +926,7 @@ export class IgxComboComponent extends DisplayDensityBase implements IgxComboBas
906926
private _overlaySettings: OverlaySettings;
907927
private _value = '';
908928
private _valid = IgxComboState.INITIAL;
929+
private _groupSortingDirection: SortingDirection = SortingDirection.Asc;
909930

910931
constructor(
911932
protected elementRef: ElementRef,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ export class IgxComboGroupingPipe implements PipeTransform {
4444

4545
constructor(@Inject(IGX_COMBO_COMPONENT) public combo: IgxComboBase) { }
4646

47-
public transform(collection: any[], groupKey: any, valueKey: any) {
47+
public transform(collection: any[], groupKey: any, valueKey: any, sortingDirection: SortingDirection) {
4848
this.combo.filteredData = collection;
4949
if ((!groupKey && groupKey !== 0) || !collection.length) {
5050
return collection;
5151
}
5252
const sorted = DataUtil.sort(cloneArray(collection), [{
5353
fieldName: groupKey,
54-
dir: SortingDirection.Asc,
54+
dir: sortingDirection,
5555
ignoreCase: true,
5656
strategy: DefaultSortingStrategy.instance()
5757
}]);
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import * as fs from 'fs';
2+
import * as path from 'path';
3+
4+
const i18nProductPath = path.join(__dirname, '../');
5+
const i18nLanguagesPath = path.join(__dirname, '../../../../../../igniteui-angular-i18n/src/i18n');
6+
const errors = [];
7+
8+
class i18nTests {
9+
public runTests(): void {
10+
this.i18nFilesMatchForAllLanguages();
11+
}
12+
13+
public getDirectories = srcPath => fs.readdirSync(srcPath).filter(file => fs.statSync(path.join(srcPath, file)).isDirectory());
14+
public getFiles = srcPath => fs.readdirSync(srcPath).filter(file => fs.statSync(path.join(srcPath, file)).isFile());
15+
16+
public i18nFilesMatchForAllLanguages(): void {
17+
this.getDirectories(i18nLanguagesPath).forEach(dir => {
18+
const curDirPath = path.join(i18nLanguagesPath, dir);
19+
if (this.getFiles(curDirPath).length !== this.getFiles(i18nProductPath).length) {
20+
errors.push(`Not all i18n component files that are available for localization have matching files for ${dir} language.
21+
Check and add the appropriate resource strings with EN translation and mark the PR as 'pending localization'`
22+
);
23+
}
24+
});
25+
if (errors.length > 0) {
26+
throw errors;
27+
}
28+
}
29+
}
30+
31+
new i18nTests().runTests();

0 commit comments

Comments
 (0)