Skip to content

Commit ddc7dcd

Browse files
authored
Merge branch 'master' into VDyulgerov/feature-weekStart-test
2 parents ced5f9e + 2292ad4 commit ddc7dcd

File tree

118 files changed

+2388
-1349
lines changed

Some content is hidden

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

118 files changed

+2388
-1349
lines changed

.github/CONTRIBUTING.md

+12-4
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ Example status workflows:
4343

4444
### Versioning
4545

46-
When creating an issue assign a `version:` label. Add `version:` labels for each version for which the issue is applicable.
46+
When creating an issue assign a `version:` label. Add `version:` labels for each version for which the issue is applicable.
47+
When creating a PR assign a `version:` label for the corresponding version branch the PR is targeting.
4748

4849
### Severity
4950

@@ -74,12 +75,18 @@ Example status workflows:
7475

7576
`status: awaiting-test` => `status: in-test` => `status: not-fixed` => `status: in-development` => `status: awaiting-test`
7677

78+
## Accessibility (a11y)
79+
Accessibility is an integral part of any UI component. We as a team are committed to deliver fully-accessible UI components. Every developer should take into account the following standards and should implement and test for compliance with them:
80+
* Section 508 compliance.
81+
* WCAG (preferably AAA compliance, AA compliance where AAA is unachivable because of the type of UI component)
82+
* WAI-ARIA
83+
* Full keyboard navigation
7784

7885
## Localization - applicable to issues and pull requests
7986
1. `status: pending-localization` this status tells that there are changes in the localization strings that need to be translated. When you make such changes, put this status badge without removing the other applicable ones and assign a person to do the translations.
8087
2. `status: localized` this status is for issues that were with a pending translation status and have already been localized. Place this status label once these translation changes have been included in the current pull request, or the changes are already pulled with a different pull request.
8188

82-
## Localization - applicable to components' string resources
89+
## Localization (i18n) - applicable to components' string resources
8390
There are several ways to localize components' string resources:
8491

8592
1. Using custom resource strings:
@@ -148,8 +155,9 @@ In order to contribute code to a new feature, you need to follow these guideline
148155
2. Follow a test-driven development process (TDD) to ensure full code coverage.
149156
3. Document all newly added public methods, inputs, outputs and properties.
150157
4. Make sure all static code analysis and tests pass before opening a pull request.
151-
5. Reference the issue you've been working on in your commit message and pull request title/description.
152-
6. Don't forget to make the necessary status updates, as described in the workflow section.
158+
5. Test the component with screen reader and browser tools for accessibility compliance.
159+
6. Reference the issue you've been working on in your commit message and pull request title/description.
160+
7. Don't forget to make the necessary status updates, as described in the workflow section.
153161

154162
# Breaking changes and migrations
155163
If the bug fix or new feature development requires changes to released public API or behavior in a way that'll njo longer be compatible with an existing user code base:

CHANGELOG.md

+44-2
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,57 @@
22

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

5-
## 13.2.0
5+
## 13.2.0
6+
7+
### General
8+
9+
- `IgxPivotGrid`
10+
- **Breaking Change** - Changing the `IPivotValue`'s `formatter` and `styles` functions optional parameters, example:
11+
```
12+
formatter?: (value: any, rowData?: IPivotGridRecord, columnData?: IPivotGridColumn) => any;
13+
```
14+
First optional parameter `rowData` is now of type `IPivotGridRecord` and contains more contextual information on the dimension and aggregation values. Previously it contained just the aggregation data object. Old usage can be updated as follows, from:
15+
```
16+
formatter: (value: any, rowData: any) => rowData['someField'];
17+
```
18+
to:
19+
20+
```
21+
formatter: (value: any, rowData: IPivotGridRecord) => rowData.aggregationValues.get('someField');
22+
```
23+
Also an additional optional `columnData` parameter can be added, which contains information on the column dimensions.
24+
25+
- `IgxExpansionPanel`
26+
- Changed the expansion panel layout, adding padding to the header and content elements.
27+
628
729
### New palette
830
931
A new fluent light and dark palettes that use the default fluent colors - `$light-fluent-palette` and `$dark-fluent-palette`.
1032
33+
### New Features
34+
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
35+
- new *sortingOption* property has been introduced on grid level; This property allows you to set either `single` or `multiple` sorting mode; When single mode is enabled you can sort one column at a time; The default value of the property is `multiple`;
36+
37+
- **Behavioral Change** - sorting and grouping expressions are now working separately; If grouping/sorting expressions are in a conflict, grouping expressions take precedence. You can read more about that in our official documentation.
38+
- `IgxSlider`
39+
- support for double value binding in slider of type RANGE through newly exposed `lowerValue` and `upperValue`
40+
41+
- `IgxDrag`
42+
- **Behavioral Change** - support for window scroll when dragging element to its edges
43+
- new *scrollContainer* property that can specify specific element that should be scrolled instead of window for custom solutions.
1144
## 13.1.0
1245
1346
### New Features
47+
48+
- Added new CSS property `--igx-icon-size` to allow changing the icon when its original size is modified by other components.
49+
```SCSS
50+
// will have effect only on icons that are children of .igx-button
51+
.igx-button {
52+
--igx-icon-size: 10px;
53+
}
54+
```
55+
1456
- Added `IgxPivotGrid` component(Preview)
1557
- The igxPivotGrid is a data presentation control for displaying data in a pivot table. It enables users to perform complex analysis on the supplied data. Main purpose is to transform and display a flat array of data into a complex grouped structure with aggregated values based on the main 3 dimensions: rows, columns and values, which the user may specify depending on his/her business needs. The whole pivot grid configuration is set through `IPivotConfiguration` interface.
1658

