Skip to content

refactor(cdk/schematics): change usages of whitelist in selector interfaces to fileTypeFilter #20619

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Sep 30, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions src/cdk/schematics/ng-update/data/css-selectors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,17 @@ export interface CssSelectorUpgradeData {
replace: string;
/** The new CSS selector. */
replaceWith: string;
/** Whitelist where this replacement is made. If omitted it is made in all files. */
whitelist?: {
/**
* Controls which file types in which this replacement is made. If omitted, it is made in all
* files.
*/
replaceIn?: {
/** Replace this name in stylesheet files. */
stylesheet?: boolean,
/** Replace this name in HTML files. */
html?: boolean,
/** Replace this name in TypeScript strings. */
strings?: boolean
tsStringLiterals?: boolean
};
}

Expand Down
28 changes: 14 additions & 14 deletions src/cdk/schematics/ng-update/data/input-names.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ export interface InputNameUpgradeData {
replace: string;
/** The new name for the @Input(). */
replaceWith: string;
/** Whitelist where this replacement is made. If omitted it is made in all HTML & CSS */
whitelist: {
/** Controls which elements and attributes in which this replacement is made. */
limitedTo: {
/** Limit to elements with any of these element tags. */
elements?: string[],
/** Limit to elements with any of these attributes. */
Expand All @@ -31,73 +31,73 @@ export const inputNames: VersionChanges<InputNameUpgradeData> = {
{
replace: 'origin',
replaceWith: 'cdkConnectedOverlayOrigin',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'positions',
replaceWith: 'cdkConnectedOverlayPositions',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'offsetX',
replaceWith: 'cdkConnectedOverlayOffsetX',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'offsetY',
replaceWith: 'cdkConnectedOverlayOffsetY',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'width',
replaceWith: 'cdkConnectedOverlayWidth',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'height',
replaceWith: 'cdkConnectedOverlayHeight',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'minWidth',
replaceWith: 'cdkConnectedOverlayMinWidth',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'minHeight',
replaceWith: 'cdkConnectedOverlayMinHeight',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'backdropClass',
replaceWith: 'cdkConnectedOverlayBackdropClass',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'scrollStrategy',
replaceWith: 'cdkConnectedOverlayScrollStrategy',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'open',
replaceWith: 'cdkConnectedOverlayOpen',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
},
{
replace: 'hasBackdrop',
replaceWith: 'cdkConnectedOverlayHasBackdrop',
whitelist:
limitedTo:
{attributes: ['cdk-connected-overlay', 'connected-overlay', 'cdkConnectedOverlay']}
}
]
Expand Down
6 changes: 3 additions & 3 deletions src/cdk/schematics/ng-update/data/output-names.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ export interface OutputNameUpgradeData {
replace: string;
/** The new name for the @Output(). */
replaceWith: string;
/** Whitelist where this replacement is made. If omitted it is made in all HTML & CSS */
whitelist: {
/** Controls which elements and attributes in which this replacement is made. */
limitedTo: {
/** Limit to elements with any of these element tags. */
elements?: string[],
/** Limit to elements with any of these attributes. */
Expand All @@ -30,7 +30,7 @@ export const outputNames: VersionChanges<OutputNameUpgradeData> = {
changes: [{
replace: 'copied',
replaceWith: 'cdkCopyToClipboardCopied',
whitelist: {
limitedTo: {
attributes: ['cdkCopyToClipboard']
}
}]
Expand Down
40 changes: 20 additions & 20 deletions src/cdk/schematics/ng-update/data/property-names.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ export interface PropertyNameUpgradeData {
replace: string;
/** The new name for the property. */
replaceWith: string;
/** Whitelist where this replacement is made. If omitted it is made for all Classes. */
whitelist: {
/** Controls which classes in which this replacement is made. */
limitedTo: {
/** Replace the property only when its type is one of the given Classes. */
classes: string[];
};
Expand All @@ -28,15 +28,15 @@ export const propertyNames: VersionChanges<PropertyNameUpgradeData> = {
changes: [{
replace: 'boundaryElementSelector',
replaceWith: 'boundaryElement',
whitelist: {classes: ['CdkDrag']}
limitedTo: {classes: ['CdkDrag']}
}]
},
{
pr: 'https://github.com/angular/components/pull/17302',
changes: [{
replace: 'onChange',
replaceWith: 'changed',
whitelist: {classes: ['SelectionModel']}
limitedTo: {classes: ['SelectionModel']}
}]
}
],
Expand All @@ -45,15 +45,15 @@ export const propertyNames: VersionChanges<PropertyNameUpgradeData> = {
{
pr: 'https://github.com/angular/components/pull/8286',
changes:
[{replace: 'onChange', replaceWith: 'changed', whitelist: {classes: ['SelectionModel']}}]
[{replace: 'onChange', replaceWith: 'changed', limitedTo: {classes: ['SelectionModel']}}]
},

{
pr: 'https://github.com/angular/components/pull/12927',
changes: [{
replace: 'flexibleDiemsions',
replaceWith: 'flexibleDimensions',
whitelist: {classes: ['CdkConnectedOverlay']}
limitedTo: {classes: ['CdkConnectedOverlay']}
}]
}
],
Expand All @@ -65,62 +65,62 @@ export const propertyNames: VersionChanges<PropertyNameUpgradeData> = {
{
replace: '_deprecatedOrigin',
replaceWith: 'origin',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedPositions',
replaceWith: 'positions',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedOffsetX',
replaceWith: 'offsetX',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedOffsetY',
replaceWith: 'offsetY',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedWidth',
replaceWith: 'width',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedHeight',
replaceWith: 'height',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedMinWidth',
replaceWith: 'minWidth',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedMinHeight',
replaceWith: 'minHeight',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedBackdropClass',
replaceWith: 'backdropClass',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedScrollStrategy',
replaceWith: 'scrollStrategy',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedOpen',
replaceWith: 'open',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
},
{
replace: '_deprecatedHasBackdrop',
replaceWith: 'hasBackdrop',
whitelist: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
limitedTo: {classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective']}
}
]
},
Expand All @@ -131,12 +131,12 @@ export const propertyNames: VersionChanges<PropertyNameUpgradeData> = {
{
replace: '_deprecatedPortal',
replaceWith: 'portal',
whitelist: {classes: ['CdkPortalOutlet']}
limitedTo: {classes: ['CdkPortalOutlet']}
},
{
replace: '_deprecatedPortalHost',
replaceWith: 'portal',
whitelist: {classes: ['CdkPortalOutlet']}
limitedTo: {classes: ['CdkPortalOutlet']}
}
]
},
Expand Down
4 changes: 2 additions & 2 deletions src/cdk/schematics/ng-update/migrations/class-inheritance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ export class ClassInheritanceMigration extends Migration<UpgradeData> {

init(): void {
getVersionUpgradeData(this, 'propertyNames')
.filter(data => data.whitelist && data.whitelist.classes)
.filter(data => data.limitedTo && data.limitedTo.classes)
.forEach(
data => data.whitelist.classes.forEach(name => this.propertyNames.set(name, data)));
data => data.limitedTo.classes.forEach(name => this.propertyNames.set(name, data)));
}

visitNode(node: ts.Node): void {
Expand Down
8 changes: 4 additions & 4 deletions src/cdk/schematics/ng-update/migrations/css-selectors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import {getVersionUpgradeData, UpgradeData} from '../upgrade-data';
*/
export class CssSelectorsMigration extends Migration<UpgradeData> {
/** Change data that upgrades to the specified target version. */
data = getVersionUpgradeData(this, 'cssSelectors');
data: CssSelectorUpgradeData[] = getVersionUpgradeData(this, 'cssSelectors');

// Only enable the migration rule if there is upgrade data.
enabled = this.data.length !== 0;
Expand All @@ -33,7 +33,7 @@ export class CssSelectorsMigration extends Migration<UpgradeData> {

visitTemplate(template: ResolvedResource): void {
this.data.forEach(data => {
if (data.whitelist && !data.whitelist.html) {
if (data.replaceIn && !data.replaceIn.html) {
return;
}

Expand All @@ -45,7 +45,7 @@ export class CssSelectorsMigration extends Migration<UpgradeData> {

visitStylesheet(stylesheet: ResolvedResource): void {
this.data.forEach(data => {
if (data.whitelist && !data.whitelist.stylesheet) {
if (data.replaceIn && !data.replaceIn.stylesheet) {
return;
}

Expand All @@ -64,7 +64,7 @@ export class CssSelectorsMigration extends Migration<UpgradeData> {
const filePath = this.fileSystem.resolve(node.getSourceFile().fileName);

this.data.forEach(data => {
if (data.whitelist && !data.whitelist.strings) {
if (data.replaceIn && !data.replaceIn.tsStringLiterals) {
return;
}

Expand Down
10 changes: 5 additions & 5 deletions src/cdk/schematics/ng-update/migrations/input-names.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,17 @@ export class InputNamesMigration extends Migration<UpgradeData> {

visitTemplate(template: ResolvedResource): void {
this.data.forEach(name => {
const whitelist = name.whitelist;
const limitedTo = name.limitedTo;
const relativeOffsets: number[] = [];

if (whitelist.attributes) {
if (limitedTo.attributes) {
relativeOffsets.push(
...findInputsOnElementWithAttr(template.content, name.replace, whitelist.attributes));
...findInputsOnElementWithAttr(template.content, name.replace, limitedTo.attributes));
}

if (whitelist.elements) {
if (limitedTo.elements) {
relativeOffsets.push(
...findInputsOnElementWithTag(template.content, name.replace, whitelist.elements));
...findInputsOnElementWithTag(template.content, name.replace, limitedTo.elements));
}

relativeOffsets.map(offset => template.start + offset)
Expand Down
10 changes: 5 additions & 5 deletions src/cdk/schematics/ng-update/migrations/output-names.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,17 @@ export class OutputNamesMigration extends Migration<UpgradeData> {

visitTemplate(template: ResolvedResource): void {
this.data.forEach(name => {
const whitelist = name.whitelist;
const limitedTo = name.limitedTo;
const relativeOffsets: number[] = [];

if (whitelist.attributes) {
if (limitedTo.attributes) {
relativeOffsets.push(
...findOutputsOnElementWithAttr(template.content, name.replace, whitelist.attributes));
...findOutputsOnElementWithAttr(template.content, name.replace, limitedTo.attributes));
}

if (whitelist.elements) {
if (limitedTo.elements) {
relativeOffsets.push(
...findOutputsOnElementWithTag(template.content, name.replace, whitelist.elements));
...findOutputsOnElementWithTag(template.content, name.replace, limitedTo.elements));
}

relativeOffsets.map(offset => template.start + offset)
Expand Down
2 changes: 1 addition & 1 deletion src/cdk/schematics/ng-update/migrations/property-names.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export class PropertyNamesMigration extends Migration<UpgradeData> {
return;
}

if (!data.whitelist || data.whitelist.classes.includes(typeName)) {
if (!data.limitedTo || data.limitedTo.classes.includes(typeName)) {
this.fileSystem.edit(this.fileSystem.resolve(node.getSourceFile().fileName))
.remove(node.name.getStart(), node.name.getWidth())
.insertRight(node.name.getStart(), data.replaceWith);
Expand Down
2 changes: 1 addition & 1 deletion src/cdk/schematics/ng-update/update-schematic.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ export const propertyNames: VersionChanges<MaterialPropertyNameData> = {
{
replace: 'color',
replaceWith: 'newColor',
whitelist: {
limitedTo: {
classes: ['MatRipple']
}
}
Expand Down
Loading