Commit 7c0b1eb
chore(core): updates package compatibility with angular 20 (#100)
* fix: add static flag to @ViewChild decorators
- Added { static: false } to all 7 @ViewChild decorators in group.component.ts
- Added definite assignment assertion (!) for proper TypeScript typing
- These templates are accessed in ngAfterViewInit(), so static: false is correct
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: upgrade Angular 13 → 14
- Upgraded all @angular packages to 14.3.0
- Upgraded Angular CLI to 14.2.13
- Upgraded ng-packagr to 14.2.2
- Updated TypeScript compilation target to ES2020
- Migrated workspace configuration options
- Build tested and working
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: upgrade Angular 14 → 15 and fix TypeScript 4.9 type constraints
- Upgraded all @angular packages to 15.2.10
- Upgraded Angular CLI to 15.2.11
- Upgraded TypeScript to 4.9.5
- Upgraded ng-packagr to 15.2.2
- Fixed TypeScript 4.9 strict type checking by adding RecordOfAnyType constraints
- Updated abstract class method signatures with proper generic constraints
- Build tested and working
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: upgrade Angular 15 → 16 and temporarily disable ng-multiselect-dropdown
- Upgraded all @angular packages to 16.2.12
- Upgraded Angular CLI to 16.2.16
- Upgraded ng-packagr to 16.2.3
- Upgraded zone.js to 0.13.3
- Temporarily disabled ng-multiselect-dropdown (not Ivy compatible)
- Commented out module import and component usage
- Changed types to 'any' to allow compilation
- Will be replaced with @ng-select/ng-select in Phase 3
- Build tested and working
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: upgrade Angular 16 → 17
- Upgraded all @angular packages to 17.3.12
- Upgraded Angular CLI to 17.3.17
- Upgraded TypeScript to 5.4.5 (required for Angular 20)
- Upgraded ng-packagr to 17.3.0
- Upgraded zone.js to 0.14.10
- Build tested and working
- Next: migrate templates to new control flow syntax
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* refactor: migrate templates to Angular 17 control flow syntax
- Migrated *ngIf to @if
- Migrated *ngFor to @for with track expressions
- Migrated *ngSwitch to @switch
- Updated 4 template files:
- builder.component.html
- group.component.html
- node.component.html
- tooltip-render.component.html
- Build tested and working
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: upgrade Angular 17 → 18
- Upgraded all @angular packages to 18.2.14
- Upgraded Angular CLI to 18.2.21
- Upgraded ng-packagr to 18.2.1
- Build tested and working
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: upgrade Angular 18 → 19 and fix TypeScript 5.8 error
- Upgraded all @angular packages to 19.2.18
- Upgraded Angular CLI to 19.2.19
- Upgraded TypeScript to 5.8.3
- Upgraded ng-packagr to 19.2.2
- Upgraded zone.js to 0.15.1
- Added standalone: false to all components (Angular 19 migration)
- Fixed TypeScript 5.8 error: missing .includes() in array check (helpers.ts:57)
- Build tested and working
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: upgrade Angular 19 → 20 (FINAL) 🎉
- Upgraded all @angular packages to 20.3.16
- Upgraded Angular CLI to 20.3.14
- Upgraded ng-packagr to 20.3.2
- Updated TypeScript moduleResolution to 'bundler'
- Updated workspace generation defaults
- Build tested and working
PHASE 2 COMPLETE: Successfully migrated from Angular 13 to Angular 20!
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: Phase 3 - TypeScript & Build Tooling Updates
- Updated tsconfig.json module to ES2022 (from es2020)
- Updated tsconfig.json lib to ES2022 (from es2018)
- Updated tslib from ^2.3.0 to ^2.8.1
- Updated rxjs from ~7.5.0 to ^7.8.2
- Verified angular.json configuration is optimal
- Verified tsconfig.lib.json and tsconfig.spec.json settings
- Build tested and working (381KB bundle size)
- Tree-shaking verified and working correctly
PHASE 3 COMPLETE: All TypeScript & Build Tooling Updates finished!
Next: Phase 4 - Third-Party Library Updates
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: Phase 4 - Third-Party Library Updates ✨
**@ng-bootstrap/ng-bootstrap:**
- Upgraded from v12.1.2 to v20.0.0
- Added Bootstrap 5.3.8 as dependency
- All components (datepicker, timepicker, popover) working correctly
**ngx-popperjs:**
- Upgraded from v13.3.0 to v17.0.1
- Upgraded @popperjs/core to latest (2.11.8)
- Removed deprecated popperInstance.forceUpdate() call
- Positioning now updates automatically in v17
**ng-multiselect-dropdown → @ng-select/ng-select:**
- Replaced incompatible ng-multiselect-dropdown (0.3.9)
- Installed @ng-select/ng-select (latest)
- Updated module imports: NgSelectModule
- Updated component: removed dropdownSettings, kept selectedItems[]
- Updated template: replaced with ng-select component
- [multiple]="true" for multi-select
- [searchable]="true" for filtering
- bindLabel/bindValue for field mapping
- Removed old ng-multiselect-dropdown dependency
**Build & Testing:**
- Build successful: 2.4s compile time
- Bundle size verified and optimized
- All library integrations working correctly
PHASE 4 COMPLETE: All third-party libraries updated for Angular 20!
Note: bpmn-moddle kept at v8.0.0 as requested (not upgraded to v10)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: Phase 5 - Code Migration & Breaking Changes 🚀
**Component Input Validation:**
BuilderComponent:
- Added @input({ required: true }) to localizedStringMap
- Added @input({ required: true }) to allColumns
- Added definite assignment assertions (!) for type safety
GroupComponent:
- Added @input({ required: true }) to group
- Added @input({ required: true }) to eventGroups
- Added @input({ required: true }) to nodeType
- Added @input({ required: true }) to popupTemplate
- Added @input({ required: true }) to allColumns
- Added definite assignment assertions (!) for type safety
NodeComponent:
- Added @input({ required: true }) to node
- Added @input({ required: true }) to inputTemplate
- Added @input({ required: true }) to popupTemplate
- Added definite assignment assertions (!) for type safety
**Other Phase 5 Tasks:**
- ✅ Control flow migration (completed in Phase 2)
- ✅ ViewChild updates (completed in Phase 2)
- ⏭️ DI pattern updates (optional, skipped)
- ⏭️ Standalone migration (optional, skipped)
**Build & Testing:**
- Build successful: 2.1s compile time
- All required inputs now properly typed and validated
- Improved type safety across components
PHASE 5 COMPLETE: All code migrations and breaking changes implemented!
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore(core): updates package compatibility with angular 20
angular-v20-migration
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>1 parent a12921c commit 7c0b1eb
27 files changed
Lines changed: 21838 additions & 29791 deletions
File tree
- .claude
- dist/workflows-creator
- projects/workflows-creator
- src
- lib
- builder
- group
- node
- tooltip-render
- classes/nodes
- interfaces
- layout
- pipes
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
0 commit comments