@@ -138,7 +180,7 @@ A new fluent light and dark palettes that use the default fluent colors - `$ligh
138180
- `IgxDialog`
139181
- Added `focusTrap` input to set whether the Tab key focus is trapped within the dialog when opened. Defaults to `true`.
140182
- `IgxProgressBar`
141-
- Exposed new animationDuration input - sets the duration of the progress animation.
183+
- Exposed new animationDuration input - sets the duration of the progress animation.
142184

143185
### General
144186

README.md

+12-3
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,25 @@
1010

1111
You can find source files under the [`src`](https://github.com/IgniteUI/igniteui-angular/tree/master/src) folder, including samples and tests.
1212

13+
## Browser Support
1314

14-
### Angular Data Grid Overview
15+
![chrome_48x48](https://user-images.githubusercontent.com/2188411/168109445-fbd7b217-35f9-44d1-8002-1eb97e39cdc6.png) | ![firefox_48x48](https://user-images.githubusercontent.com/2188411/168109465-e46305ee-f69f-4fa5-8f4a-14876f7fd3ca.png) | ![edge_48x48](https://user-images.githubusercontent.com/2188411/168109472-a730f8c0-3822-4ae6-9f54-785a66695245.png) | ![opera_48x48](https://user-images.githubusercontent.com/2188411/168109520-b6865a6c-b69f-44a4-9948-748d8afd687c.png) | ![safari_48x48](https://user-images.githubusercontent.com/2188411/168109527-6c58f2cf-7386-4b97-98b1-cfe0ab4e8626.png) | ![ie_48x48](https://user-images.githubusercontent.com/2188411/168135931-ce5259bb-5b26-4003-8b89-dbee3d4f247c.png)
16+
--- | --- | --- | --- | --- |:---:|
17+
Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | 11* |
18+
19+
\* *IE 11 is only supported in Ignite UI for Angular < 13.0.0*
20+
21+
## Overview
22+
23+
### Angular Data Grid
1524

1625
The Ignite UI for [Angular Data Grid](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/grid) equips you with all the necessary features for manipulating and visualizing tabular data in a series of rows and columns with ease. You can find powerful grid elements for no-lag scrolling while rendering and going through millions of data points.
1726

1827
Built for optimization and speed, our [Angular grid](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/grid) component lets you quickly bind data with very little code and allows you to implement a variety of events in order to tailor different behaviors.
1928

2029
#### [View running Grid samples here](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/grid)
2130

22-
### Angular Charts & Graphs Overview
31+
### Angular Charts & Graphs
2332

2433
Ignite UI for Angular arrives with an extensive library of data visualizations that enable stunning, interactive charts and dashboards for your modern web and mobile apps. All of them are designed to work flawlessly on every modern browser and provide complete touch as well as interactivity. Our comprehensive [Angular Charts](https://www.infragistics.com/products/ignite-ui-angular/angular/components/charts/chart-overview) component supports more than 65 chart types that let you display all sorts of data representations and statistics. And with the rich and easy-to-use API, you can plot various types of charts.
2534

@@ -159,7 +168,7 @@ npm run build:style
159168
npm run build:lib
160169
```
161170

162-
You can find the build ouput under `dist/igniteui-angular`.
171+
You can find the build output under `dist/igniteui-angular`.
163172

164173
## Running the tests
165174

package-lock.json

+13-13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

projects/igniteui-angular/migrations/common/ServerHost.ts

+36-50
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as ts from 'typescript/lib/tsserverlibrary';
44
import { CUSTOM_TS_PLUGIN_NAME, CUSTOM_TS_PLUGIN_PATH } from './tsUtils';
55

66
/**
7-
* Langauge server host is responsible for **most** of the FS operations / checks
7+
* Language server host is responsible for **most** of the FS operations / checks
88
* Angular's Ivy LS sometimes bypasses these, calling path methods instead of tsLsHost operations
99
*/
1010
export class ServerHost implements ts.server.ServerHost {
@@ -130,6 +130,12 @@ export class ServerHost implements ts.server.ServerHost {
130130
}
131131
}
132132

