Skip to content

Commit 70e4f00

Browse files
authored
Merge branch 'master' into master
2 parents 73a5fb2 + 33d7d9e commit 70e4f00

File tree

97 files changed

+1247
-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.

97 files changed

+1247
-599
lines changed

CHANGELOG.md

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

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

5-
## 15.1.1
6-
- **Breaking Changes** - ` $label-floated-background` and `$label-floated-disabled-background` properties of `IgxInputGroupComponent` theme has been removed.
7-
- `IgxInputGroupComponent` The input group has been refactored so that the floating label for the input of `type="border"` does not require a background to match the surface background under the input field. Also, suffixes and prefixes are refactored to take the full height of the input which makes it easy to add background to them.
8-
-
9-
- **Breaking Changes** - `$size` property of `scrollbar-theme` theme has been renamed to `$scrollbar-size`.
10-
115
## 15.1.0
126

137
### New Features
148
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`:
159
- `GroupMemberCountSortingStrategy` is added, which can be used to sort the grid by number of items in each group in ASC or DESC order, if grouping is applied.
1610
- A new argument `primaryKey` has been introduced to `IRowDataEventArgs` Interface and part of the event arguments that are emitted by the `rowAdded` and `rowDeleted` events. When the grid has a primary key attribute added, then the emitted `primaryKey` event argument represents the row ID, otherwise it defaults to undefined.
11+
- Added the `autoGenerateExclude` property that accepts an array of strings for property names that are to be excluded from the generated column collection
1712
- `IgxColumnComponent`
1813
- Added `currRec` and `groupRec` parameters to the `groupingComparer` function that give access to the all properties of the compared records.
19-
2014
- `IgxOverlayService`
21-
-A new event `contentAppending` is introduced - the event is emitted before the content is appended to the overlay. The event is emitted with `OverlayEventArgs` arguments and is not cancellable.
15+
- A new event `contentAppending` is introduced - the event is emitted before the content is appended to the overlay. The event is emitted with `OverlayEventArgs` arguments and is not cancellable.
16+
- `IgxCard`
17+
- Buttons and icons slotted in the `igx-card-actions` can now be explicitly arranged to the start/end of the layout. To position components on either side users can take advantage of the newly added directives: `igxStart` - aligns items to the start and `igxEnd` - aligns items on the end of the card actions area.
18+
- The `reverse` property has been deprecated and will be removed in a future version.
19+
20+
- Code example:
21+
22+
```html
23+
<igx-card>
24+
<igx-card-header>
25+
<h3>Title</h3>
26+
</igx-card-header>
27+
<igx-card-content>
28+
Card Content
29+
</igx-card-content>
30+
31+
<!-- Rearrange items using igxStart and igxEnd directives -->
32+
<igx-card-actions>
33+
<igx-icon igxStart>drag_indicator</igx-icon>
34+
<button igxButton="icon" igxStart>
35+
<igx-icon>favorite</igx-icon>
36+
</button>
37+
<button igxButton igxEnd>Button</button>
38+
</igx-card-actions>
39+
</igx-card>
40+
```
2241

2342
### General
2443
- `IgxPivotGrid`
2544
- The `IgxPivotDateDimension` properties `inBaseDimension` and `inOption` have been deprecated and renamed to `baseDimension` and `options` respectively.
2645
- `IgxGrid`
2746
- **Breaking Change** The `onGroupingDone` output has been renamed to `groupingDone` to not violate the no on-prefixed outputs convention. Automatic migrations are available and will be applied on `ng update`.
47+
- Column formatters are now applied to values shown group rows when using the default template. For custom formatters, the formatter function is called with the data from the first row in the group.
2848
- `DisplayDensity`
2949
- **Breaking Change** The `onDensityChanged` output has been renamed to `densityChanged` to not violate the no on-prefixed outputs convention. All components exposing this event are affected. Automatic migrations are available and will be applied on `ng update`.
3050
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
@@ -43,7 +63,11 @@ All notable changes for each version of this project will be documented in this
4363
- **Breaking Change** The `roundShape` property has been deprecated and will be removed in a future version. Users can control the shape of the avatar by the newly added `shape` attribute that can be `square`, `rounded` or `circle`. The default shape of the avatar is `square`.
4464
- `IgxOverlayService`
4565
- `attach` method overload accepting `ComponentFactoryResolver` (trough `NgModuleRef`-like object) is now deprecated in line with API deprecated in Angular 13. New overload is added accepting `ViewComponentRef` that should be used instead.
46-
66+
- **Breaking Changes** - ` $label-floated-background` and `$label-floated-disabled-background` properties of `IgxInputGroupComponent` theme has been removed.
67+
- `IgxInputGroupComponent` The input group has been refactored so that the floating label for the input of `type="border"` does not require a background to match the surface background under the input field. Also, suffixes and prefixes are refactored to take the full height of the input which makes it easy to add background to them.
68+
- **Breaking Changes** - `$size` property of `scrollbar-theme` theme has been renamed to `$scrollbar-size`.
69+
- `IgxSimpleCombo`
70+
- The `IgxSimpleCombo` will not open its drop-down on clear.
4771

4872
## 15.0.1
4973

ROADMAP.md

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
# Current Milestone
44

5-
## Milestone 25, version 15.0 (Due by Jan, 2023)
5+
## Milestone 26, version 16.0 (Due by May, 2023)
66

7-
1. Design update of Combo Component
8-
2. Design update of Input Group Component
9-
3. Design update of List Component
7+
1. Compatability with Angular 16.0
8+
2. IgxDateRangePicker UX improvement [#11994](https://github.com/IgniteUI/igniteui-angular/issues/11994)
9+
3. IgxSimpleCombo: possibility to not open dropdown on clear [#11871](https://github.com/IgniteUI/igniteui-angular/issues/11871)
10+
4. Igx Grid allow cell selection on specific columns [#11704](https://github.com/IgniteUI/igniteui-angular/issues/11704)
11+
5. igniteui-angular as standalone component exports [#12698](https://github.com/IgniteUI/igniteui-angular/issues/12698)
12+
6. Resizing [IgxDrag] [#6283](https://github.com/IgniteUI/igniteui-angular/issues/6283)
1013

1114
## Going down the road
1215

@@ -20,7 +23,24 @@
2023

2124
# Previous Milestone
2225

23-
## Milestone 24, version 15.0 (Due by Nov, 2022) [Release Blog](https://www.infragistics.com/community/blogs/b/infragistics/posts/ignite-ui-december-release-2022)
26+
## Milestone 25, version 15.1 (Releasd March 28th, 2023)
27+
28+
1. **[DONE]** [Themes] - Use the sizable mixins and functions to size components [#12347](https://github.com/IgniteUI/igniteui-angular/issues/12347)
29+
2. **[DONE]** [Input] Update the UI according to the new design. [#12421](https://github.com/IgniteUI/igniteui-angular/issues/12421)
30+
3. **[DONE]** Use rem instead of px [#12377](https://github.com/IgniteUI/igniteui-angular/issues/12377)
31+
4. **[DONE]** Improve Material Outlined Input markup to allow for runtime label changes [#12221](https://github.com/IgniteUI/igniteui-angular/issues/12221)
32+
5. **[DONE]** Update overlay attach dynamic component overload [#11671](https://github.com/IgniteUI/igniteui-angular/issues/11671)
33+
6. **[DONE]** Add start and end slot to card actions [#12664](https://github.com/IgniteUI/igniteui-angular/issues/12664)
34+
7. **[DONE]** Suggestion for igx-grid group by row template [#12752](https://github.com/IgniteUI/igniteui-angular/issues/12752)
35+
8. **[DONE]** Checkbox: missing validation styling [#12585](https://github.com/IgniteUI/igniteui-angular/issues/12585)
36+
9. **[DONE]** Order by count in igx-grid group by [#11642](https://github.com/IgniteUI/igniteui-angular/issues/11642)
37+
10. **[DONE]** igxMask always set the symbol '9' as a fillable spot [#7089](https://github.com/IgniteUI/igniteui-angular/issues/7089)
38+
11. **[DONE]** IgxGrid: after selecting multiple cells using CNTL / click should be able to deselect an individual cell using CNTL / click [#12522](https://github.com/IgniteUI/igniteui-angular/issues/12522)
39+
12. **[DONE]** Add shape property to badge [#12588](https://github.com/IgniteUI/igniteui-angular/issues/12588)
40+
13. **[DONE]** Support height for card component [#12555](https://github.com/IgniteUI/igniteui-angular/issues/12555)
41+
14. **[DONE]** Design update of Combo Component
42+
43+
## Milestone 24, version 15.0 (Released November 23rd, 2022) [Release Blog](https://www.infragistics.com/community/blogs/b/infragistics/posts/ignite-ui-december-release-2022)
2444

2545
1. **[DONE]** Support exporting grid with summaries [#11598](https://github.com/IgniteUI/igniteui-angular/issues/11598)
2646
2. **[DONE]** Themes: Add support for adjusting spacing via CSS vars [#11368](https://github.com/IgniteUI/igniteui-angular/issues/11368)

gulpfile.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,6 @@ function typedocBuildExportFn(cb) {
188188
TYPEDOC.PROJECT_PATH,
189189
"--generate-json",
190190
TYPEDOC.EXPORT_JSON_PATH,
191-
"--tags",
192-
"--params",
193191
"--tsconfig",
194192
path.join(__dirname, "tsconfig.typedoc.json")],
195193
{ stdio: 'inherit', shell: true });

package-lock.json

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@
130130
"stylelint": "^15.1.0",
131131
"stylelint-scss": "^4.1.0",
132132
"ts-node": "^10.8.1",
133-
"typedoc": "^0.23.24",
134-
"typedoc-plugin-localization": "^2.4.0",
133+
"typedoc": "^0.23.21",
134+
"typedoc-plugin-localization": "^3.0.0",
135135
"typescript": "4.9.5"
136136
}
137137
}

projects/igniteui-angular/migrations/update-15_1_0/changes/members.json

Lines changed: 0 additions & 72 deletions
This file was deleted.

projects/igniteui-angular/migrations/update-15_1_0/index.spec.ts

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,15 +139,43 @@ describe(`Update to ${version}`, () => {
139139
);
140140
});
141141

142+
it('should append igxStart and igxEnd directives to the child elements of the igx-card-actions', async () => {
143+
appTree.create(`/testSrc/appPrefix/component/test.component.html`,
144+
`
145+
<igx-card-actions>
146+
<span igxButton>Span</span>
147+
<button igxButton>Button</button>
148+
<button igxButton="icon">
149+
<igx-icon>favorite</igx-icon>
150+
</button>
151+
<igx-icon>drag_indicator</igx-icon>
152+
</igx-card-actions>
153+
`
154+
);
155+
156+
const tree = await schematicRunner.runSchematic(migrationName, { shouldInvokeLS: false }, appTree);
157+
158+
expect(tree.readContent('/testSrc/appPrefix/component/test.component.html')).toEqual(
159+
`
160+
<igx-card-actions>
161+
<span igxButton igxStart>Span</span>
162+
<button igxButton igxStart>Button</button>
163+
<button igxButton="icon" igxEnd>
164+
<igx-icon>favorite</igx-icon>
165+
</button>
166+
<igx-icon igxEnd>drag_indicator</igx-icon>
167+
</igx-card-actions>
168+
`
169+
);
170+
});
171+
142172
it('should rename the $size property to the $scrollbar-size', async () => {
143173
appTree.create(
144174
`/testSrc/appPrefix/component/test.component.scss`,
145175
`$custom-scrollbar: scrollbar-theme($size: 10px);`
146176
);
147177

148-
const tree = await schematicRunner
149-
.runSchematicAsync(migrationName, {}, appTree)
150-
.toPromise();
178+
const tree = await schematicRunner.runSchematic(migrationName, { shouldInvokeLS: false }, appTree);
151179

152180
expect(tree.readContent('/testSrc/appPrefix/component/test.component.scss')).toEqual(
153181
`$custom-scrollbar: scrollbar-theme($scrollbar-size: 10px);`
@@ -160,9 +188,7 @@ describe(`Update to ${version}`, () => {
160188
`$custom-input: input-group-theme($label-floated-background: transparent, $label-floated-disabled-background: transparent);`
161189
);
162190

163-
const tree = await schematicRunner
164-
.runSchematicAsync(migrationName, {}, appTree)
165-
.toPromise();
191+
const tree = await schematicRunner.runSchematic(migrationName, { shouldInvokeLS: false }, appTree);
166192

167193
expect(tree.readContent('/testSrc/appPrefix/component/test.component.scss')).toEqual(
168194
`$custom-input: input-group-theme();`

projects/igniteui-angular/migrations/update-15_1_0/index.ts

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,79 @@ import {
33
SchematicContext,
44
Tree
55
} from '@angular-devkit/schematics';
6+
import { Element } from '@angular/compiler';
7+
import { nativeImport } from '../common/import-helper.js';
68
import { Options } from '../../schematics/interfaces/options';
79
import { BoundPropertyObject, InputPropertyType, UpdateChanges } from '../common/UpdateChanges';
10+
import { FileChange, findElementNodes, getAttribute, getSourceOffset, parseFile, hasAttribute } from '../common/util';
811

912
const version = '15.1.0';
1013

1114
export default (options: Options): Rule => async (host: Tree, context: SchematicContext) => {
1215
context.logger.info(`Applying migration for Ignite UI for Angular to version ${version}`);
1316

17+
const { HtmlParser } = await nativeImport('@angular/compiler') as typeof import('@angular/compiler');
1418
const update = new UpdateChanges(__dirname, host, context);
19+
const cardsToMigrate = new Set<any>();
20+
const CARD_ACTIONS = ['igx-card-actions'];
21+
const prop = ['igxButton'];
22+
const changes = new Map<string, FileChange[]>();
23+
24+
const applyChanges = () => {
25+
for (const [path, change] of changes.entries()) {
26+
let buffer = host.read(path).toString();
27+
28+
change.sort((c, c1) => c.position - c1.position)
29+
.reverse()
30+
.forEach(c => buffer = c.apply(buffer));
31+
32+
host.overwrite(path, buffer);
33+
}
34+
};
35+
36+
const addChange = (path: string, change: FileChange) => {
37+
if (changes.has(path)) {
38+
changes.get(path).push(change);
39+
} else {
40+
changes.set(path, [change]);
41+
}
42+
};
43+
44+
const getChildren = (parent: Element, buttons: any[], icons: any[]) => {
45+
const cardButtons = parent.children.filter(btn => (btn as Element).attrs !== undefined && hasAttribute(btn as Element, prop));
46+
const cardIcons = parent.children.filter(btn => (btn as Element).name === 'igx-icon');
47+
buttons.push(...cardButtons);
48+
icons.push(...cardIcons);
49+
}
50+
51+
for (const path of update.templateFiles) {
52+
cardsToMigrate.clear();
53+
const cardActions = findElementNodes(parseFile(new HtmlParser(), host, path), CARD_ACTIONS);
54+
cardActions.forEach(card => {
55+
const card_action_elem = card as Element;
56+
const buttons: any[] = [];
57+
const icons: any[] = [];
58+
getChildren(card_action_elem, buttons, icons);
59+
60+
icons.map(node =>getSourceOffset(node as Element))
61+
.forEach(offset => {
62+
const { startTag, file } = offset;
63+
addChange(file.url, new FileChange(startTag.end - 1, ' igxEnd'));
64+
})
65+
66+
buttons.map(node => getSourceOffset(node as Element))
67+
.forEach(offset => {
68+
const { startTag, file, node } = offset;
69+
const { value } = getAttribute(node, prop)[0];
70+
if (value === 'icon') {
71+
addChange(file.url, new FileChange(startTag.end - 1, ' igxEnd'));
72+
} else {
73+
addChange(file.url, new FileChange(startTag.end - 1, ' igxStart'));
74+
}
75+
});
76+
});
77+
}
78+
1579
update.shouldInvokeLS = options['shouldInvokeLS'];
1680
update.addValueTransform('roundShape_is_deprecated', (args: BoundPropertyObject): void => {
1781
args.bindingType = InputPropertyType.STRING;
@@ -27,5 +91,7 @@ export default (options: Options): Rule => async (host: Tree, context: Schematic
2791
args.value += ` ? 'circle' : 'square' `;
2892
}
2993
});
94+
95+
applyChanges();
3096
update.applyChanges();
3197
};

projects/igniteui-angular/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
"@angular/forms": "^15.0.0"
8787
},
8888
"igxDevDependencies": {
89-
"@igniteui/angular-schematics": "~15.0.1100"
89+
"@igniteui/angular-schematics": "~15.1.1110"
9090
},
9191
"ng-update": {
9292
"migrations": "./migrations/migration-collection.json"

0 commit comments

Comments
 (0)