index.d.ts 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  1. import { _AbstractConstructor } from '@angular/material/core';
  2. import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
  3. import { AfterContentInit } from '@angular/core';
  4. import { AfterViewInit } from '@angular/core';
  5. import { AnimationTriggerMetadata } from '@angular/animations';
  6. import { BooleanInput } from '@angular/cdk/coercion';
  7. import { CanDisable } from '@angular/material/core';
  8. import { CanDisableRipple } from '@angular/material/core';
  9. import { CanUpdateErrorState } from '@angular/material/core';
  10. import { CdkConnectedOverlay } from '@angular/cdk/overlay';
  11. import { CdkOverlayOrigin } from '@angular/cdk/overlay';
  12. import { ChangeDetectorRef } from '@angular/core';
  13. import { ConnectedPosition } from '@angular/cdk/overlay';
  14. import { _Constructor } from '@angular/material/core';
  15. import { ControlValueAccessor } from '@angular/forms';
  16. import { Directionality } from '@angular/cdk/bidi';
  17. import { DoCheck } from '@angular/core';
  18. import { ElementRef } from '@angular/core';
  19. import { ErrorStateMatcher } from '@angular/material/core';
  20. import { EventEmitter } from '@angular/core';
  21. import { FormGroupDirective } from '@angular/forms';
  22. import { HasTabIndex } from '@angular/material/core';
  23. import * as i0 from '@angular/core';
  24. import * as i2 from '@angular/common';
  25. import * as i3 from '@angular/cdk/overlay';
  26. import * as i4 from '@angular/material/core';
  27. import * as i5 from '@angular/cdk/scrolling';
  28. import * as i6 from '@angular/material/form-field';
  29. import { InjectionToken } from '@angular/core';
  30. import { LiveAnnouncer } from '@angular/cdk/a11y';
  31. import { MatFormField } from '@angular/material/form-field';
  32. import { MatFormFieldControl } from '@angular/material/form-field';
  33. import { MatOptgroup } from '@angular/material/core';
  34. import { MatOption } from '@angular/material/core';
  35. import { _MatOptionBase } from '@angular/material/core';
  36. import { MatOptionSelectionChange } from '@angular/material/core';
  37. import { NgControl } from '@angular/forms';
  38. import { NgForm } from '@angular/forms';
  39. import { NgZone } from '@angular/core';
  40. import { NumberInput } from '@angular/cdk/coercion';
  41. import { Observable } from 'rxjs';
  42. import { OnChanges } from '@angular/core';
  43. import { OnDestroy } from '@angular/core';
  44. import { OnInit } from '@angular/core';
  45. import { Overlay } from '@angular/cdk/overlay';
  46. import { QueryList } from '@angular/core';
  47. import { ScrollStrategy } from '@angular/cdk/overlay';
  48. import { SelectionModel } from '@angular/cdk/collections';
  49. import { SimpleChanges } from '@angular/core';
  50. import { Subject } from 'rxjs';
  51. import { ViewportRuler } from '@angular/cdk/scrolling';
  52. declare namespace i1 {
  53. export {
  54. MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY,
  55. MAT_SELECT_SCROLL_STRATEGY,
  56. MatSelectConfig,
  57. MAT_SELECT_CONFIG,
  58. MAT_SELECT_SCROLL_STRATEGY_PROVIDER,
  59. MAT_SELECT_TRIGGER,
  60. MatSelectChange,
  61. _MatSelectBase,
  62. MatSelectTrigger,
  63. MatSelect
  64. }
  65. }
  66. /** Injection token that can be used to provide the default options the select module. */
  67. export declare const MAT_SELECT_CONFIG: InjectionToken<MatSelectConfig>;
  68. /** Injection token that determines the scroll handling while a select is open. */
  69. export declare const MAT_SELECT_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
  70. /** @docs-private */
  71. export declare const MAT_SELECT_SCROLL_STRATEGY_PROVIDER: {
  72. provide: InjectionToken<() => ScrollStrategy>;
  73. deps: (typeof Overlay)[];
  74. useFactory: typeof MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY;
  75. };
  76. /** @docs-private */
  77. export declare function MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay): () => ScrollStrategy;
  78. /**
  79. * Injection token that can be used to reference instances of `MatSelectTrigger`. It serves as
  80. * alternative token to the actual `MatSelectTrigger` class which could cause unnecessary
  81. * retention of the class and its directive metadata.
  82. */
  83. export declare const MAT_SELECT_TRIGGER: InjectionToken<MatSelectTrigger>;
  84. export declare class MatSelect extends _MatSelectBase<MatSelectChange> implements OnInit, AfterViewInit {
  85. options: QueryList<MatOption>;
  86. optionGroups: QueryList<MatOptgroup>;
  87. customTrigger: MatSelectTrigger;
  88. _positions: ConnectedPosition[];
  89. /** Ideal origin for the overlay panel. */
  90. _preferredOverlayOrigin: CdkOverlayOrigin | ElementRef | undefined;
  91. /** Width of the overlay panel. */
  92. _overlayWidth: number;
  93. get shouldLabelFloat(): boolean;
  94. ngOnInit(): void;
  95. ngAfterViewInit(): void;
  96. open(): void;
  97. close(): void;
  98. /** Scrolls the active option into view. */
  99. protected _scrollOptionIntoView(index: number): void;
  100. protected _positioningSettled(): void;
  101. protected _getChangeEvent(value: any): MatSelectChange;
  102. /** Gets how wide the overlay panel should be. */
  103. private _getOverlayWidth;
  104. /** Whether checkmark indicator for single-selection options is hidden. */
  105. get hideSingleSelectionIndicator(): boolean;
  106. set hideSingleSelectionIndicator(value: BooleanInput);
  107. private _hideSingleSelectionIndicator;
  108. /** Syncs the parent state with the individual options. */
  109. _syncParentProperties(): void;
  110. protected _skipPredicate: (option: MatOption) => boolean;
  111. static ɵfac: i0.ɵɵFactoryDeclaration<MatSelect, never>;
  112. static ɵcmp: i0.ɵɵComponentDeclaration<MatSelect, "mat-select", ["matSelect"], { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "hideSingleSelectionIndicator": { "alias": "hideSingleSelectionIndicator"; "required": false; }; }, {}, ["customTrigger", "options", "optionGroups"], ["mat-select-trigger", "*"], false, never>;
  113. }
  114. /**
  115. * The following are all the animations for the mat-select component, with each
  116. * const containing the metadata for one animation.
  117. *
  118. * The values below match the implementation of the AngularJS Material mat-select animation.
  119. * @docs-private
  120. */
  121. export declare const matSelectAnimations: {
  122. /**
  123. * @deprecated No longer being used. To be removed.
  124. * @breaking-change 12.0.0
  125. */
  126. readonly transformPanelWrap: AnimationTriggerMetadata;
  127. readonly transformPanel: AnimationTriggerMetadata;
  128. };
  129. /** Base class with all of the `MatSelect` functionality. */
  130. export declare abstract class _MatSelectBase<C> extends _MatSelectMixinBase implements AfterContentInit, OnChanges, OnDestroy, OnInit, DoCheck, ControlValueAccessor, CanDisable, HasTabIndex, MatFormFieldControl<any>, CanUpdateErrorState, CanDisableRipple {
  131. protected _viewportRuler: ViewportRuler;
  132. protected _changeDetectorRef: ChangeDetectorRef;
  133. protected _ngZone: NgZone;
  134. private _dir;
  135. protected _parentFormField: MatFormField;
  136. private _liveAnnouncer;
  137. protected _defaultOptions?: MatSelectConfig | undefined;
  138. /** All of the defined select options. */
  139. abstract options: QueryList<_MatOptionBase>;
  140. /** All of the defined groups of options. */
  141. abstract optionGroups: QueryList<MatOptgroup>;
  142. /** User-supplied override of the trigger element. */
  143. abstract customTrigger: {};
  144. /**
  145. * This position config ensures that the top "start" corner of the overlay
  146. * is aligned with with the top "start" of the origin by default (overlapping
  147. * the trigger completely). If the panel cannot fit below the trigger, it
  148. * will fall back to a position above the trigger.
  149. */
  150. abstract _positions: ConnectedPosition[];
  151. /** Scrolls a particular option into the view. */
  152. protected abstract _scrollOptionIntoView(index: number): void;
  153. /** Called when the panel has been opened and the overlay has settled on its final position. */
  154. protected abstract _positioningSettled(): void;
  155. /** Creates a change event object that should be emitted by the select. */
  156. protected abstract _getChangeEvent(value: any): C;
  157. /** Factory function used to create a scroll strategy for this select. */
  158. private _scrollStrategyFactory;
  159. /** Whether or not the overlay panel is open. */
  160. private _panelOpen;
  161. /** Comparison function to specify which option is displayed. Defaults to object equality. */
  162. private _compareWith;
  163. /** Unique id for this input. */
  164. private _uid;
  165. /** Current `aria-labelledby` value for the select trigger. */
  166. private _triggerAriaLabelledBy;
  167. /**
  168. * Keeps track of the previous form control assigned to the select.
  169. * Used to detect if it has changed.
  170. */
  171. private _previousControl;
  172. /** Emits whenever the component is destroyed. */
  173. protected readonly _destroy: Subject<void>;
  174. /**
  175. * Implemented as part of MatFormFieldControl.
  176. * @docs-private
  177. */
  178. userAriaDescribedBy: string;
  179. /** Deals with the selection logic. */
  180. _selectionModel: SelectionModel<MatOption>;
  181. /** Manages keyboard events for options in the panel. */
  182. _keyManager: ActiveDescendantKeyManager<MatOption>;
  183. /** `View -> model callback called when value changes` */
  184. _onChange: (value: any) => void;
  185. /** `View -> model callback called when select has been touched` */
  186. _onTouched: () => void;
  187. /** ID for the DOM node containing the select's value. */
  188. _valueId: string;
  189. /** Emits when the panel element is finished transforming in. */
  190. readonly _panelDoneAnimatingStream: Subject<string>;
  191. /** Strategy that will be used to handle scrolling while the select panel is open. */
  192. _scrollStrategy: ScrollStrategy;
  193. _overlayPanelClass: string | string[];
  194. /** Whether the select is focused. */
  195. get focused(): boolean;
  196. private _focused;
  197. /** A name for this control that can be used by `mat-form-field`. */
  198. controlType: string;
  199. /** Trigger that opens the select. */
  200. trigger: ElementRef;
  201. /** Panel containing the select options. */
  202. panel: ElementRef;
  203. /** Overlay pane containing the options. */
  204. protected _overlayDir: CdkConnectedOverlay;
  205. /** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */
  206. panelClass: string | string[] | Set<string> | {
  207. [key: string]: any;
  208. };
  209. /** Placeholder to be shown if no value has been selected. */
  210. get placeholder(): string;
  211. set placeholder(value: string);
  212. private _placeholder;
  213. /** Whether the component is required. */
  214. get required(): boolean;
  215. set required(value: BooleanInput);
  216. private _required;
  217. /** Whether the user should be allowed to select multiple options. */
  218. get multiple(): boolean;
  219. set multiple(value: BooleanInput);
  220. private _multiple;
  221. /** Whether to center the active option over the trigger. */
  222. get disableOptionCentering(): boolean;
  223. set disableOptionCentering(value: BooleanInput);
  224. private _disableOptionCentering;
  225. /**
  226. * Function to compare the option values with the selected values. The first argument
  227. * is a value from an option. The second is a value from the selection. A boolean
  228. * should be returned.
  229. */
  230. get compareWith(): (o1: any, o2: any) => boolean;
  231. set compareWith(fn: (o1: any, o2: any) => boolean);
  232. /** Value of the select control. */
  233. get value(): any;
  234. set value(newValue: any);
  235. private _value;
  236. /** Aria label of the select. */
  237. ariaLabel: string;
  238. /** Input that can be used to specify the `aria-labelledby` attribute. */
  239. ariaLabelledby: string;
  240. /** Object used to control when error messages are shown. */
  241. errorStateMatcher: ErrorStateMatcher;
  242. /** Time to wait in milliseconds after the last keystroke before moving focus to an item. */
  243. get typeaheadDebounceInterval(): number;
  244. set typeaheadDebounceInterval(value: NumberInput);
  245. private _typeaheadDebounceInterval;
  246. /**
  247. * Function used to sort the values in a select in multiple mode.
  248. * Follows the same logic as `Array.prototype.sort`.
  249. */
  250. sortComparator: (a: MatOption, b: MatOption, options: MatOption[]) => number;
  251. /** Unique id of the element. */
  252. get id(): string;
  253. set id(value: string);
  254. private _id;
  255. /** Combined stream of all of the child options' change events. */
  256. readonly optionSelectionChanges: Observable<MatOptionSelectionChange>;
  257. /** Event emitted when the select panel has been toggled. */
  258. readonly openedChange: EventEmitter<boolean>;
  259. /** Event emitted when the select has been opened. */
  260. readonly _openedStream: Observable<void>;
  261. /** Event emitted when the select has been closed. */
  262. readonly _closedStream: Observable<void>;
  263. /** Event emitted when the selected value has been changed by the user. */
  264. readonly selectionChange: EventEmitter<C>;
  265. /**
  266. * Event that emits whenever the raw value of the select changes. This is here primarily
  267. * to facilitate the two-way binding for the `value` input.
  268. * @docs-private
  269. */
  270. readonly valueChange: EventEmitter<any>;
  271. constructor(_viewportRuler: ViewportRuler, _changeDetectorRef: ChangeDetectorRef, _ngZone: NgZone, _defaultErrorStateMatcher: ErrorStateMatcher, elementRef: ElementRef, _dir: Directionality, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, _parentFormField: MatFormField, ngControl: NgControl, tabIndex: string, scrollStrategyFactory: any, _liveAnnouncer: LiveAnnouncer, _defaultOptions?: MatSelectConfig | undefined);
  272. ngOnInit(): void;
  273. ngAfterContentInit(): void;
  274. ngDoCheck(): void;
  275. ngOnChanges(changes: SimpleChanges): void;
  276. ngOnDestroy(): void;
  277. /** Toggles the overlay panel open or closed. */
  278. toggle(): void;
  279. /** Opens the overlay panel. */
  280. open(): void;
  281. /** Closes the overlay panel and focuses the host element. */
  282. close(): void;
  283. /**
  284. * Sets the select's value. Part of the ControlValueAccessor interface
  285. * required to integrate with Angular's core forms API.
  286. *
  287. * @param value New value to be written to the model.
  288. */
  289. writeValue(value: any): void;
  290. /**
  291. * Saves a callback function to be invoked when the select's value
  292. * changes from user input. Part of the ControlValueAccessor interface
  293. * required to integrate with Angular's core forms API.
  294. *
  295. * @param fn Callback to be triggered when the value changes.
  296. */
  297. registerOnChange(fn: (value: any) => void): void;
  298. /**
  299. * Saves a callback function to be invoked when the select is blurred
  300. * by the user. Part of the ControlValueAccessor interface required
  301. * to integrate with Angular's core forms API.
  302. *
  303. * @param fn Callback to be triggered when the component has been touched.
  304. */
  305. registerOnTouched(fn: () => {}): void;
  306. /**
  307. * Disables the select. Part of the ControlValueAccessor interface required
  308. * to integrate with Angular's core forms API.
  309. *
  310. * @param isDisabled Sets whether the component is disabled.
  311. */
  312. setDisabledState(isDisabled: boolean): void;
  313. /** Whether or not the overlay panel is open. */
  314. get panelOpen(): boolean;
  315. /** The currently selected option. */
  316. get selected(): MatOption | MatOption[];
  317. /** The value displayed in the trigger. */
  318. get triggerValue(): string;
  319. /** Whether the element is in RTL mode. */
  320. _isRtl(): boolean;
  321. /** Handles all keydown events on the select. */
  322. _handleKeydown(event: KeyboardEvent): void;
  323. /** Handles keyboard events while the select is closed. */
  324. private _handleClosedKeydown;
  325. /** Handles keyboard events when the selected is open. */
  326. private _handleOpenKeydown;
  327. _onFocus(): void;
  328. /**
  329. * Calls the touched callback only if the panel is closed. Otherwise, the trigger will
  330. * "blur" to the panel when it opens, causing a false positive.
  331. */
  332. _onBlur(): void;
  333. /**
  334. * Callback that is invoked when the overlay panel has been attached.
  335. */
  336. _onAttached(): void;
  337. /** Returns the theme to be used on the panel. */
  338. _getPanelTheme(): string;
  339. /** Whether the select has a value. */
  340. get empty(): boolean;
  341. private _initializeSelection;
  342. /**
  343. * Sets the selected option based on a value. If no option can be
  344. * found with the designated value, the select trigger is cleared.
  345. */
  346. private _setSelectionByValue;
  347. /**
  348. * Finds and selects and option based on its value.
  349. * @returns Option that has the corresponding value.
  350. */
  351. private _selectOptionByValue;
  352. /** Assigns a specific value to the select. Returns whether the value has changed. */
  353. private _assignValue;
  354. protected _skipPredicate(item: MatOption): boolean;
  355. /** Sets up a key manager to listen to keyboard events on the overlay panel. */
  356. private _initKeyManager;
  357. /** Drops current option subscriptions and IDs and resets from scratch. */
  358. private _resetOptions;
  359. /** Invoked when an option is clicked. */
  360. private _onSelect;
  361. /** Sorts the selected values in the selected based on their order in the panel. */
  362. private _sortValues;
  363. /** Emits change event to set the model value. */
  364. private _propagateChanges;
  365. /**
  366. * Highlights the selected item. If no option is selected, it will highlight
  367. * the first *enabled* option.
  368. */
  369. private _highlightCorrectOption;
  370. /** Whether the panel is allowed to open. */
  371. protected _canOpen(): boolean;
  372. /** Focuses the select element. */
  373. focus(options?: FocusOptions): void;
  374. /** Gets the aria-labelledby for the select panel. */
  375. _getPanelAriaLabelledby(): string | null;
  376. /** Determines the `aria-activedescendant` to be set on the host. */
  377. _getAriaActiveDescendant(): string | null;
  378. /** Gets the aria-labelledby of the select component trigger. */
  379. private _getTriggerAriaLabelledby;
  380. /** Called when the overlay panel is done animating. */
  381. protected _panelDoneAnimating(isOpen: boolean): void;
  382. /**
  383. * Implemented as part of MatFormFieldControl.
  384. * @docs-private
  385. */
  386. setDescribedByIds(ids: string[]): void;
  387. /**
  388. * Implemented as part of MatFormFieldControl.
  389. * @docs-private
  390. */
  391. onContainerClick(): void;
  392. /**
  393. * Implemented as part of MatFormFieldControl.
  394. * @docs-private
  395. */
  396. get shouldLabelFloat(): boolean;
  397. static ɵfac: i0.ɵɵFactoryDeclaration<_MatSelectBase<any>, [null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; self: true; }, { attribute: "tabindex"; }, null, null, { optional: true; }]>;
  398. static ɵdir: i0.ɵɵDirectiveDeclaration<_MatSelectBase<any>, never, never, { "userAriaDescribedBy": { "alias": "aria-describedby"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disableOptionCentering": { "alias": "disableOptionCentering"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "typeaheadDebounceInterval": { "alias": "typeaheadDebounceInterval"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, { "openedChange": "openedChange"; "_openedStream": "opened"; "_closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, never, never, false, never>;
  399. }
  400. /** Change event object that is emitted when the select value has changed. */
  401. export declare class MatSelectChange {
  402. /** Reference to the select that emitted the change event. */
  403. source: MatSelect;
  404. /** Current value of the select that emitted the event. */
  405. value: any;
  406. constructor(
  407. /** Reference to the select that emitted the change event. */
  408. source: MatSelect,
  409. /** Current value of the select that emitted the event. */
  410. value: any);
  411. }
  412. /** Object that can be used to configure the default options for the select module. */
  413. export declare interface MatSelectConfig {
  414. /** Whether option centering should be disabled. */
  415. disableOptionCentering?: boolean;
  416. /** Time to wait in milliseconds after the last keystroke before moving focus to an item. */
  417. typeaheadDebounceInterval?: number;
  418. /** Class or list of classes to be applied to the menu's overlay panel. */
  419. overlayPanelClass?: string | string[];
  420. /** Wheter icon indicators should be hidden for single-selection. */
  421. hideSingleSelectionIndicator?: boolean;
  422. }
  423. /** @docs-private */
  424. declare const _MatSelectMixinBase: _Constructor<CanDisableRipple> & _AbstractConstructor<CanDisableRipple> & _Constructor<HasTabIndex> & _AbstractConstructor<HasTabIndex> & _Constructor<CanDisable> & _AbstractConstructor<CanDisable> & _Constructor<CanUpdateErrorState> & _AbstractConstructor<CanUpdateErrorState> & {
  425. new (_elementRef: ElementRef, _defaultErrorStateMatcher: ErrorStateMatcher, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, ngControl: NgControl): {
  426. /**
  427. * Emits whenever the component state changes and should cause the parent
  428. * form-field to update. Implemented as part of `MatFormFieldControl`.
  429. * @docs-private
  430. */
  431. readonly stateChanges: Subject<void>;
  432. _elementRef: ElementRef;
  433. _defaultErrorStateMatcher: ErrorStateMatcher;
  434. _parentForm: NgForm;
  435. _parentFormGroup: FormGroupDirective;
  436. /**
  437. * Form control bound to the component.
  438. * Implemented as part of `MatFormFieldControl`.
  439. * @docs-private
  440. */
  441. ngControl: NgControl;
  442. };
  443. };
  444. export declare class MatSelectModule {
  445. static ɵfac: i0.ɵɵFactoryDeclaration<MatSelectModule, never>;
  446. static ɵmod: i0.ɵɵNgModuleDeclaration<MatSelectModule, [typeof i1.MatSelect, typeof i1.MatSelectTrigger], [typeof i2.CommonModule, typeof i3.OverlayModule, typeof i4.MatOptionModule, typeof i4.MatCommonModule], [typeof i5.CdkScrollableModule, typeof i6.MatFormFieldModule, typeof i1.MatSelect, typeof i1.MatSelectTrigger, typeof i4.MatOptionModule, typeof i4.MatCommonModule]>;
  447. static ɵinj: i0.ɵɵInjectorDeclaration<MatSelectModule>;
  448. }
  449. /**
  450. * Allows the user to customize the trigger that is displayed when the select has a value.
  451. */
  452. export declare class MatSelectTrigger {
  453. static ɵfac: i0.ɵɵFactoryDeclaration<MatSelectTrigger, never>;
  454. static ɵdir: i0.ɵɵDirectiveDeclaration<MatSelectTrigger, "mat-select-trigger", never, {}, {}, never, never, false, never>;
  455. }
  456. export { }