@angular/material 19.1.3 → 19.2.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/autocomplete/index.d.ts +1 -3
  2. package/bottom-sheet/index.d.ts +1 -5
  3. package/button/_button-base.scss +4 -4
  4. package/checkbox/_checkbox-common.scss +25 -38
  5. package/chips/index.d.ts +2 -0
  6. package/datepicker/index.d.ts +10 -8
  7. package/dialog/index.d.ts +1 -5
  8. package/fesm2022/autocomplete.mjs +17 -43
  9. package/fesm2022/autocomplete.mjs.map +1 -1
  10. package/fesm2022/badge.mjs +10 -10
  11. package/fesm2022/badge.mjs.map +1 -1
  12. package/fesm2022/bottom-sheet.mjs +12 -16
  13. package/fesm2022/bottom-sheet.mjs.map +1 -1
  14. package/fesm2022/button-toggle.mjs +14 -14
  15. package/fesm2022/button-toggle.mjs.map +1 -1
  16. package/fesm2022/button.mjs +42 -42
  17. package/fesm2022/button.mjs.map +1 -1
  18. package/fesm2022/card.mjs +46 -46
  19. package/fesm2022/card.mjs.map +1 -1
  20. package/fesm2022/checkbox.mjs +16 -16
  21. package/fesm2022/checkbox.mjs.map +1 -1
  22. package/fesm2022/chips.mjs +53 -52
  23. package/fesm2022/chips.mjs.map +1 -1
  24. package/fesm2022/core.mjs +66 -66
  25. package/fesm2022/core.mjs.map +1 -1
  26. package/fesm2022/datepicker.mjs +161 -133
  27. package/fesm2022/datepicker.mjs.map +1 -1
  28. package/fesm2022/dialog.mjs +27 -31
  29. package/fesm2022/dialog.mjs.map +1 -1
  30. package/fesm2022/divider.mjs +7 -7
  31. package/fesm2022/divider.mjs.map +1 -1
  32. package/fesm2022/expansion.mjs +25 -25
  33. package/fesm2022/expansion.mjs.map +1 -1
  34. package/fesm2022/form-field.mjs +69 -62
  35. package/fesm2022/form-field.mjs.map +1 -1
  36. package/fesm2022/grid-list.mjs +22 -22
  37. package/fesm2022/grid-list.mjs.map +1 -1
  38. package/fesm2022/icon/testing.mjs +7 -7
  39. package/fesm2022/icon/testing.mjs.map +1 -1
  40. package/fesm2022/icon.mjs +10 -10
  41. package/fesm2022/icon.mjs.map +1 -1
  42. package/fesm2022/input.mjs +7 -7
  43. package/fesm2022/input.mjs.map +1 -1
  44. package/fesm2022/list.mjs +51 -51
  45. package/fesm2022/list.mjs.map +1 -1
  46. package/fesm2022/menu.mjs +16 -16
  47. package/fesm2022/menu.mjs.map +1 -1
  48. package/fesm2022/paginator.mjs +10 -10
  49. package/fesm2022/paginator.mjs.map +1 -1
  50. package/fesm2022/progress-bar.mjs +7 -7
  51. package/fesm2022/progress-bar.mjs.map +1 -1
  52. package/fesm2022/progress-spinner.mjs +7 -7
  53. package/fesm2022/progress-spinner.mjs.map +1 -1
  54. package/fesm2022/radio.mjs +10 -10
  55. package/fesm2022/radio.mjs.map +1 -1
  56. package/fesm2022/select.mjs +12 -12
  57. package/fesm2022/select.mjs.map +1 -1
  58. package/fesm2022/sidenav.mjs +26 -26
  59. package/fesm2022/sidenav.mjs.map +1 -1
  60. package/fesm2022/slide-toggle.mjs +14 -14
  61. package/fesm2022/slide-toggle.mjs.map +1 -1
  62. package/fesm2022/slider.mjs +16 -16
  63. package/fesm2022/slider.mjs.map +1 -1
  64. package/fesm2022/snack-bar.mjs +22 -22
  65. package/fesm2022/snack-bar.mjs.map +1 -1
  66. package/fesm2022/sort.mjs +13 -13
  67. package/fesm2022/sort.mjs.map +1 -1
  68. package/fesm2022/stepper.mjs +162 -91
  69. package/fesm2022/stepper.mjs.map +1 -1
  70. package/fesm2022/table.mjs +55 -55
  71. package/fesm2022/table.mjs.map +1 -1
  72. package/fesm2022/tabs.mjs +218 -134
  73. package/fesm2022/tabs.mjs.map +1 -1
  74. package/fesm2022/timepicker.mjs +27 -14
  75. package/fesm2022/timepicker.mjs.map +1 -1
  76. package/fesm2022/toolbar.mjs +10 -10
  77. package/fesm2022/toolbar.mjs.map +1 -1
  78. package/fesm2022/tooltip.mjs +10 -10
  79. package/fesm2022/tooltip.mjs.map +1 -1
  80. package/fesm2022/tree.mjs +25 -25
  81. package/fesm2022/tree.mjs.map +1 -1
  82. package/form-field/_form-field-subscript.scss +18 -0
  83. package/form-field/_mdc-text-field-structure.scss +6 -3
  84. package/form-field/index.d.ts +5 -4
  85. package/package.json +7 -7
  86. package/schematics/ng-add/index.js +2 -2
  87. package/schematics/ng-add/index.mjs +2 -2
  88. package/schematics/ng-generate/theme-color/index_bundled.js +38 -14
  89. package/schematics/ng-generate/theme-color/index_bundled.js.map +2 -2
  90. package/stepper/index.d.ts +16 -4
  91. package/tabs/index.d.ts +48 -25
  92. package/timepicker/index.d.ts +10 -1
