fix(ivy): queries not being inherited from undecorated classes (#30015)
Fixes view and content queries not being inherited in Ivy, if the base class hasn't been annotated with an Angular decorator (e.g. `Component` or `Directive`). Also reworks the way the `ngBaseDef` is created so that it is added at the same point as the queries, rather than inside of the `Input` and `Output` decorators. This PR partially resolves FW-1275. Support for host bindings will be added in a follow-up, because this PR is somewhat large as it is. PR Close #30015
This commit is contained in:

committed by
Andrew Kushnir

parent
8ca208ff59
commit
c7f1b0a97f
@ -96,7 +96,7 @@ export type ɵɵDirectiveDefWithMeta<
|
||||
* Runtime information for classes that are inherited by components or directives
|
||||
* that aren't defined as components or directives.
|
||||
*
|
||||
* This is an internal data structure used by the render to determine what inputs
|
||||
* This is an internal data structure used by the renderer to determine what inputs
|
||||
* and outputs should be inherited.
|
||||
*
|
||||
* See: {@link defineBase}
|
||||
@ -123,6 +123,18 @@ export interface ɵɵBaseDef<T> {
|
||||
* (as in `@Output('alias') propertyName: any;`).
|
||||
*/
|
||||
readonly outputs: {[P in keyof T]: string};
|
||||
|
||||
/**
|
||||
* Function to create and refresh content queries associated with a given directive.
|
||||
*/
|
||||
contentQueries: ContentQueriesFunction<T>|null;
|
||||
|
||||
/**
|
||||
* Query-related instructions for a directive. Note that while directives don't have a
|
||||
* view and as such view queries won't necessarily do anything, there might be
|
||||
* components that extend the directive.
|
||||
*/
|
||||
viewQuery: ViewQueriesFunction<T>|null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -161,18 +173,6 @@ export interface DirectiveDef<T> extends ɵɵBaseDef<T> {
|
||||
*/
|
||||
factory: FactoryFn<T>;
|
||||
|
||||
/**
|
||||
* Function to create and refresh content queries associated with a given directive.
|
||||
*/
|
||||
contentQueries: ContentQueriesFunction<T>|null;
|
||||
|
||||
/**
|
||||
* Query-related instructions for a directive. Note that while directives don't have a
|
||||
* view and as such view queries won't necessarily do anything, there might be
|
||||
* components that extend the directive.
|
||||
*/
|
||||
viewQuery: ViewQueriesFunction<T>|null;
|
||||
|
||||
/**
|
||||
* Refreshes host bindings on the associated directive.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user