fix(elements): support exposed host directive bindings - #70334
Open
97Fakhreddine wants to merge 1 commit into
Open
fix(elements): support exposed host directive bindings#7033497Fakhreddine wants to merge 1 commit into
97Fakhreddine wants to merge 1 commit into
Conversation
Expose host directive inputs and outputs when components are converted to custom elements. Reuse Angular's existing host directive resolution and input routing so aliases, transforms, signal inputs, and output events preserve their runtime semantics. Fixes angular#53193
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Checklist
Please check if your PR fulfills the following requirements:
No documentation changes are required because this fixes existing custom-element behavior without introducing a new public API.
PR Type
What kind of change does this PR introduce?
What is the current behavior?
When a component that exposes host directive inputs or outputs is converted to a custom element with
createCustomElement, those exposed bindings are not included in the custom-element API.As a result, exposed host directive inputs cannot be set through element properties or attributes, and exposed host directive outputs are not dispatched as custom-element events.
Issue Number: #53193
What is the new behavior?
Custom elements now include host directive bindings that are explicitly exposed by the component.
The implementation:
ComponentRef.setInput, preserving Angular's input transforms, signal-input behavior, and change detection;Regression tests cover exposed input aliases, input transforms, values set before and after connection, signal input getters, output events, and hidden host directive inputs.
Does this PR introduce a breaking change?
Other information
Fixes #53193.