133+
public gc(): void {
134+
global.gc();
135+
}
136+
137+
public trace(_s: string): void { /* noop */ }
138+
133139
public getModifiedTime(path: string): Date | undefined {
134140
return ts.sys.getModifiedTime(path);
135141
}
@@ -142,87 +148,67 @@ export class ServerHost implements ts.server.ServerHost {
142148
return ts.sys.createSHA256Hash(data);
143149
}
144150

145-
//#region Not implemented methods
146-
147-
public write(_data: string): void {
148-
throw new Error('Method "write" not implemented.');
149-
// ts.sys.write(data);
151+
public write(data: string): void {
152+
ts.sys.write(data);
150153
}
151154

152155
public writeOutputIsTTY(): boolean {
153-
throw new Error('Method "writeOutputIsTTY" not implemented.');
154-
// return ts.sys.writeOutputIsTTY();
156+
return ts.sys.writeOutputIsTTY();
155157
}
156158

157-
public writeFile(_path: string, _data: string, _writeByteOrderMark?: boolean): void {
158-
throw new Error('Method "writeFile" not implemented.');
159-
// return ts.sys.writeFile(path, data, writeByteOrderMark);
159+
public writeFile(path: string, data: string, writeByteOrderMark?: boolean): void {
160+
return ts.sys.writeFile(path, data, writeByteOrderMark);
160161
}
161162

162-
public createDirectory(_path: string): void {
163-
throw new Error('Method "createDirectory" not implemented.');
164-
// return ts.sys.createDirectory(path);
163+
public createDirectory(path: string): void {
164+
return ts.sys.createDirectory(path);
165165
}
166166

167-
public setModifiedTime(_path: string, _time: Date): void {
168-
throw new Error('Method "setModifiedTime" not implemented.');
169-
// return ts.sys.setModifiedTime(path, time);
167+
public setModifiedTime(path: string, time: Date): void {
168+
return ts.sys.setModifiedTime(path, time);
170169
}
171170

172-
public deleteFile(_path: string): void {
173-
throw new Error('Method "deleteFile" not implemented.');
174-
// return ts.sys.deleteFile(path);
171+
public deleteFile(path: string): void {
172+
return ts.sys.deleteFile(path);
175173
}
176174

177-
public createHash(_data: string): string {
178-
throw new Error('Method "createHash" not implemented.');
179-
// return ts.sys.createHash(data);
175+
public createHash(data: string): string {
176+
return ts.sys.createHash(data);
180177
}
181178

182179
public getMemoryUsage(): number {
183-
throw new Error('Method "getMemoryUsage" not implemented.');
184-
// return ts.sys.getMemoryUsage();
180+
return ts.sys.getMemoryUsage();
185181
}
186182

187-
public exit(_exitCode?: number): void {
188-
throw new Error('Method "exit" not implemented.');
189-
// return ts.sys.exit(exitCode);
183+
public exit(exitCode?: number): void {
184+
return ts.sys.exit(exitCode);
190185
}
191186

192-
public setTimeout(_callback: (...argsv: any[]) => void, _ms: number, ..._args: any[]): any {
193-
throw new Error('Method "setTimeout" not implemented.');
194-
// return ts.sys.setTimeout(callback, ms, ...args);
187+
public setTimeout(callback: (...argsv: any[]) => void, ms: number, ...args: any[]): any {
188+
return ts.sys.setTimeout(callback, ms, ...args);
195189
}
196190

197-
public clearTimeout(_timeoutId: any): void {
198-
throw new Error('Method "clearTimeout" not implemented.');
199-
// return ts.sys.clearTimeout(timeoutId);
191+
public clearTimeout(timeoutId: any): void {
192+
return ts.sys.clearTimeout(timeoutId);
200193
}
201194

202195
public clearScreen(): void {
203-
throw new Error('Method "clearScreen" not implemented.');
204-
// return ts.sys.clearScreen();
196+
return ts.sys.clearScreen();
205197
}
206198

207-
public base64decode(_input: string): string {
208-
throw new Error('Method "base64decode" not implemented.');
209-
// return ts.sys.base64decode(input);
199+
public base64decode(input: string): string {
200+
return ts.sys.base64decode(input);
210201
}
211202

212-
public base64encode(_input: string): string {
213-
throw new Error('Method "base64encode" not implemented.');
214-
// return ts.sys.base64encode(input);
203+
public base64encode(input: string): string {
204+
return ts.sys.base64encode(input);
215205
}
216206

217-
public setImmediate(_callback: (...argsv: any[]) => void, ..._args: any[]): any {
218-
throw new Error('Method "setImmediate" not implemented.');
219-
// return setImmediate(callback, ...args);
207+
public setImmediate(callback: (...argsv: any[]) => void, ...args: any[]): any {
208+
return setImmediate(callback, ...args);
220209
}
221210

222-
public clearImmediate(_timeoutId: any): void {
223-
throw new Error('Method "clearImmediate" not implemented.');
224-
// return clearImmediate(timeoutId);
211+
public clearImmediate(timeoutId: any): void {
212+
return clearImmediate(timeoutId);
225213
}
226-
227-
//#endregion
228214
}

0 commit comments

Comments
 (0)