Skip to content

Commit c0c007c

Browse files
Copilotkdinevwnvkogedinakovadamyanpetev
authored
Implement multiple entry points for igniteui-angular (#16326)
--------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: kdinev <[email protected]> Co-authored-by: Konstantin Dinev <[email protected]> Co-authored-by: Konstantin Dinev <[email protected]> Co-authored-by: wnvko <[email protected]> Co-authored-by: Galina Edinakova <[email protected]> Co-authored-by: damyanpetev <[email protected]> Co-authored-by: Radoslav Karaivanov <[email protected]>
1 parent c3386b6 commit c0c007c

File tree

1,596 files changed

+8769
-7246
lines changed

Some content is hidden

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

1,596 files changed

+8769
-7246
lines changed

CHANGELOG.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,50 @@
33
All notable changes for each version of this project will be documented in this file.
44

55

6+
## 21.0.0
7+
8+
### Breaking Changes
9+
10+
#### Multiple Entry Points Support
11+
12+
The library now supports multiple entry points for better tree-shaking and code splitting. While the main entry point (`igniteui-angular`) remains fully backwards compatible by re-exporting all granular entry points, we recommend migrating to the new entry points for optimal bundle sizes.
13+
14+
**Entry Points:**
15+
- `igniteui-angular/core` - Core utilities, services, and base types
16+
- `igniteui-angular/directives` - Common directives
17+
- Component-specific entry points: `igniteui-angular/grids`, `igniteui-angular/input-group`, `igniteui-angular/drop-down`, etc.
18+
- Grid-specific entry points for tree-shakable imports:
19+
- `igniteui-angular/grids/core` - Shared grid infrastructure (columns, toolbar, filtering, sorting, etc.)
20+
- `igniteui-angular/grids/grid` - Standard grid component (`IgxGridComponent`)
21+
- `igniteui-angular/grids/tree-grid` - Tree grid component (`IgxTreeGridComponent`)
22+
- `igniteui-angular/grids/hierarchical-grid` - Hierarchical grid component (`IgxHierarchicalGridComponent`, `IgxRowIslandComponent`)
23+
- `igniteui-angular/grids/pivot-grid` - Pivot grid component (`IgxPivotGridComponent`, `IgxPivotDataSelectorComponent`)
24+
25+
**Migration:**
26+
The `ng update` migration will prompt you to optionally migrate your imports to the new entry points. If you choose not to migrate, you can continue using the main entry point with full backwards compatibility.
27+
28+
To migrate manually later:
29+
```bash
30+
ng update igniteui-angular --migrate-only --from=20.1.0 --to=21.0.0 --migrate-imports
31+
```
32+
33+
**Component Relocations:**
34+
- Input directives (`IgxHintDirective`, `IgxInputDirective`, `IgxLabelDirective`, `IgxPrefixDirective`, `IgxSuffixDirective`) → `igniteui-angular/input-group`
35+
- `IgxAutocompleteDirective``igniteui-angular/drop-down`
36+
- `IgxRadioGroupDirective``igniteui-angular/radio`
37+
38+
**Type Renames (to avoid conflicts):**
39+
- `Direction``CarouselAnimationDirection` (in carousel)
40+
41+
**Benefits:**
42+
- Better tree-shaking - unused components won't be bundled
43+
- Code splitting - each component can be lazy-loaded separately
44+
- Smaller bundle sizes - import only what you need
45+
- Improved build performance
46+
47+
See the [Angular Package Format documentation](https://angular.io/guide/angular-package-format#entrypoints-and-code-splitting) for more details on entry points.
48+
49+
650
## 20.1.0
751

852
### New Features

README.md

Lines changed: 44 additions & 47 deletions
Large diffs are not rendered by default.

angular.json

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@
166166
},
167167
"igniteui-angular": {
168168
"root": "projects/igniteui-angular",
169-
"sourceRoot": "projects/igniteui-angular/src",
169+
"sourceRoot": "projects/igniteui-angular",
170170
"projectType": "library",
171171
"prefix": "lib",
172172
"architect": {
@@ -204,7 +204,11 @@
204204
]
205205
},
206206
"tsConfig": "projects/igniteui-angular/tsconfig.spec.json",
207-
"karmaConfig": "projects/igniteui-angular/karma.conf.js"
207+
"karmaConfig": "projects/igniteui-angular/karma.conf.js",
208+
"exclude": [
209+
"migrations",
210+
"schematics"
211+
]
208212
}
209213
},
210214
"lint": {
@@ -399,6 +403,7 @@
399403
"outputPath": "dist/bundle-test",
400404
"index": "projects/bundle-test/src/index.html",
401405
"browser": "projects/bundle-test/src/main.ts",
406+
"server": "projects/bundle-test/src/main.server.ts",
402407
"polyfills": [
403408
"zone.js"
404409
],
@@ -414,19 +419,25 @@
414419
"node_modules"
415420
]
416421
},
417-
"server": "projects/bundle-test/src/main.server.ts",
418422
"ssr": {
419423
"entry": "projects/bundle-test/server.ts"
420424
}
421425
},
422426
"configurations": {
423427
"production": {
428+
"statsJson": true,
424429
"budgets": [
425430
{
426431
"type": "initial",
427432
"maximumWarning": "500kb",
428433
"maximumError": "1mb"
429434
},
435+
{
436+
"type": "bundle",
437+
"name": "grid-component",
438+
"maximumWarning": "500kb",
439+
"maximumError": "1mb"
440+
},
430441
{
431442
"type": "anyComponentStyle",
432443
"maximumWarning": "2kb",

0 commit comments

Comments
 (0)