Skip to content

Conversation

@iaromoskviak
Copy link
Collaborator

This PR upgrades the GSRS Frontend to Angular 20 on top of development_3.0 and includes the required migration with zero build errors and modernizing the codebase.

Highlights:

  • Upgraded Angular 13 → 20 (all intermediate versions)

  • Fixed 1,973 TypeScript errors — builds now pass cleanly

  • Updated dependencies: Angular 20.3.14, Material 20.2.14 (MDC migration completed), TypeScript 5.9.3, RxJS 7.8.1, PrimeNG 20+

  • Replaced deprecated .toPromise() → lastValueFrom()

  • Migrated Sass from @import@use (no deprecation warnings)

  • Modernized build system: ES2022 target, Bundler module resolution

  • Enabled strictInjectionParameters (Strict DI)

Impact

26+ files updated across configs, services, components, and styles

Production bundle: 7.13 MB raw / 1.17 MB gzip

Build time: ~25 seconds, fully successful

jarcimos and others added 20 commits November 5, 2025 12:20
Resolved conflict in config.json:
- Kept disableJSDraw: false to enable both Ketcher and JSDraw editors
- Removed duplicate restApiPrefix entry
- Update Angular core packages from 19.2.15 to 20.3.14
- Update Angular CLI from 19.2.19 to 20.3.12
- Update TypeScript from 5.5.4 to 5.9.3
- Update moduleResolution to 'bundler' in tsconfig.json
- Move DOCUMENT imports from @angular/common to @angular/core
…jectionParameters

- Remove obsolete Angular compiler flags (aot, buildOptimizer, enableIvy)
- Fix field initialization: move DI-dependent fields to constructor (10 services)
- Remove duplicate property declarations in child classes (bdnum, product fields)
- Modernize RxJS: replace toPromise() with lastValueFrom() (2 files)
- Fix DI decorators: @Injectable@directive for base classes with @Input/@output
- Migrate Sass: @import@use in 8 SCSS files for Dart Sass 3.0 compatibility
- Remove unused dependencies: classlist.js, tslint, codelyzer, core-js
- Add missing sprintf-js dependency
- Clean up unused imports and variables (admin.component, substance-application.component)
Property already inherited from SubstanceDetailsBaseTableDisplay parent class.
Removed redundant @input() declaration and unused Input import.
@iaromoskviak iaromoskviak deleted the iaro/upgrade-ng20 branch December 18, 2025 21:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants