angular/packages/compiler/src
Leon Senft effccffde0 refactor(core): add framework support for binding form controls (#63773)
Move most of the implementation of the `Control` directive into core
framework instructions. This allows field state changes to be propagated
to their corresponding UI controls directly during execution of a
template update block, instead of relying on `effect()`s to synchronize
each change later during the update (and too late in the case of
required inputs).

* Define a private API in `@angular/core` for signal forms to implement:
  * `ɵControl` for the `Control` directive.
  * `ɵFieldState` for the control's associated `FieldState`.
* Emit specialized instructions when compiling a `[control]` binding:
  * `ɵɵcontrolCreate` sets up the `ɵControl` directive if present,
    determines whether it's bound to a native control element or a
    custom control component, and adds the appropriate event listeners
    to notify the `ɵFieldState` of UI changes.
  * `ɵɵcontrol` propagates changes from `ɵFieldState` properties to their
    corresponding UI control properties (in additional to binding the `control`
    property itself).

PR Close #63773
2025-10-04 13:21:55 -07:00
..
expression_parser fix(compiler): recover template literals with broken expressions (#64150) 2025-09-30 16:01:50 -04:00
i18n refactor(compiler): Remove the interpolation config (#64071) 2025-09-29 15:29:46 -04:00
ml_parser refactor(compiler): Remove the interpolation config (#64071) 2025-09-29 15:29:46 -04:00
output refactor(compiler): add output AST node for regular expressions (#63887) 2025-09-18 15:08:56 +00:00
render3 refactor(core): add framework support for binding form controls (#63773) 2025-10-04 13:21:55 -07:00
schema fix(compiler): Add support for aria-invalid (#63748) 2025-09-15 18:41:16 +00:00
template/pipeline refactor(core): add framework support for binding form controls (#63773) 2025-10-04 13:21:55 -07:00
template_parser refactor(compiler): Remove the interpolation config (#64071) 2025-09-29 15:29:46 -04:00
assertions.ts refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
chars.ts refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
combined_visitor.ts refactor(compiler): consolidate combined recursive visitors (#61158) 2025-05-08 07:11:36 +02:00
compiler.ts refactor(compiler): replace output AST write nodes (#61682) 2025-06-03 11:08:50 -04:00
compiler_facade_interface.ts refactor(compiler): Remove the interpolation config (#64071) 2025-09-29 15:29:46 -04:00
config.ts refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
constant_pool.ts refactor(compiler): integrate regular expression literals into pipeline (#63887) 2025-09-18 15:08:56 +00:00
core.ts feat(platform-browser): Add IsolatedShadowDom encapsulation method (#62723) 2025-08-06 16:48:37 +02:00
directive_matching.ts refactor(compiler): add more information to template binder (#60977) 2025-04-24 13:02:39 -07:00
injectable_compiler_2.ts refactor(compiler): avoid duplication between FactoryTarget type (#61472) 2025-05-20 10:00:43 +00:00
jit_compiler_facade.ts refactor(compiler): Remove the interpolation config (#64071) 2025-09-29 15:29:46 -04:00
parse_util.ts refactor(compiler): ensure compiler passes closure conformance checks (#62500) 2025-07-07 16:14:16 +00:00
resource_loader.ts refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
shadow_css.ts fix(compiler): handle :host-context with comma-separated child selector (#59276) 2025-01-21 09:11:16 -08:00
style_url_resolver.ts refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
util.ts refactor(compiler): remove unused code (#61668) 2025-05-26 12:21:09 +00:00
version.ts refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00