Change8

v22.0.0-next.5

Breaking Changes
📦 angularView on GitHub →
3 breaking7 features🐛 12 fixes🔧 1 symbols

Summary

This release introduces new features for Signal Forms, sets Component changeDetection to OnPush by default, and removes Hammer.js integration. It also introduces compile-time diagnostics for duplicate selectors.

⚠️ Breaking Changes

  • Elements with multiple matching selectors will now throw at compile time.
  • Component with undefined `changeDetection` property are now `OnPush` by default. Specify `changeDetection: ChangeDetectionStrategy.Eager` to keep the previous behavior.
  • Hammer.js integration has been removed. Use your own implementation.

Migration Steps

  1. If you relied on components having `changeDetection: ChangeDetectionStrategy.Default`, explicitly set `changeDetection: ChangeDetectionStrategy.Eager` on those components.
  2. Remove any usage of Hammer.js integration provided by Angular.

✨ New Features

  • Support comments in html element in compiler.
  • Allow other expression for exhaustive typechecking in core.
  • Set default Component changeDetection strategy to OnPush in core.
  • Add `reloadValidation` to Signal Forms to manually trigger async validation in forms.
  • Add debounce option to validateAsync and validateHttp in forms.
  • Add FieldState.getError() in forms.
  • Support binding `number|null` to `<input type="text">` in forms.

🐛 Bug Fixes

  • Avoid redundant image fetch on destroy with auto sizes in common.
  • Abstract emitter producing incorrect code for dynamic imports in compiler.
  • Prevent shimCssText from adding extra blank lines per CSS comment in compiler.
  • Ensure custom controls resolve transitive host directives in core.
  • Fixes a regression with animate.leave and reordering in core.
  • Lazy-initialize debounced state to prevent computation cycle in core.
  • Resolver function not matching expected type in core.
  • Widen type for directive inputs/outputs in core.
  • Allow `FormRoot` to be used without submission options (#67727) in forms.
  • Change FieldState optional properties to non-optional in forms.
  • Clear native date inputs correctly in signal forms when changed via native UI in forms.
  • Inject migration not work in multi-project workspace with option path in migrations.

Affected Symbols