Skip to content

Commit f3ac19d

Browse files
authored
Merge branch 'master' into rivanova/fix-15848-master
2 parents 3e4a718 + d0361ce commit f3ac19d

File tree

54 files changed

+336
-269
lines changed

Some content is hidden

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

54 files changed

+336
-269
lines changed

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,34 @@
22

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

5+
## 20.0.0
6+
7+
### General
8+
- **Angular 20 Compatibility** - Ignite UI for Angular now plays nice with Angular 20! Upgrade your apps and enjoy the latest features.
9+
- `IgxActionStrip`
10+
- **Behavioral Changes** - When using the Action Strip standalone, outside of Grid, scenarios the component is no longer initially visible and the `hidden` property now defaults to `true`.
11+
- `IgxChip`
12+
- **Behavioral Change** The `variant` is now strictly typed with the union of supported options and no longer accepts invalid values for the default state, provide no value (nullish) instead is needed.
13+
14+
### New Features
15+
- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`, `IgxPivotGrid`
16+
- Added a new `igxGridEmpty` template directive that allows assigning the `emptyGridTemplate` declaratively, without the need to get and assign reference, like other grid templates like:
17+
```html
18+
<igx-grid>
19+
<ng-template igxGridEmpty>
20+
<!-- content to show when the grid is empty -->
21+
</ng-template>
22+
</igx-grid>
23+
```
24+
- Added a new `igxGridLoading` template directive that allows assigning the `loadingGridTemplate` declaratively, without the need to get and assign reference, like other grid templates like:
25+
```html
26+
<igx-grid>
27+
<ng-template igxGridLoading>
28+
<!-- content to show when the grid is loading -->
29+
</ng-template>
30+
</igx-grid>
31+
```
32+
533
## 19.2.0
634

735
### General

angular.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@
323323
],
324324
"outputHashing": "none",
325325
"optimization": true,
326-
"externalDependencies": ["lit-html"]
326+
"externalDependencies": ["lit"]
327327
},
328328
"development": {
329329
"optimization": false,

package-lock.json

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
"express": "^5.1.0",
7676
"fflate": "^0.8.1",
7777
"igniteui-theming": "^18.0.1",
78-
"igniteui-trial-watermark": "^3.0.2",
78+
"igniteui-trial-watermark": "^3.1.0",
7979
"lodash-es": "^4.17.21",
8080
"rxjs": "^7.8.2",
8181
"tslib": "^2.3.0",

projects/igniteui-angular-elements/esbuild.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const config = {
88
minify: false, // temporary disabled due to Webpack issues https://github.com/webpack/webpack/issues/16262
99
outfile: `${ROOT}/elements.js`,
1010
format: 'esm',
11-
external: ['lit-html'],
11+
external: ['lit'],
1212
target: 'es2022',
1313
metafile: true,
1414
treeShaking: true

projects/igniteui-angular-elements/src/app/custom-strategy.spec.ts

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { IgxColumnComponent, IgxGridComponent, IgxHierarchicalGridComponent } from 'igniteui-angular';
2-
import { html } from 'lit-html';
2+
import { html } from 'lit';
33
import { firstValueFrom, fromEvent, skip, timer } from 'rxjs';
44
import { ComponentRefKey, IgcNgElement } from './custom-strategy';
55
import hgridData from '../assets/data/projects-hgrid.js';
@@ -11,6 +11,7 @@ import {
1111
IgcColumnComponent,
1212
IgcPaginatorComponent,
1313
IgcGridStateComponent,
14+
IgcColumnLayoutComponent,
1415
} from './components';
1516
import { defineComponents } from '../utils/register';
1617

@@ -23,6 +24,7 @@ describe('Elements: ', () => {
2324
IgcHierarchicalGridComponent,
2425
IgcPivotGridComponent,
2526
IgcColumnComponent,
27+
IgcColumnLayoutComponent,
2628
IgcPaginatorComponent,
2729
IgcGridStateComponent,
2830
);
@@ -181,5 +183,52 @@ describe('Elements: ', () => {
181183
await firstValueFrom(timer(10 /* SCHEDULE_DELAY */ * 2));
182184
expect(() => stateComponent.getStateAsString()).not.toThrow();
183185
});
186+
187+
it(`should allow manipulating projected columns through the DOM`, async () => {
188+
const innerHtml = `
189+
<igc-grid id="testGrid" primary-key="ProductID">
190+
<igc-column-layout header="Product ID">
191+
<igc-column row-start="1" col-start="1" row-end="3" field="ProductID" header="Product ID" width="25%"></igc-column>
192+
</igc-column-layout>
193+
<igc-column-layout header="Product Details">
194+
<igc-column row-start="1" col-start="1" col-end="3" field="ProductName" header="Product Name"></igc-column>
195+
<igc-column row-start="2" col-start="1" col-end="2" field="CategoryName" header="Category Name" groupable="true"></igc-column>
196+
<igc-column row-start="2" col-start="2" col-end="3" field="ImageUrl"></igc-column>
197+
</igc-column-layout>
198+
<igc-column-layout header="Product Stock">
199+
<igc-column row-start="1" col-start="1" col-end="3" field="InStock" header="In Stock" width="25%"></igc-column>
200+
</igc-column-layout>
201+
</igc-grid>`;
202+
testContainer.innerHTML = innerHtml;
203+
204+
// TODO: Better way to wait - potentially expose the queue or observable for update on the strategy
205+
await firstValueFrom(timer(10 /* SCHEDULE_DELAY */ * 3));
206+
207+
const grid = document.querySelector<IgcNgElement & InstanceType<typeof IgcGridComponent>>('#testGrid');
208+
const thirdGroup = document.querySelector<IgcNgElement>('igc-column-layout[header="Product Stock"]');
209+
const secondGroup = document.querySelector<IgcNgElement>('igc-column-layout[header="Product Details"]');
210+
211+
expect(grid.columns.length).toEqual(8);
212+
expect(grid.getColumnByName('ProductID')).toBeTruthy();
213+
expect(grid.getColumnByVisibleIndex(1).field).toEqual('ProductName');
214+
215+
grid.removeChild(secondGroup);
216+
await firstValueFrom(timer(10 /* SCHEDULE_DELAY */ * 3));
217+
218+
expect(grid.columns.length).toEqual(4);
219+
expect(grid.getColumnByName('ProductID')).toBeTruthy();
220+
expect(grid.getColumnByVisibleIndex(1).field).toEqual('InStock');
221+
222+
// TODO: secondGroup can't be re-used
223+
const newGroup = document.createElement('igc-column-layout');
224+
const newColumn = document.createElement('igc-column');
225+
newColumn.setAttribute('field', 'ProductName');
226+
newGroup.appendChild(newColumn);
227+
grid.insertBefore(newGroup, thirdGroup);
228+
await firstValueFrom(timer(10 /* SCHEDULE_DELAY */ * 3));
229+
230+
expect(grid.columns.length).toEqual(6);
231+
expect(grid.getColumnByVisibleIndex(1).field).toEqual('ProductName');
232+
});
184233
});
185234
});

projects/igniteui-angular-elements/src/app/wrapper/wrapper.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ComponentFixture, TestBed } from '@angular/core/testing';
2-
import { html } from 'lit-html';
2+
import { html } from 'lit';
33
import { AsyncDirective, directive } from 'lit/async-directive.js';
44
import { TemplateWrapperComponent } from './wrapper.component';
55

projects/igniteui-angular-elements/src/app/wrapper/wrapper.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { ChangeDetectorRef, Component, QueryList, TemplateRef, ViewChildren } fr
22
import { Subject } from 'rxjs';
33
import { TemplateRefWrapper } from './template-ref-wrapper';
44

5-
import { render, type RootPart, type TemplateResult } from 'lit-html';
5+
import { render, type RootPart, type TemplateResult } from 'lit';
66

77
type TemplateFunction = (arg: any) => TemplateResult;
88

projects/igniteui-angular-elements/src/lib/state.component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export interface IGridStateInfo {
4646
@Component({
4747
selector: 'igx-grid-state',
4848
template: ``,
49+
styles: `:host { display: none }`,
4950
standalone: true
5051
})
5152
export class IgxGridStateComponent extends IgxGridStateBaseDirective {

projects/igniteui-angular/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
"dependencies": {
7272
"fflate": "^0.8.1",
7373
"tslib": "^2.3.0",
74-
"igniteui-trial-watermark": "^3.0.2",
74+
"igniteui-trial-watermark": "^3.1.0",
7575
"lodash-es": "^4.17.21",
7676
"igniteui-theming": "^18.0.1",
7777
"@igniteui/material-icons-extended": "^3.1.0"
@@ -93,7 +93,7 @@
9393
}
9494
},
9595
"igxDevDependencies": {
96-
"@igniteui/angular-schematics": "~19.2.1440"
96+
"@igniteui/angular-schematics": "~20.0.1450"
9797
},
9898
"ng-update": {
9999
"migrations": "./migrations/migration-collection.json",

0 commit comments

Comments
 (0)