Skip to content

Commit 25ca137

Browse files
authored
Merge branch 'master' into bpenkov/time-picker-editing
2 parents 9fea6c1 + fddcc63 commit 25ca137

File tree

90 files changed

+2566
-599
lines changed

Some content is hidden

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

90 files changed

+2566
-599
lines changed

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,29 @@ All notable changes for each version of this project will be documented in this
1515
- Added `aria-labelledby` property for the items list container(marked as `role="listbox"`). This will ensure the users of assistive technologies will also know what the list items container is used for, upon opening.
1616
- `IgxDatePicker`
1717
- **Breaking Change** - Deprecated the `label` property.
18+
- `igxGridActions`
19+
- Added `asMenuItems` Input for grid actions - `igx-grid-editing-actions`, `igx-grid-pinning-actions`. When set to true will render the related action buttons as separate menu items with button and label.
1820

1921

2022
### New Features
2123
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
2224
- When triggering an export of the grid via the toolbar and the export takes more than 500 milliseconds, the export button becomes disabled and an indeterminate progress bar is shown at the bottom of the toolbar until the export is finished.
2325
- Added *getRowData(rowSelector)* method that returns an object that represents the data that is contained in the specified row component.
26+
- Added ability to spawn row adding UI through exoposed methods. Note that rowEditing should be enabled.
27+
- `beginAddRow` method which starts the adding row UI.
28+
- `beginAddChild` method which starts the adding child UI.
29+
```typescript
30+
this.grid.beginAddRow(rowID);
31+
```
32+
- Added an input properties to `IgxGridEditingActions` component to show/hide add row and add child buttons which trigger the UI based on context expression.
33+
```html
34+
<igx-tree-grid [rowEditing]="true">
35+
<igx-action-strip #actionStrip>
36+
<igx-grid-editing-actions [addRow]="true" [addChild]="actionStrip.context.level < 3">
37+
</igx-grid-editing-actions>
38+
</igx-action-strip>
39+
</igx-tree-grid>
40+
```
2441
- ` IGX_INPUT_GROUP_TYPE` injection token
2542
- Allows for setting an input group `type` on a global level, so all input-group instances, including components using such an instance as a template will have their input group type set to the one specified by the token. It can be overridden on a component level by explicitly setting a `type`.
2643
- ` IgxExcelExporterService`
@@ -33,6 +50,10 @@ All notable changes for each version of this project will be documented in this
3350
- `IgxOverlay`
3451
- The `PositionSettings` `target` property has been deprecated and moved to `OverlaySettings`.
3552
- An optional Point/HTML Element parameter `target` has been added to the `position()` method
53+
- `IgxToast`
54+
- The component now utilizes the `IgxOverlayService` to position itself in the DOM.
55+
- An additional input property `outlet` has been added to allow users to specify custom Overlay Outlets using the `IgxOverlayOutletDirective`;
56+
- The `position` property now accepts values of type `IgxToastPosition` that work with strict templates.
3657

