Skip to content

Commit 760b456

Browse files
authored
refactor(material/input): remove deprecated autosize directive (#23408)
Removes the deprecated `autosize` directive in `material/input`. BREAKING CHANGE: * `matTextareaAutosize` has been removed. Use `cdkTextareaAutosize` from the `@angular/cdk/text-field` module instead.
1 parent 1762da8 commit 760b456

File tree

10 files changed

+8
-204
lines changed

10 files changed

+8
-204
lines changed

scripts/check-mdc-tests-config.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,7 @@ export const config = {
7676
'should update the outline gap correctly if the direction changes multiple times',
7777
'should calculate the outline gaps inside the shadow DOM',
7878
'should be legacy appearance if no default options provided',
79-
'should be legacy appearance if empty default options provided',
80-
'should adjust height due to long placeholders',
81-
'should work in a tab',
82-
'should work in a step'
79+
'should be legacy appearance if empty default options provided'
8380
],
8481
'mdc-list': [
8582
// TODO: these tests need to be double-checked for missing functionality.

src/material-experimental/mdc-input/autosize.ts

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/material-experimental/mdc-input/module.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@ import {TextFieldModule} from '@angular/cdk/text-field';
1010
import {NgModule} from '@angular/core';
1111
import {MatCommonModule} from '@angular/material-experimental/mdc-core';
1212
import {MatFormFieldModule} from '@angular/material-experimental/mdc-form-field';
13-
import {MatTextareaAutosize} from './autosize';
1413
import {MatInput} from './input';
1514

1615
@NgModule({
1716
imports: [MatCommonModule, MatFormFieldModule],
18-
exports: [MatInput, MatTextareaAutosize, MatFormFieldModule, TextFieldModule, MatCommonModule],
19-
declarations: [MatInput, MatTextareaAutosize],
17+
exports: [MatInput, MatFormFieldModule, TextFieldModule, MatCommonModule],
18+
declarations: [MatInput],
2019
})
2120
export class MatInputModule {}

src/material-experimental/mdc-input/public-api.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
export {MatInput} from './input';
1010
export {MatInputModule} from './module';
11-
export {MatTextareaAutosize} from './autosize';
1211
export {
1312
getMatInputUnsupportedTypeError,
1413
MAT_INPUT_VALUE_ACCESSOR,

src/material/input/BUILD.bazel

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ ng_test_library(
5050
"//src/cdk/testing/private",
5151
"//src/material/core",
5252
"//src/material/form-field",
53-
"//src/material/stepper",
54-
"//src/material/tabs",
5553
"@npm//@angular/forms",
5654
"@npm//@angular/platform-browser",
5755
"@npm//rxjs",

src/material/input/autosize.ts

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/material/input/input-module.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@ import {TextFieldModule} from '@angular/cdk/text-field';
1010
import {NgModule} from '@angular/core';
1111
import {ErrorStateMatcher, MatCommonModule} from '@angular/material/core';
1212
import {MatFormFieldModule} from '@angular/material/form-field';
13-
import {MatTextareaAutosize} from './autosize';
1413
import {MatInput} from './input';
1514

1615
@NgModule({
17-
declarations: [MatInput, MatTextareaAutosize],
16+
declarations: [MatInput],
1817
imports: [
1918
TextFieldModule,
2019
MatFormFieldModule,
@@ -26,7 +25,6 @@ import {MatInput} from './input';
2625
// be used together with `MatFormField`.
2726
MatFormFieldModule,
2827
MatInput,
29-
MatTextareaAutosize,
3028
],
3129
providers: [ErrorStateMatcher],
3230
})

src/material/input/input.spec.ts

Lines changed: 0 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,9 @@ import {
4343
} from '@angular/material/form-field';
4444
import {By} from '@angular/platform-browser';
4545
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
46-
import {MatStepperModule} from '@angular/material/stepper';
47-
import {MatTabsModule} from '@angular/material/tabs';
4846
import {Directionality, Direction} from '@angular/cdk/bidi';
4947
import {Subject} from 'rxjs';
5048
import {MatInputModule, MatInput, MAT_INPUT_VALUE_ACCESSOR} from './index';
51-
import {MatTextareaAutosize} from './autosize';
5249

5350
describe('MatInput without forms', () => {
5451
it('should default to floating labels', fakeAsync(() => {
@@ -1703,44 +1700,6 @@ describe('MatFormField default options', () => {
17031700

17041701
});
17051702

1706-
describe('MatInput with textarea autosize', () => {
1707-
it('should adjust height due to long placeholders', () => {
1708-
const fixture = createComponent(AutosizeTextareaWithLongPlaceholder);
1709-
fixture.detectChanges();
1710-
1711-
const textarea = fixture.nativeElement.querySelector('textarea');
1712-
const autosize = fixture.componentInstance.autosize;
1713-
1714-
autosize.resizeToFitContent(true);
1715-
1716-
const heightWithLongPlaceholder = textarea.clientHeight;
1717-
1718-
fixture.componentInstance.placeholder = 'Short';
1719-
fixture.detectChanges();
1720-
1721-
autosize.resizeToFitContent(true);
1722-
1723-
expect(textarea.clientHeight)
1724-
.withContext('Expected the textarea height to be shorter with a long placeholder.')
1725-
.toBeLessThan(heightWithLongPlaceholder);
1726-
});
1727-
1728-
it('should work in a tab', () => {
1729-
const fixture = createComponent(AutosizeTextareaInATab, [], [MatTabsModule]);
1730-
fixture.detectChanges();
1731-
const textarea = fixture.nativeElement.querySelector('textarea');
1732-
expect(textarea.getBoundingClientRect().height).toBeGreaterThan(1);
1733-
});
1734-
1735-
it('should work in a step', () => {
1736-
const fixture = createComponent(AutosizeTextareaInAStep, [], [MatStepperModule]);
1737-
fixture.detectChanges();
1738-
const textarea = fixture.nativeElement.querySelector('textarea');
1739-
expect(textarea.getBoundingClientRect().height).toBeGreaterThan(1);
1740-
});
1741-
});
1742-
1743-
17441703
function createComponent<T>(component: Type<T>,
17451704
providers: Provider[] = [],
17461705
imports: any[] = [],
@@ -2182,57 +2141,6 @@ class MatInputWithOutlineAppearanceInShadowDOM {
21822141
@ViewChild('formField', {read: ElementRef}) formField: ElementRef<HTMLElement>;
21832142
}
21842143

2185-
2186-
// Styles to reset padding and border to make measurement comparisons easier.
2187-
const textareaStyleReset = `
2188-
textarea {
2189-
padding: 0;
2190-
border: none;
2191-
overflow: auto;
2192-
}`;
2193-
2194-
@Component({
2195-
template: `
2196-
<mat-form-field style="width: 100px" appearance="fill">
2197-
<textarea matInput matTextareaAutosize [placeholder]="placeholder"></textarea>
2198-
</mat-form-field>`,
2199-
styles: [textareaStyleReset],
2200-
})
2201-
class AutosizeTextareaWithLongPlaceholder {
2202-
placeholder = 'Long Long Long Long Long Long Long Long Placeholder';
2203-
@ViewChild(MatTextareaAutosize) autosize: MatTextareaAutosize;
2204-
}
2205-
2206-
@Component({
2207-
template: `
2208-
<mat-tab-group>
2209-
<mat-tab label="Tab 1">
2210-
<mat-form-field>
2211-
<textarea matInput matTextareaAutosize>
2212-
Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
2213-
</textarea>
2214-
</mat-form-field>
2215-
</mat-tab>
2216-
</mat-tab-group>
2217-
`
2218-
})
2219-
class AutosizeTextareaInATab {}
2220-
2221-
@Component({
2222-
template: `
2223-
<mat-stepper>
2224-
<mat-step label="Step 1">
2225-
<mat-form-field>
2226-
<textarea matInput matTextareaAautosize>
2227-
Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
2228-
</textarea>
2229-
</mat-form-field>
2230-
</mat-step>
2231-
</mat-stepper>
2232-
`
2233-
})
2234-
class AutosizeTextareaInAStep {}
2235-
22362144
@Component({
22372145
template: `
22382146
<mat-form-field>

src/material/input/public-api.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
export * from './autosize';
109
export * from './input';
1110
export * from './input-errors';
1211
export * from './input-module';

tools/public_api_guard/material/input.md

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,15 @@ import { AfterViewInit } from '@angular/core';
99
import { AutofillMonitor } from '@angular/cdk/text-field';
1010
import { BooleanInput } from '@angular/cdk/coercion';
1111
import { CanUpdateErrorState } from '@angular/material/core';
12-
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
1312
import { Constructor } from '@angular/material/core/common-behaviors/constructor';
1413
import { DoCheck } from '@angular/core';
1514
import { ElementRef } from '@angular/core';
1615
import { ErrorStateMatcher } from '@angular/material/core';
1716
import { FormGroupDirective } from '@angular/forms';
1817
import * as i0 from '@angular/core';
19-
import * as i3 from '@angular/cdk/text-field';
20-
import * as i4 from '@angular/material/form-field';
21-
import * as i5 from '@angular/material/core';
18+
import * as i2 from '@angular/cdk/text-field';
19+
import * as i3 from '@angular/material/form-field';
20+
import * as i4 from '@angular/material/core';
2221
import { InjectionToken } from '@angular/core';
2322
import { MatFormField } from '@angular/material/form-field';
2423
import { MatFormFieldControl } from '@angular/material/form-field';
@@ -123,27 +122,7 @@ export class MatInputModule {
123122
// (undocumented)
124123
static ɵinj: i0.ɵɵInjectorDeclaration<MatInputModule>;
125124
// (undocumented)
126-
static ɵmod: i0.ɵɵNgModuleDeclaration<MatInputModule, [typeof i1.MatInput, typeof i2.MatTextareaAutosize], [typeof i3.TextFieldModule, typeof i4.MatFormFieldModule, typeof i5.MatCommonModule], [typeof i3.TextFieldModule, typeof i4.MatFormFieldModule, typeof i1.MatInput, typeof i2.MatTextareaAutosize]>;
127-
}
128-
129-
// @public @deprecated
130-
export class MatTextareaAutosize extends CdkTextareaAutosize {
131-
// (undocumented)
132-
get matAutosize(): boolean;
133-
set matAutosize(value: boolean);
134-
// (undocumented)
135-
get matAutosizeMaxRows(): number;
136-
set matAutosizeMaxRows(value: number);
137-
// (undocumented)
138-
get matAutosizeMinRows(): number;
139-
set matAutosizeMinRows(value: number);
140-
// (undocumented)
141-
get matTextareaAutosize(): boolean;
142-
set matTextareaAutosize(value: boolean);
143-
// (undocumented)
144-
static ɵdir: i0.ɵɵDirectiveDeclaration<MatTextareaAutosize, "textarea[mat-autosize], textarea[matTextareaAutosize]", ["matTextareaAutosize"], { "cdkAutosizeMinRows": "cdkAutosizeMinRows"; "cdkAutosizeMaxRows": "cdkAutosizeMaxRows"; "matAutosizeMinRows": "matAutosizeMinRows"; "matAutosizeMaxRows": "matAutosizeMaxRows"; "matAutosize": "mat-autosize"; "matTextareaAutosize": "matTextareaAutosize"; }, {}, never>;
145-
// (undocumented)
146-
static ɵfac: i0.ɵɵFactoryDeclaration<MatTextareaAutosize, never>;
125+
static ɵmod: i0.ɵɵNgModuleDeclaration<MatInputModule, [typeof i1.MatInput], [typeof i2.TextFieldModule, typeof i3.MatFormFieldModule, typeof i4.MatCommonModule], [typeof i2.TextFieldModule, typeof i3.MatFormFieldModule, typeof i1.MatInput]>;
147126
}
148127

149128
// (No @packageDocumentation comment for this package)

0 commit comments

Comments
 (0)