@@ -37,18 +37,18 @@ import {
37
37
waitForAsync ,
38
38
} from '@angular/core/testing' ;
39
39
import { FormControl , FormsModule , ReactiveFormsModule } from '@angular/forms' ;
40
+ import { AsyncPipe } from '@angular/common' ;
40
41
import { By } from '@angular/platform-browser' ;
41
42
import { Observable , Subject , Subscription } from 'rxjs' ;
42
43
import { map , startWith } from 'rxjs/operators' ;
43
- import { MATERIAL_ANIMATIONS , MatOption , MatOptionSelectionChange } from '../core' ;
44
- import { MatFormField , MatFormFieldModule } from '../form-field' ;
44
+ import { MATERIAL_ANIMATIONS , MatOptgroup , MatOption , MatOptionSelectionChange } from '../core' ;
45
+ import { MatFormField } from '../form-field' ;
45
46
import { MatInputModule } from '../input' ;
46
47
import {
47
48
MAT_AUTOCOMPLETE_DEFAULT_OPTIONS ,
48
49
MAT_AUTOCOMPLETE_SCROLL_STRATEGY ,
49
50
MatAutocomplete ,
50
51
MatAutocompleteDefaultOptions ,
51
- MatAutocompleteModule ,
52
52
MatAutocompleteOrigin ,
53
53
MatAutocompleteSelectedEvent ,
54
54
MatAutocompleteTrigger ,
@@ -61,23 +61,13 @@ describe('MatAutocomplete', () => {
61
61
// Creates a test component fixture.
62
62
function createComponent < T > ( component : Type < T > , providers : Provider [ ] = [ ] ) {
63
63
TestBed . configureTestingModule ( {
64
- imports : [
65
- MatAutocompleteModule ,
66
- MatFormFieldModule ,
67
- MatInputModule ,
68
- FormsModule ,
69
- ReactiveFormsModule ,
70
- OverlayModule ,
71
- ] ,
72
64
providers : [
73
65
...providers ,
74
66
{ provide : MATERIAL_ANIMATIONS , useValue : { animationsDisabled : true } } ,
75
67
] ,
76
- declarations : [ component ] ,
77
68
} ) ;
78
69
79
70
overlayContainerElement = TestBed . inject ( OverlayContainer ) . getContainerElement ( ) ;
80
-
81
71
return TestBed . createComponent < T > ( component ) ;
82
72
}
83
73
@@ -4022,7 +4012,16 @@ const SIMPLE_AUTOCOMPLETE_TEMPLATE = `
4022
4012
</mat-autocomplete>
4023
4013
` ;
4024
4014
4025
- @Component ( { template : SIMPLE_AUTOCOMPLETE_TEMPLATE , standalone : false } )
4015
+ @Component ( {
4016
+ template : SIMPLE_AUTOCOMPLETE_TEMPLATE ,
4017
+ imports : [
4018
+ MatAutocomplete ,
4019
+ MatAutocompleteTrigger ,
4020
+ MatOption ,
4021
+ MatInputModule ,
4022
+ ReactiveFormsModule ,
4023
+ ] ,
4024
+ } )
4026
4025
class SimpleAutocomplete implements OnDestroy {
4027
4026
stateCtrl = new FormControl < { name : string ; code : string } | string | null > ( null ) ;
4028
4027
filteredStates : any [ ] ;
@@ -4081,27 +4080,40 @@ class SimpleAutocomplete implements OnDestroy {
4081
4080
@Component ( {
4082
4081
template : SIMPLE_AUTOCOMPLETE_TEMPLATE ,
4083
4082
encapsulation : ViewEncapsulation . ShadowDom ,
4084
- standalone : false ,
4083
+ imports : [
4084
+ MatAutocomplete ,
4085
+ MatAutocompleteTrigger ,
4086
+ MatOption ,
4087
+ MatInputModule ,
4088
+ ReactiveFormsModule ,
4089
+ ] ,
4085
4090
} )
4086
4091
class SimpleAutocompleteShadowDom extends SimpleAutocomplete { }
4087
4092
4088
4093
@Component ( {
4089
4094
template : `
4090
4095
@if (isVisible) {
4091
- <mat-form-field>
4092
- <input matInput placeholder="Choose" [matAutocomplete]="auto" [formControl]="optionCtrl">
4093
- </mat-form-field>
4094
- }
4096
+ <mat-form-field>
4097
+ <input matInput placeholder="Choose" [matAutocomplete]="auto" [formControl]="optionCtrl">
4098
+ </mat-form-field>
4099
+ }
4095
4100
4096
4101
<mat-autocomplete #auto="matAutocomplete">
4097
4102
@for (option of filteredOptions | async; track option) {
4098
- <mat-option [value]="option">
4099
- {{option}}
4100
- </mat-option>
4101
- }
4103
+ <mat-option [value]="option">
4104
+ {{option}}
4105
+ </mat-option>
4106
+ }
4102
4107
</mat-autocomplete>
4103
4108
` ,
4104
- standalone : false ,
4109
+ imports : [
4110
+ MatAutocomplete ,
4111
+ MatAutocompleteTrigger ,
4112
+ MatOption ,
4113
+ MatInputModule ,
4114
+ ReactiveFormsModule ,
4115
+ AsyncPipe ,
4116
+ ] ,
4105
4117
} )
4106
4118
class NgIfAutocomplete {
4107
4119
optionCtrl = new FormControl ( '' ) ;
@@ -4139,7 +4151,7 @@ class NgIfAutocomplete {
4139
4151
}
4140
4152
</mat-autocomplete>
4141
4153
` ,
4142
- standalone : false ,
4154
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , MatInputModule ] ,
4143
4155
} )
4144
4156
class AutocompleteWithoutForms {
4145
4157
filteredStates : any [ ] ;
@@ -4169,7 +4181,7 @@ class AutocompleteWithoutForms {
4169
4181
}
4170
4182
</mat-autocomplete>
4171
4183
` ,
4172
- standalone : false ,
4184
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , MatInputModule , FormsModule ] ,
4173
4185
} )
4174
4186
class AutocompleteWithNgModel {
4175
4187
filteredStates : any [ ] ;
@@ -4201,7 +4213,7 @@ class AutocompleteWithNgModel {
4201
4213
}
4202
4214
</mat-autocomplete>
4203
4215
` ,
4204
- standalone : false ,
4216
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , MatInputModule , FormsModule ] ,
4205
4217
} )
4206
4218
class AutocompleteWithNumbers {
4207
4219
selectedNumber : number ;
@@ -4221,7 +4233,13 @@ class AutocompleteWithNumbers {
4221
4233
}
4222
4234
</mat-autocomplete>
4223
4235
` ,
4224
- standalone : false ,
4236
+ imports : [
4237
+ MatAutocomplete ,
4238
+ MatAutocompleteTrigger ,
4239
+ MatOption ,
4240
+ MatInputModule ,
4241
+ ReactiveFormsModule ,
4242
+ ] ,
4225
4243
} )
4226
4244
class AutocompleteWithOnPushDelay implements OnInit {
4227
4245
@ViewChild ( MatAutocompleteTrigger ) trigger : MatAutocompleteTrigger ;
@@ -4244,7 +4262,7 @@ class AutocompleteWithOnPushDelay implements OnInit {
4244
4262
}
4245
4263
</mat-autocomplete>
4246
4264
` ,
4247
- standalone : false ,
4265
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , ReactiveFormsModule , AsyncPipe ] ,
4248
4266
} )
4249
4267
class AutocompleteWithNativeInput {
4250
4268
optionCtrl = new FormControl ( '' ) ;
@@ -4268,7 +4286,7 @@ class AutocompleteWithNativeInput {
4268
4286
4269
4287
@Component ( {
4270
4288
template : `<input placeholder="Choose" [matAutocomplete]="auto" [formControl]="control">` ,
4271
- standalone : false ,
4289
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , ReactiveFormsModule ] ,
4272
4290
} )
4273
4291
class AutocompleteWithoutPanel {
4274
4292
@ViewChild ( MatAutocompleteTrigger ) trigger : MatAutocompleteTrigger ;
@@ -4293,7 +4311,14 @@ class AutocompleteWithoutPanel {
4293
4311
}
4294
4312
</mat-autocomplete>
4295
4313
` ,
4296
- standalone : false ,
4314
+ imports : [
4315
+ MatAutocomplete ,
4316
+ MatAutocompleteTrigger ,
4317
+ MatOptgroup ,
4318
+ MatOption ,
4319
+ MatInputModule ,
4320
+ FormsModule ,
4321
+ ] ,
4297
4322
} )
4298
4323
class AutocompleteWithGroups {
4299
4324
@ViewChild ( MatAutocompleteTrigger ) trigger : MatAutocompleteTrigger ;
@@ -4334,7 +4359,14 @@ class AutocompleteWithGroups {
4334
4359
}
4335
4360
</mat-autocomplete>
4336
4361
` ,
4337
- standalone : false ,
4362
+ imports : [
4363
+ MatAutocomplete ,
4364
+ MatAutocompleteTrigger ,
4365
+ MatOptgroup ,
4366
+ MatOption ,
4367
+ MatInputModule ,
4368
+ FormsModule ,
4369
+ ] ,
4338
4370
} )
4339
4371
class AutocompleteWithIndirectGroups extends AutocompleteWithGroups { }
4340
4372
@@ -4352,7 +4384,7 @@ class AutocompleteWithIndirectGroups extends AutocompleteWithGroups {}
4352
4384
}
4353
4385
</mat-autocomplete>
4354
4386
` ,
4355
- standalone : false ,
4387
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , MatInputModule , FormsModule ] ,
4356
4388
} )
4357
4389
class AutocompleteWithSelectEvent {
4358
4390
selectedState : string ;
@@ -4368,7 +4400,7 @@ class AutocompleteWithSelectEvent {
4368
4400
<input [formControl]="formControl" [matAutocomplete]="auto"/>
4369
4401
<mat-autocomplete #auto="matAutocomplete"></mat-autocomplete>
4370
4402
` ,
4371
- standalone : false ,
4403
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , ReactiveFormsModule ] ,
4372
4404
} )
4373
4405
class PlainAutocompleteInputWithFormControl {
4374
4406
formControl = new FormControl ( '' ) ;
@@ -4386,7 +4418,7 @@ class PlainAutocompleteInputWithFormControl {
4386
4418
}
4387
4419
</mat-autocomplete>
4388
4420
` ,
4389
- standalone : false ,
4421
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , MatInputModule , FormsModule ] ,
4390
4422
} )
4391
4423
class AutocompleteWithNumberInputAndNgModel {
4392
4424
selectedValue : number ;
@@ -4419,7 +4451,14 @@ class AutocompleteWithNumberInputAndNgModel {
4419
4451
}
4420
4452
</mat-autocomplete>
4421
4453
` ,
4422
- standalone : false ,
4454
+ imports : [
4455
+ MatAutocomplete ,
4456
+ MatAutocompleteTrigger ,
4457
+ MatAutocompleteOrigin ,
4458
+ MatOption ,
4459
+ MatInputModule ,
4460
+ FormsModule ,
4461
+ ] ,
4423
4462
} )
4424
4463
class AutocompleteWithDifferentOrigin {
4425
4464
@ViewChild ( MatAutocompleteTrigger ) trigger : MatAutocompleteTrigger ;
@@ -4434,15 +4473,15 @@ class AutocompleteWithDifferentOrigin {
4434
4473
<input autocomplete="changed" [(ngModel)]="value" [matAutocomplete]="auto"/>
4435
4474
<mat-autocomplete #auto="matAutocomplete"></mat-autocomplete>
4436
4475
` ,
4437
- standalone : false ,
4476
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , FormsModule ] ,
4438
4477
} )
4439
4478
class AutocompleteWithNativeAutocompleteAttribute {
4440
4479
value : string ;
4441
4480
}
4442
4481
4443
4482
@Component ( {
4444
4483
template : '<input [matAutocomplete]="null" matAutocompleteDisabled>' ,
4445
- standalone : false ,
4484
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption ] ,
4446
4485
} )
4447
4486
class InputWithoutAutocompleteAndDisabled { }
4448
4487
@@ -4458,7 +4497,7 @@ class InputWithoutAutocompleteAndDisabled {}
4458
4497
}
4459
4498
</mat-autocomplete>
4460
4499
` ,
4461
- standalone : false ,
4500
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , MatInputModule ] ,
4462
4501
} )
4463
4502
class AutocompleteWithActivatedEvent {
4464
4503
states = [ 'California' , 'West Virginia' , 'Florida' ] ;
@@ -4470,7 +4509,6 @@ class AutocompleteWithActivatedEvent {
4470
4509
}
4471
4510
4472
4511
@Component ( {
4473
- selector : 'autocomplete-inside-a-modal' ,
4474
4512
template : `
4475
4513
<button cdkOverlayOrigin #trigger="cdkOverlayOrigin">open dialog</button>
4476
4514
<ng-template cdkConnectedOverlay [cdkConnectedOverlayOpen]="true"
@@ -4488,7 +4526,14 @@ class AutocompleteWithActivatedEvent {
4488
4526
</div>
4489
4527
</ng-template>
4490
4528
` ,
4491
- standalone : false ,
4529
+ imports : [
4530
+ MatAutocomplete ,
4531
+ MatAutocompleteTrigger ,
4532
+ MatOption ,
4533
+ MatInputModule ,
4534
+ ReactiveFormsModule ,
4535
+ OverlayModule ,
4536
+ ] ,
4492
4537
} )
4493
4538
class AutocompleteInsideAModal {
4494
4539
foods = [
@@ -4506,7 +4551,6 @@ class AutocompleteInsideAModal {
4506
4551
}
4507
4552
4508
4553
@Component ( {
4509
- selector : 'autocomplete-without-options' ,
4510
4554
template : `
4511
4555
<mat-form-field>
4512
4556
<input matInput [matAutocomplete]="auto">
@@ -4515,7 +4559,7 @@ class AutocompleteInsideAModal {
4515
4559
<mat-autocomplete #auto="matAutocomplete">
4516
4560
</mat-autocomplete>
4517
4561
` ,
4518
- standalone : false ,
4562
+ imports : [ MatAutocomplete , MatAutocompleteTrigger , MatOption , MatInputModule ] ,
4519
4563
} )
4520
4564
class AutocompleteWithoutOptions {
4521
4565
@ViewChild ( MatAutocompleteTrigger , { static : true } ) trigger : MatAutocompleteTrigger ;
0 commit comments