3758
## 10.1.0
3859

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
import { Tree } from '@angular-devkit/schematics';
2+
import * as ts from 'typescript/lib/tsserverlibrary';
3+
4+
export class ServerHost implements ts.server.ServerHost {
5+
readonly args: string[];
6+
readonly newLine: string;
7+
readonly useCaseSensitiveFileNames: boolean;
8+
9+
constructor(private host: Tree) {
10+
this.args = ts.sys.args;
11+
this.newLine = ts.sys.newLine;
12+
this.useCaseSensitiveFileNames = ts.sys.useCaseSensitiveFileNames;
13+
}
14+
15+
public readFile(path: string, encoding?: string): string | undefined {
16+
let content;
17+
try {
18+
content = this.host.read(path).toString(encoding);
19+
} finally {
20+
return content || ts.sys.readFile(path, encoding);
21+
}
22+
}
23+
24+
public getFileSize(path: string): number {
25+
return ts.sys.getFileSize(path);
26+
}
27+
28+
public watchFile(path: string, callback: ts.FileWatcherCallback, pollingInterval?: number):
29+
ts.FileWatcher {
30+
return ts.sys.watchFile(path, callback, pollingInterval);
31+
}
32+
33+
public watchDirectory(path: string, callback: ts.DirectoryWatcherCallback, recursive?: boolean):
34+
ts.FileWatcher {
35+
return ts.sys.watchDirectory(path, callback, recursive);
36+
}
37+
38+
public resolvePath(path: string): string {
39+
return ts.sys.resolvePath(path);
40+
}
41+
42+
public fileExists(path: string): boolean {
43+
return this.host.exists(path);
44+
}
45+
46+
public directoryExists(path: string): boolean {
47+
let exists: boolean;
48+
try {
49+
exists = this.host.getDir(path) !== void 0;
50+
} finally {
51+
return exists || this.fileExists(path);
52+
}
53+
}
54+
55+
public getExecutingFilePath(): string {
56+
return ts.sys.getExecutingFilePath();
57+
}
58+
59+
public getCurrentDirectory(): string {
60+
return this.host.root.path;
61+
}
62+
63+
public getDirectories(path: string): string[] {
64+
return this.host.getDir(path).subdirs;
65+
}
66+
67+
public readDirectory(path: string): string[] {
68+
return this.host.getDir(path).subfiles;
69+
}
70+
71+
public require(initialPath: string, moduleName: string) {
72+
try {
73+
const modulePath = require.resolve(moduleName, {
74+
paths: [initialPath],
75+
});
76+
return {
77+
module: require(modulePath),
78+
error: undefined,
79+
};
80+
} catch (e) {
81+
return {
82+
module: undefined,
83+
error: e as Error,
84+
};
85+
}
86+
}
87+
88+
public getModifiedTime(path: string): Date | undefined {
89+
return ts.sys.getModifiedTime(path);
90+
}
91+
92+
public realpath(path: string): string {
93+
return ts.sys.realpath(path);
94+
}
95+
96+
public createSHA256Hash(data: string): string {
97+
return ts.sys.createSHA256Hash(data);
98+
}
99+
100+
//#region Not implemented methods
101+
102+
public write(data: string): void {
103+
throw new Error('Method "write" not implemented.');
104+
// ts.sys.write(data);
105+
}
106+
107+
public writeOutputIsTTY(): boolean {
108+
throw new Error('Method "writeOutputIsTTY" not implemented.');
109+
// return ts.sys.writeOutputIsTTY();
110+
}
111+
112+
public writeFile(path: string, data: string, writeByteOrderMark?: boolean): void {
113+
throw new Error('Method "writeFile" not implemented.');
114+
// return ts.sys.writeFile(path, data, writeByteOrderMark);
115+
}
116+
117+
public createDirectory(path: string): void {
118+
throw new Error('Method "createDirectory" not implemented.');
119+
// return ts.sys.createDirectory(path);
120+
}
121+
122+
public setModifiedTime(path: string, time: Date): void {
123+
throw new Error('Method "setModifiedTime" not implemented.');
124+
// return ts.sys.setModifiedTime(path, time);
125+
}
126+
127+
public deleteFile(path: string): void {
128+
throw new Error('Method "deleteFile" not implemented.');
129+
// return ts.sys.deleteFile(path);
130+
}
131+
132+
public createHash(data: string): string {
133+
throw new Error('Method "createHash" not implemented.');
134+
// return ts.sys.createHash(data);
135+
}
136+
137+
public getMemoryUsage(): number {
138+
throw new Error('Method "getMemoryUsage" not implemented.');
139+
// return ts.sys.getMemoryUsage();
140+
}
141+
142+
public exit(exitCode?: number): void {
143+
throw new Error('Method "exit" not implemented.');
144+
// return ts.sys.exit(exitCode);
145+
}
146+
147+
public setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): any {
148+
throw new Error('Method "setTimeout" not implemented.');
149+
// return ts.sys.setTimeout(callback, ms, ...args);
150+
}
151+
152+
public clearTimeout(timeoutId: any): void {
153+
throw new Error('Method "clearTimeout" not implemented.');
154+
// return ts.sys.clearTimeout(timeoutId);
155+
}
156+
157+
public clearScreen(): void {
158+
throw new Error('Method "clearScreen" not implemented.');
159+
// return ts.sys.clearScreen();
160+
}
161+
162+
public base64decode(input: string): string {
163+
throw new Error('Method "base64decode" not implemented.');
164+
// return ts.sys.base64decode(input);
165+
}
166+
167+
public base64encode(input: string): string {
168+
throw new Error('Method "base64encode" not implemented.');
169+
// return ts.sys.base64encode(input);
170+
}
171+
172+
public setImmediate(callback: (...args: any[]) => void, ...args: any[]): any {
173+
throw new Error('Method "setImmediate" not implemented.');
174+
// return setImmediate(callback, ...args);
175+
}
176+
177+
public clearImmediate(timeoutId: any): void {
178+
throw new Error('Method "clearImmediate" not implemented.');
179+
// return clearImmediate(timeoutId);
180+
}
181+
182+
//#endregion
183+
}

0 commit comments

Comments
 (0)