@@ -1,7 +1,6 @@
1
1
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
2
2
  import { AfterContentInit } from '@angular/core';
3
3
  import { AfterViewInit } from '@angular/core';
4
- import { AnimationEvent as AnimationEvent_2 } from '@angular/animations';
5
4
  import { ControlValueAccessor } from '@angular/forms';
6
5
  import { ElementRef } from '@angular/core';
7
6
  import { EventEmitter } from '@angular/core';
@@ -87,9 +86,8 @@ export declare class MatAutocomplete implements AfterContentInit, OnDestroy {
87
86
  private _changeDetectorRef;
88
87
  private _elementRef;
89
88
  protected _defaults: MatAutocompleteDefaultOptions;
89
+ protected _animationsDisabled: boolean;
90
90
  private _activeOptionChanges;
91
- /** Emits when the panel animation is done. Null if the panel doesn't animate. */
92
- _animationDone: EventEmitter<AnimationEvent_2>;
93
91
  /** Manages active item in option list based on key events. */
94
92
  _keyManager: ActiveDescendantKeyManager<MatOption>;
95
93
  /** Whether the autocomplete panel should be visible, depending on option length. */
@@ -94,11 +94,7 @@ export declare class MatBottomSheetConfig<D = any> {
94
94
  disableClose?: boolean;
95
95
  /** Aria label to assign to the bottom sheet element. */
96
96
  ariaLabel?: string | null;
97
- /**
98
- * Whether this is a modal dialog. Used to set the `aria-modal` attribute. Off by default,
99
- * because it can interfere with other overlay-based components (e.g. `mat-select`) and because
100
- * it is redundant since the dialog marks all outside content as `aria-hidden` anyway.
101
- */
97
+ /** Whether this is a modal bottom sheet. Used to set the `aria-modal` attribute. */
102
98
  ariaModal?: boolean;
103
99
  /**
104
100
  * Whether the bottom sheet should close when the user goes backwards/forwards in history.
@@ -52,7 +52,7 @@
52
52
  @include layout-common.fill();
53
53
  }
54
54
 
55
- &:focus > .mat-focus-indicator::before {
55
+ &:focus .mat-focus-indicator::before {
56
56
  content: '';
57
57
  }
58
58
  }
@@ -71,19 +71,19 @@
71
71
  @include token-utils.create-token-slot(background-color, disabled-state-layer-color);
72
72
  }
73
73
 
74
- &:hover > .mat-mdc-button-persistent-ripple::before {
74
+ &:hover .mat-mdc-button-persistent-ripple::before {
75
75
  @include token-utils.create-token-slot(opacity, hover-state-layer-opacity);
76
76
  }
77
77
 
78
78
  &.cdk-program-focused,
79
79
  &.cdk-keyboard-focused,
80
80
  &.mat-mdc-button-disabled-interactive:focus {
81
- > .mat-mdc-button-persistent-ripple::before {
81
+ .mat-mdc-button-persistent-ripple::before {
82
82
  @include token-utils.create-token-slot(opacity, focus-state-layer-opacity);
83
83
  }
84
84
  }
85
85
 
86
- &:active > .mat-mdc-button-persistent-ripple::before {
86
+ &:active .mat-mdc-button-persistent-ripple::before {
87
87
  @include token-utils.create-token-slot(opacity, pressed-state-layer-opacity);
88
88
  }
89
89
  }
@@ -119,17 +119,15 @@ $_fallback-size: 40px;
119
119
  border-color: transparent;
120
120
  }
121
121
 
122
- // stylelint-disable selector-combinator-space-before
123
- .mdc-checkbox:hover > .mdc-checkbox__native-control:not(:checked) ~ .mdc-checkbox__background,
122
+ .mdc-checkbox:hover .mdc-checkbox__native-control:not(:checked) ~ .mdc-checkbox__background,
124
123
  .mdc-checkbox:hover
125
- > .mdc-checkbox__native-control:not(:indeterminate) ~ .mdc-checkbox__background {
124
+ .mdc-checkbox__native-control:not(:indeterminate) ~ .mdc-checkbox__background {
126
125
  @include token-utils.create-token-slot(border-color, unselected-hover-icon-color);
127
126
  background-color: transparent;
128
127
  }
129
- // stylelint-enable selector-combinator-space-before
130
128
 
131
- .mdc-checkbox:hover > .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,
132
- .mdc-checkbox:hover > .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {
129
+ .mdc-checkbox:hover .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,
130
+ .mdc-checkbox:hover .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {
133
131
  @include token-utils.create-token-slot(border-color, selected-hover-icon-color);
134
132
  @include token-utils.create-token-slot(background-color, selected-hover-icon-color);
135
133
  }
@@ -149,7 +147,7 @@ $_fallback-size: 40px;
149
147
 
150
148
  // Needs extra specificity to override the focus, hover, active states.
151
149
  .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive {
152
- .mdc-checkbox:hover > .mdc-checkbox__native-control ~ .mdc-checkbox__background,
150
+ .mdc-checkbox:hover .mdc-checkbox__native-control ~ .mdc-checkbox__background,
153
151
  .mdc-checkbox .mdc-checkbox__native-control:focus ~ .mdc-checkbox__background,
154
152
  .mdc-checkbox__background {
155
153
  @include token-utils.create-token-slot(border-color, disabled-unselected-icon-color);
@@ -308,31 +306,31 @@ $_fallback-size: 40px;
308
306
  transition: border-color $_transition-duration $_enter-curve,
309
307
  background-color $_transition-duration $_enter-curve;
310
308
 
311
- > .mdc-checkbox__checkmark > .mdc-checkbox__checkmark-path {
309
+ .mdc-checkbox__checkmark-path {
312
310
  stroke-dashoffset: 0;
313
311
  }
314
312
  }
315
313
 
316
314
  .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background {
317
- > .mdc-checkbox__checkmark {
315
+ .mdc-checkbox__checkmark {
318
316
  transition: opacity $_transition-duration * 2 $_enter-curve,
319
317
  transform $_transition-duration * 2 $_enter-curve;
320
318
  opacity: 1;
321
319
  }
322
320
 
323
- > .mdc-checkbox__mixedmark {
321
+ .mdc-checkbox__mixedmark {
324
322
  transform: scaleX(1) rotate(-45deg);
325
323
  }
326
324
  }
327
325
  .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {
328
- > .mdc-checkbox__checkmark {
326
+ .mdc-checkbox__checkmark {
329
327
  transform: rotate(45deg);
330
328
  opacity: 0;
331
329
  transition: opacity $_transition-duration $_exit-curve,
332
330
  transform $_transition-duration $_exit-curve;
333
331
  }
334
332
 
335
- > .mdc-checkbox__mixedmark {
333
+ .mdc-checkbox__mixedmark {
336
334
  transform: scaleX(1) rotate(0deg);
337
335
  opacity: 1;
338
336
  }
@@ -447,22 +445,11 @@ $_fallback-size: 40px;
447
445
 
448
446
  // Conditionally disables the animations of the checkbox.
449
447
  @mixin checkbox-noop-animations() {
450
- &._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox {
451
- @include checkbox-noop-animations-internal;
452
- }
453
- }
454
-
455
- @mixin checkbox-noop-animations-internal() {
456
- > .mat-mdc-checkbox-touch-target,
457
- > .mdc-checkbox__native-control,
458
- > .mdc-checkbox__ripple,
459
- > .mat-mdc-checkbox-ripple::before,
460
- > .mdc-checkbox__background,
461
- > .mdc-checkbox__background > .mdc-checkbox__checkmark,
462
- > .mdc-checkbox__background > .mdc-checkbox__checkmark > .mdc-checkbox__checkmark-path,
463
- > .mdc-checkbox__background > .mdc-checkbox__mixedmark {
464
- transition: none !important;
465
- animation: none !important;
448
+ &._mat-animation-noopable .mdc-checkbox {
449
+ *, *::before {
450
+ transition: none !important;
451
+ animation: none !important;
452
+ }
466
453
  }
467
454
  }
468
455
 
@@ -470,7 +457,7 @@ $_fallback-size: 40px;
470
457
  // MDC expects `.mdc-checkbox__ripple::before` to be the state layer, but we use
471
458
  // `.mdc-checkbox__ripple` instead, so we emit the state layer slots ourselves.
472
459
  &:hover {
473
- > .mdc-checkbox__ripple {
460
+ .mdc-checkbox__ripple {
474
461
  @include token-utils.create-token-slot(opacity, unselected-hover-state-layer-opacity);
475
462
  @include token-utils.create-token-slot(
476
463
  background-color,
@@ -478,7 +465,7 @@ $_fallback-size: 40px;
478
465
  );
479
466
  }
480
467
 
481
- > .mat-mdc-checkbox-ripple > .mat-ripple-element {
468
+ .mat-mdc-checkbox-ripple .mat-ripple-element {
482
469
  @include token-utils.create-token-slot(
483
470
  background-color,
484
471
  unselected-hover-state-layer-color
@@ -487,7 +474,7 @@ $_fallback-size: 40px;
487
474
  }
488
475
 
489
476
  .mdc-checkbox__native-control:focus {
490
- & + .mdc-checkbox__ripple {
477
+ & ~ .mdc-checkbox__ripple {
491
478
  @include token-utils.create-token-slot(opacity, unselected-focus-state-layer-opacity);
492
479
  @include token-utils.create-token-slot(
493
480
  background-color,
@@ -503,8 +490,8 @@ $_fallback-size: 40px;
503
490
  }
504
491
  }
505
492
 
506
- &:active > .mdc-checkbox__native-control {
507
- & + .mdc-checkbox__ripple {
493
+ &:active .mdc-checkbox__native-control {
494
+ & ~ .mdc-checkbox__ripple {
508
495
  @include token-utils.create-token-slot(opacity, unselected-pressed-state-layer-opacity);
509
496
  @include token-utils.create-token-slot(
510
497
  background-color,
@@ -521,7 +508,7 @@ $_fallback-size: 40px;
521
508
  }
522
509
 
523
510
  &:hover .mdc-checkbox__native-control:checked {
524
- & + .mdc-checkbox__ripple {
511
+ & ~ .mdc-checkbox__ripple {
525
512
  @include token-utils.create-token-slot(opacity, selected-hover-state-layer-opacity);
526
513
  @include token-utils.create-token-slot(
527
514
  background-color,
@@ -538,7 +525,7 @@ $_fallback-size: 40px;
538
525
  }
539
526
 
540
527
  .mdc-checkbox__native-control:focus:checked {
541
- & + .mdc-checkbox__ripple {
528
+ & ~ .mdc-checkbox__ripple {
542
529
  @include token-utils.create-token-slot(opacity, selected-focus-state-layer-opacity);
543
530
  @include token-utils.create-token-slot(
544
531
  background-color,
@@ -554,8 +541,8 @@ $_fallback-size: 40px;
554
541
  }
555
542
  }
556
543
 
557
- &:active > .mdc-checkbox__native-control:checked {
558
- & + .mdc-checkbox__ripple {
544
+ &:active .mdc-checkbox__native-control:checked {
545
+ & ~ .mdc-checkbox__ripple {
559
546
  @include token-utils.create-token-slot(opacity, selected-pressed-state-layer-opacity);
560
547
  @include token-utils.create-token-slot(
561
548
  background-color,
@@ -574,7 +561,7 @@ $_fallback-size: 40px;
574
561
  // Needs extra specificity to override the focus, hover, active states.
575
562
  .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive & {
576
563
  .mdc-checkbox__native-control ~ .mat-mdc-checkbox-ripple .mat-ripple-element,
577
- .mdc-checkbox__native-control + .mdc-checkbox__ripple {
564
+ .mdc-checkbox__native-control ~ .mdc-checkbox__ripple {
578
565
  @include token-utils.create-token-slot(
579
566
  background-color,
580
567
  unselected-hover-state-layer-color
package/chips/index.d.ts CHANGED
@@ -600,6 +600,8 @@ export declare class MatChipListbox extends MatChipSet implements AfterContentIn
600
600
  */
601
601
  _onChange: (value: any) => void;
602
602
  protected _defaultRole: string;
603
+ /** Value that was assigned before the listbox was initialized. */
604
+ private _pendingInitialValue;
603
605
  /** Default chip options. */
604
606
  private _defaultOptions;
605
607
  /** Whether the user should be allowed to select multiple chips. */
@@ -2,7 +2,6 @@ import { AbstractControl } from '@angular/forms';
2
2
  import { AfterContentInit } from '@angular/core';
3
3
  import { AfterViewChecked } from '@angular/core';
4
4
  import { AfterViewInit } from '@angular/core';
5
- import { AnimationEvent as AnimationEvent_2 } from '@angular/animations';
6
5
  import { AnimationTriggerMetadata } from '@angular/animations';
7
6
  import { ChangeDetectorRef } from '@angular/core';
8
7
  import { ComponentType } from '@angular/cdk/portal';
@@ -660,6 +659,8 @@ export declare class MatDatepickerActions implements AfterViewInit, OnDestroy {
660
659
  /**
661
660
  * Animations used by the Material datepicker.
662
661
  * @docs-private
662
+ * @deprecated No longer used, will be removed.
663
+ * @breaking-change 21.0.0
663
664
  */
664
665
  export declare const matDatepickerAnimations: {
665
666
  readonly transformPanel: AnimationTriggerMetadata;
@@ -843,14 +844,18 @@ export declare class MatDatepickerCancel {
843
844
  * future. (e.g. confirmation buttons).
844
845
  * @docs-private
845
846
  */
846
- export declare class MatDatepickerContent<S, D = ExtractDateTypeFromSelection<S>> implements OnInit, AfterViewInit, OnDestroy {
847
- protected _elementRef: ElementRef<any>;
847
+ export declare class MatDatepickerContent<S, D = ExtractDateTypeFromSelection<S>> implements AfterViewInit, OnDestroy {
848
+ protected _elementRef: ElementRef<HTMLElement>;
849
+ protected _animationsDisabled: boolean;
848
850
  private _changeDetectorRef;
849
851
  private _globalModel;
850
852
  private _dateAdapter;
853
+ private _ngZone;
851
854
  private _rangeSelectionStrategy;
852
- private _subscriptions;
855
+ private _stateChanges;
853
856
  private _model;
857
+ private _eventCleanups;
858
+ private _animationFallback;
854
859
  /** Reference to the internal calendar component. */
855
860
  _calendar: MatCalendar<D>;
856
861
  /**
@@ -873,8 +878,6 @@ export declare class MatDatepickerContent<S, D = ExtractDateTypeFromSelection<S>
873
878
  endDateAccessibleName: string | null;
874
879
  /** Whether the datepicker is above or below the input. */
875
880
  _isAbove: boolean;
876
- /** Current state of the animation. */
877
- _animationState: 'enter-dropdown' | 'enter-dialog' | 'void';
878
881
  /** Emits when an animation has finished. */
879
882
  readonly _animationDone: Subject<void>;
880
883
  /** Whether there is an in-progress animation. */
@@ -888,13 +891,12 @@ export declare class MatDatepickerContent<S, D = ExtractDateTypeFromSelection<S>
888
891
  /** Id of the label for the `role="dialog"` element. */
889
892
  _dialogLabelId: string | null;
890
893
  constructor(...args: unknown[]);
891
- ngOnInit(): void;
892
894
  ngAfterViewInit(): void;
893
895
  ngOnDestroy(): void;
894
896
  _handleUserSelection(event: MatCalendarUserEvent<D | null>): void;
895
897
  _handleUserDragDrop(event: MatCalendarUserEvent<DateRange<D>>): void;
896
898
  _startExitAnimation(): void;
897
- _handleAnimationEvent(event: AnimationEvent_2): void;
899
+ private _handleAnimationEvent;
898
900
  _getSelected(): D | DateRange<D> | null;
899
901
  /** Applies the current pending selection to the global model. */
900
902
  _applyPendingSelection(): void;
package/dialog/index.d.ts CHANGED
@@ -272,11 +272,7 @@ export declare class MatDialogConfig<D = any> {
272
272
  ariaLabelledBy?: string | null;
273
273
  /** Aria label to assign to the dialog element. */
274
274
  ariaLabel?: string | null;
275
- /**
276
- * Whether this is a modal dialog. Used to set the `aria-modal` attribute. Off by default,
277
- * because it can interfere with other overlay-based components (e.g. `mat-select`) and because
278
- * it is redundant since the dialog marks all outside content as `aria-hidden` anyway.
279
- */
275
+ /** Whether this is a modal dialog. Used to set the `aria-modal` attribute. */
280
276
  ariaModal?: boolean;
281
277
  /**
282
278
  * Where the dialog should focus on open.
@@ -1,12 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ChangeDetectorRef, ElementRef, EventEmitter, booleanAttribute, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, ContentChildren, Input, Output, Directive, forwardRef, EnvironmentInjector, ViewContainerRef, NgZone, Renderer2, afterNextRender, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, ChangeDetectorRef, ElementRef, ANIMATION_MODULE_TYPE, EventEmitter, booleanAttribute, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, ContentChildren, Input, Output, Directive, forwardRef, EnvironmentInjector, ViewContainerRef, NgZone, Renderer2, afterNextRender, NgModule } from '@angular/core';
3
3
  import { MAT_OPTION_PARENT_COMPONENT, MatOption, MAT_OPTGROUP, MatOptionSelectionChange, _countGroupLabelsBeforeOption, _getOptionScrollPosition, MatOptionModule, MatCommonModule } from '@angular/material/core';
4
4
  export { MatOptgroup, MatOption } from '@angular/material/core';
5
5
  import { ViewportRuler, CdkScrollableModule } from '@angular/cdk/scrolling';
6
6
  import { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
7
7
  import { _IdGenerator, ActiveDescendantKeyManager, removeAriaReferencedId, addAriaReferencedId } from '@angular/cdk/a11y';
8
8
  import { Platform, _getEventTarget } from '@angular/cdk/platform';
9
- import { trigger, state, style, transition, group, animate } from '@angular/animations';
10
9
  import { Subscription, Subject, merge, of, defer, Observable } from 'rxjs';
11
10
  import { Directionality } from '@angular/cdk/bidi';
12
11
  import { hasModifierKey, ESCAPE, ENTER, UP_ARROW, DOWN_ARROW, TAB } from '@angular/cdk/keycodes';
@@ -17,22 +16,6 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
17
16
  import { MAT_FORM_FIELD } from '@angular/material/form-field';
18
17
  import { filter, map, startWith, switchMap, tap, delay, take } from 'rxjs/operators';
19
18
 
20
- // Animation values come from
21
- // TODO(mmalerba): Ideally find a way to import the values from MDC's code.
22
- const panelAnimation = trigger('panelAnimation', [
23
- state('void, hidden', style({
24
- opacity: 0,
25
- transform: 'scaleY(0.8)',
26
- })),
27
- transition(':enter, hidden => visible', [
28
- group([
29
- animate('0.03s linear', style({ opacity: 1 })),
30
- animate('0.12s cubic-bezier(0, 0, 0.2, 1)', style({ transform: 'scaleY(1)' })),
31
- ]),
32
- ]),
33
- transition(':leave, visible => hidden', [animate('0.075s linear', style({ opacity: 0 }))]),
34
- ]);
35
-
36
19
  /** Event object that is emitted when an autocomplete option is selected. */
37
20
  class MatAutocompleteSelectedEvent {
38
21
  source;
@@ -65,9 +48,8 @@ class MatAutocomplete {
65
48
  _changeDetectorRef = inject(ChangeDetectorRef);
66
49
  _elementRef = inject(ElementRef);
67
50
  _defaults = inject(MAT_AUTOCOMPLETE_DEFAULT_OPTIONS);
51
+ _animationsDisabled = inject(ANIMATION_MODULE_TYPE, { optional: true }) === 'NoopAnimations';
68
52
  _activeOptionChanges = Subscription.EMPTY;
69
- /** Emits when the panel animation is done. Null if the panel doesn't animate. */
70
- _animationDone = new EventEmitter();
71
53
  /** Manages active item in option list based on key events. */
72
54
  _keyManager;
73
55
  /** Whether the autocomplete panel should be visible, depending on option length. */
@@ -192,7 +174,6 @@ class MatAutocomplete {
192
174
  ngOnDestroy() {
193
175
  this._keyManager?.destroy();
194
176
  this._activeOptionChanges.unsubscribe();
195
- this._animationDone.complete();
196
177
  }
197
178
  /**
198
179
  * Sets the panel scrollTop. This allows us to manually scroll to display options
@@ -242,14 +223,14 @@ class MatAutocomplete {
242
223
  _skipPredicate() {
243
224
  return false;
244
225
  }
245
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatAutocomplete, deps: [], target: i0.ɵɵFactoryTarget.Component });
246
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.1.3", type: MatAutocomplete, isStandalone: true, selector: "mat-autocomplete", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], displayWith: "displayWith", autoActiveFirstOption: ["autoActiveFirstOption", "autoActiveFirstOption", booleanAttribute], autoSelectActiveOption: ["autoSelectActiveOption", "autoSelectActiveOption", booleanAttribute], requireSelection: ["requireSelection", "requireSelection", booleanAttribute], panelWidth: "panelWidth", disableRipple: ["disableRipple", "disableRipple", booleanAttribute], classList: ["class", "classList"], hideSingleSelectionIndicator: ["hideSingleSelectionIndicator", "hideSingleSelectionIndicator", booleanAttribute] }, outputs: { optionSelected: "optionSelected", opened: "opened", closed: "closed", optionActivated: "optionActivated" }, host: { classAttribute: "mat-mdc-autocomplete" }, providers: [{ provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }], queries: [{ propertyName: "options", predicate: MatOption, descendants: true }, { propertyName: "optionGroups", predicate: MAT_OPTGROUP, descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }], exportAs: ["matAutocomplete"], ngImport: i0, template: "<ng-template let-formFieldId=\"id\">\n <div\n class=\"mat-mdc-autocomplete-panel mdc-menu-surface mdc-menu-surface--open\"\n role=\"listbox\"\n [id]=\"id\"\n [class]=\"_classList\"\n [class.mat-mdc-autocomplete-visible]=\"showPanel\"\n [class.mat-mdc-autocomplete-hidden]=\"!showPanel\"\n [class.mat-primary]=\"_color === 'primary'\"\n [class.mat-accent]=\"_color === 'accent'\"\n [class.mat-warn]=\"_color === 'warn'\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\n [@panelAnimation]=\"isOpen ? 'visible' : 'hidden'\"\n (@panelAnimation.done)=\"_animationDone.next($event)\"\n #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: ["div.mat-mdc-autocomplete-panel{width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:8px 0;box-sizing:border-box;position:static;border-radius:var(--mat-autocomplete-container-shape, var(--mat-sys-corner-extra-small));box-shadow:var(--mat-autocomplete-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));background-color:var(--mat-autocomplete-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-autocomplete-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-top-left-radius:0;border-top-right-radius:0}.mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:center bottom}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible{visibility:visible}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden{visibility:hidden;pointer-events:none}mat-autocomplete{display:none}"], animations: [panelAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
226
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatAutocomplete, deps: [], target: i0.ɵɵFactoryTarget.Component });
227
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.1.0-rc.0", type: MatAutocomplete, isStandalone: true, selector: "mat-autocomplete", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], displayWith: "displayWith", autoActiveFirstOption: ["autoActiveFirstOption", "autoActiveFirstOption", booleanAttribute], autoSelectActiveOption: ["autoSelectActiveOption", "autoSelectActiveOption", booleanAttribute], requireSelection: ["requireSelection", "requireSelection", booleanAttribute], panelWidth: "panelWidth", disableRipple: ["disableRipple", "disableRipple", booleanAttribute], classList: ["class", "classList"], hideSingleSelectionIndicator: ["hideSingleSelectionIndicator", "hideSingleSelectionIndicator", booleanAttribute] }, outputs: { optionSelected: "optionSelected", opened: "opened", closed: "closed", optionActivated: "optionActivated" }, host: { classAttribute: "mat-mdc-autocomplete" }, providers: [{ provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }], queries: [{ propertyName: "options", predicate: MatOption, descendants: true }, { propertyName: "optionGroups", predicate: MAT_OPTGROUP, descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }], exportAs: ["matAutocomplete"], ngImport: i0, template: "<ng-template let-formFieldId=\"id\">\n <div\n class=\"mat-mdc-autocomplete-panel mdc-menu-surface mdc-menu-surface--open\"\n role=\"listbox\"\n [id]=\"id\"\n [class]=\"_classList\"\n [class.mat-mdc-autocomplete-visible]=\"showPanel\"\n [class.mat-mdc-autocomplete-hidden]=\"!showPanel\"\n [class.mat-autocomplete-panel-animations-enabled]=\"!_animationsDisabled\"\n [class.mat-primary]=\"_color === 'primary'\"\n [class.mat-accent]=\"_color === 'accent'\"\n [class.mat-warn]=\"_color === 'warn'\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\n #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: ["div.mat-mdc-autocomplete-panel{width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:8px 0;box-sizing:border-box;position:static;border-radius:var(--mat-autocomplete-container-shape, var(--mat-sys-corner-extra-small));box-shadow:var(--mat-autocomplete-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));background-color:var(--mat-autocomplete-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-autocomplete-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-top-left-radius:0;border-top-right-radius:0}.mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:center bottom}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible{visibility:visible}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden{visibility:hidden;pointer-events:none}@keyframes _mat-autocomplete-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}.mat-autocomplete-panel-animations-enabled{animation:_mat-autocomplete-enter 120ms cubic-bezier(0, 0, 0.2, 1)}mat-autocomplete{display:none}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
247
228
  }
248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatAutocomplete, decorators: [{
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatAutocomplete, decorators: [{
249
230
  type: Component,
250
231
  args: [{ selector: 'mat-autocomplete', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'matAutocomplete', host: {
251
232
  'class': 'mat-mdc-autocomplete',
252
- }, providers: [{ provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }], animations: [panelAnimation], template: "<ng-template let-formFieldId=\"id\">\n <div\n class=\"mat-mdc-autocomplete-panel mdc-menu-surface mdc-menu-surface--open\"\n role=\"listbox\"\n [id]=\"id\"\n [class]=\"_classList\"\n [class.mat-mdc-autocomplete-visible]=\"showPanel\"\n [class.mat-mdc-autocomplete-hidden]=\"!showPanel\"\n [class.mat-primary]=\"_color === 'primary'\"\n [class.mat-accent]=\"_color === 'accent'\"\n [class.mat-warn]=\"_color === 'warn'\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\n [@panelAnimation]=\"isOpen ? 'visible' : 'hidden'\"\n (@panelAnimation.done)=\"_animationDone.next($event)\"\n #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: ["div.mat-mdc-autocomplete-panel{width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:8px 0;box-sizing:border-box;position:static;border-radius:var(--mat-autocomplete-container-shape, var(--mat-sys-corner-extra-small));box-shadow:var(--mat-autocomplete-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));background-color:var(--mat-autocomplete-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-autocomplete-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-top-left-radius:0;border-top-right-radius:0}.mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:center bottom}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible{visibility:visible}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden{visibility:hidden;pointer-events:none}mat-autocomplete{display:none}"] }]
233
+ }, providers: [{ provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }], template: "<ng-template let-formFieldId=\"id\">\n <div\n class=\"mat-mdc-autocomplete-panel mdc-menu-surface mdc-menu-surface--open\"\n role=\"listbox\"\n [id]=\"id\"\n [class]=\"_classList\"\n [class.mat-mdc-autocomplete-visible]=\"showPanel\"\n [class.mat-mdc-autocomplete-hidden]=\"!showPanel\"\n [class.mat-autocomplete-panel-animations-enabled]=\"!_animationsDisabled\"\n [class.mat-primary]=\"_color === 'primary'\"\n [class.mat-accent]=\"_color === 'accent'\"\n [class.mat-warn]=\"_color === 'warn'\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\n #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: ["div.mat-mdc-autocomplete-panel{width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:8px 0;box-sizing:border-box;position:static;border-radius:var(--mat-autocomplete-container-shape, var(--mat-sys-corner-extra-small));box-shadow:var(--mat-autocomplete-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));background-color:var(--mat-autocomplete-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-autocomplete-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-top-left-radius:0;border-top-right-radius:0}.mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:center bottom}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible{visibility:visible}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden{visibility:hidden;pointer-events:none}@keyframes _mat-autocomplete-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}.mat-autocomplete-panel-animations-enabled{animation:_mat-autocomplete-enter 120ms cubic-bezier(0, 0, 0.2, 1)}mat-autocomplete{display:none}"] }]
253
234
  }], ctorParameters: () => [], propDecorators: { template: [{
254
235
  type: ViewChild,
255
236
  args: [TemplateRef, { static: true }]
@@ -307,10 +288,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImpor
307
288
  class MatAutocompleteOrigin {
308
289
  elementRef = inject(ElementRef);
309
290
  constructor() { }
310
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatAutocompleteOrigin, deps: [], target: i0.ɵɵFactoryTarget.Directive });
311
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.3", type: MatAutocompleteOrigin, isStandalone: true, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], ngImport: i0 });
291
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatAutocompleteOrigin, deps: [], target: i0.ɵɵFactoryTarget.Directive });
292
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: MatAutocompleteOrigin, isStandalone: true, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], ngImport: i0 });
312
293
  }
313
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
314
295
  type: Directive,
315
296
  args: [{
316
297
  selector: '[matAutocompleteOrigin]',
@@ -851,14 +832,7 @@ class MatAutocompleteTrigger {
851
832
  this._element.nativeElement.value !== this._valueOnAttach) {
852
833
  this._clearPreviousSelectedOption(null);
853
834
  this._assignOptionValue(null);
854
- // Wait for the animation to finish before clearing the form control value, otherwise
855
- // the options might change while the animation is running which looks glitchy.
856
- if (panel._animationDone) {
857
- panel._animationDone.pipe(take(1)).subscribe(() => this._onChange(null));
858
- }
859
- else {
860
- this._onChange(null);
861
- }
835
+ this._onChange(null);
862
836
  }
863
837
  this.closePanel();
864
838
  }
@@ -1161,10 +1135,10 @@ class MatAutocompleteTrigger {
1161
1135
  this._trackedModal = null;
1162
1136
  }
1163
1137
  }
1164
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatAutocompleteTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1165
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.3", type: MatAutocompleteTrigger, isStandalone: true, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: { autocomplete: ["matAutocomplete", "autocomplete"], position: ["matAutocompletePosition", "position"], connectedTo: ["matAutocompleteConnectedTo", "connectedTo"], autocompleteAttribute: ["autocomplete", "autocompleteAttribute"], autocompleteDisabled: ["matAutocompleteDisabled", "autocompleteDisabled", booleanAttribute] }, host: { listeners: { "focusin": "_handleFocus()", "blur": "_onTouched()", "input": "_handleInput($event)", "keydown": "_handleKeydown($event)", "click": "_handleClick()" }, properties: { "attr.autocomplete": "autocompleteAttribute", "attr.role": "autocompleteDisabled ? null : \"combobox\"", "attr.aria-autocomplete": "autocompleteDisabled ? null : \"list\"", "attr.aria-activedescendant": "(panelOpen && activeOption) ? activeOption.id : null", "attr.aria-expanded": "autocompleteDisabled ? null : panelOpen.toString()", "attr.aria-controls": "(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id", "attr.aria-haspopup": "autocompleteDisabled ? null : \"listbox\"" }, classAttribute: "mat-mdc-autocomplete-trigger" }, providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR], exportAs: ["matAutocompleteTrigger"], usesOnChanges: true, ngImport: i0 });
1138
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatAutocompleteTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1139
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.0-rc.0", type: MatAutocompleteTrigger, isStandalone: true, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: { autocomplete: ["matAutocomplete", "autocomplete"], position: ["matAutocompletePosition", "position"], connectedTo: ["matAutocompleteConnectedTo", "connectedTo"], autocompleteAttribute: ["autocomplete", "autocompleteAttribute"], autocompleteDisabled: ["matAutocompleteDisabled", "autocompleteDisabled", booleanAttribute] }, host: { listeners: { "focusin": "_handleFocus()", "blur": "_onTouched()", "input": "_handleInput($event)", "keydown": "_handleKeydown($event)", "click": "_handleClick()" }, properties: { "attr.autocomplete": "autocompleteAttribute", "attr.role": "autocompleteDisabled ? null : \"combobox\"", "attr.aria-autocomplete": "autocompleteDisabled ? null : \"list\"", "attr.aria-activedescendant": "(panelOpen && activeOption) ? activeOption.id : null", "attr.aria-expanded": "autocompleteDisabled ? null : panelOpen.toString()", "attr.aria-controls": "(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id", "attr.aria-haspopup": "autocompleteDisabled ? null : \"listbox\"" }, classAttribute: "mat-mdc-autocomplete-trigger" }, providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR], exportAs: ["matAutocompleteTrigger"], usesOnChanges: true, ngImport: i0 });
1166
1140
  }
1167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatAutocompleteTrigger, decorators: [{
1141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatAutocompleteTrigger, decorators: [{
1168
1142
  type: Directive,
1169
1143
  args: [{
1170
1144
  selector: `input[matAutocomplete], textarea[matAutocomplete]`,
@@ -1206,8 +1180,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImpor
1206
1180
  }] } });
1207
1181
 
1208
1182
  class MatAutocompleteModule {
1209
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1210
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.3", ngImport: i0, type: MatAutocompleteModule, imports: [OverlayModule,
1183
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1184
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatAutocompleteModule, imports: [OverlayModule,
1211
1185
  MatOptionModule,
1212
1186
  MatCommonModule,
1213
1187
  MatAutocomplete,
@@ -1218,13 +1192,13 @@ class MatAutocompleteModule {
1218
1192
  MatCommonModule,
1219
1193
  MatAutocompleteTrigger,
1220
1194
  MatAutocompleteOrigin] });
1221
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatAutocompleteModule, providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [OverlayModule,
1195
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatAutocompleteModule, providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [OverlayModule,
1222
1196
  MatOptionModule,
1223
1197
  MatCommonModule, CdkScrollableModule,
1224
1198
  MatOptionModule,
1225
1199
  MatCommonModule] });
1226
1200
  }
1227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: MatAutocompleteModule, decorators: [{
1201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: MatAutocompleteModule, decorators: [{
1228
1202
  type: NgModule,
1229
1203
  args: [{
1230
1204
  imports: [