Skip to content

Commit 7c0b1eb

Browse files
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

.claude/settings.local.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(tree:*)"
5+
]
6+
},
7+
"enabledMcpjsonServers": [
8+
"postgres",
9+
"newrelic"
10+
],
11+
"enableAllProjectMcpServers": true
12+
}

0 commit comments

Comments
 (0)