feat(upgrade): support multi-slot projection in upgrade/static (#14282)
Closes #14261
This commit is contained in:

committed by
Chuck Jazdzewski

parent
ab40fcb068
commit
914797a8ff
@ -11,6 +11,7 @@ import {ComponentFactory, ComponentFactoryResolver, Injector, Type} from '@angul
|
||||
import * as angular from './angular1';
|
||||
import {$COMPILE, $INJECTOR, $PARSE, INJECTOR_KEY, REQUIRE_INJECTOR, REQUIRE_NG_MODEL} from './constants';
|
||||
import {DowngradeComponentAdapter} from './downgrade_component_adapter';
|
||||
import {NgContentSelectorHelper} from './ng_content_selector_helper';
|
||||
import {controllerKey, getComponentName} from './util';
|
||||
|
||||
let downgradeCount = 0;
|
||||
@ -44,6 +45,7 @@ let downgradeCount = 0;
|
||||
* We must do the following:
|
||||
* * specify the Angular component class that is to be downgraded
|
||||
* * specify all inputs and outputs that the AngularJS component expects
|
||||
* * specify the selectors used in any `ng-content` elements in the component's template
|
||||
*
|
||||
* @description
|
||||
*
|
||||
@ -53,19 +55,28 @@ let downgradeCount = 0;
|
||||
* The parameter contains information about the Component that is being downgraded:
|
||||
*
|
||||
* * `component: Type<any>`: The type of the Component that will be downgraded
|
||||
* * `inputs: string[]`: A collection of strings that specify what inputs the component accepts.
|
||||
* * `outputs: string[]`: A collection of strings that specify what outputs the component emits.
|
||||
* * `inputs: string[]`: A collection of strings that specify what inputs the component accepts
|
||||
* * `outputs: string[]`: A collection of strings that specify what outputs the component emits
|
||||
* * `selectors: string[]`: A collection of strings that specify what selectors are expected on
|
||||
* `ng-content` elements in the template to enable content projection (a.k.a. transclusion in
|
||||
* AngularJS)
|
||||
*
|
||||
* The `inputs` and `outputs` are strings that map the names of properties to camelCased
|
||||
* attribute names. They are of the form `"prop: attr"`; or simply `"propAndAttr" where the
|
||||
* property and attribute have the same identifier.
|
||||
*
|
||||
* The `selectors` are the values of the `select` attribute of each of the `ng-content` elements
|
||||
* that appear in the downgraded component's template.
|
||||
* These selectors must be provided in the order that they appear in the template as they are
|
||||
* mapped by index to the projected nodes.
|
||||
*
|
||||
* @experimental
|
||||
*/
|
||||
export function downgradeComponent(info: /* ComponentInfo */ {
|
||||
component: Type<any>;
|
||||
inputs?: string[];
|
||||
outputs?: string[];
|
||||
selectors?: string[]
|
||||
}): any /* angular.IInjectable */ {
|
||||
const idPrefix = `NG2_UPGRADE_${downgradeCount++}_`;
|
||||
let idCount = 0;
|
||||
|
Reference in New Issue
Block a user