{"version":3,"file":"select.d.ts","sources":["select.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ActiveDescendantKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkConnectedOverlay, ConnectedPosition, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { AfterContentInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, InjectionToken, NgZone, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { CanDisable, CanDisableRipple, CanUpdateErrorState, ErrorStateMatcher, HasTabIndex, MatOptgroup, MatOption, MatOptionSelectionChange, _MatOptionBase } from '@angular/material/core';\nimport { MatFormField, MatFormFieldControl } from '@angular/material/form-field';\nimport { Observable, Subject } from 'rxjs';\n/**\n * The following style constants are necessary to save here in order\n * to properly calculate the alignment of the selected option over\n * the trigger element.\n */\n/** The max height of the select's overlay panel. */\nexport declare const SELECT_PANEL_MAX_HEIGHT = 256;\n/** The panel's padding on the x-axis. */\nexport declare const SELECT_PANEL_PADDING_X = 16;\n/** The panel's x axis padding if it is indented (e.g. there is an option group). */\nexport declare const SELECT_PANEL_INDENT_PADDING_X: number;\n/** The height of the select items in `em` units. */\nexport declare const SELECT_ITEM_HEIGHT_EM = 3;\n/**\n * Distance between the panel edge and the option text in\n * multi-selection mode.\n *\n * Calculated as:\n * (SELECT_PANEL_PADDING_X * 1.5) + 16 = 40\n * The padding is multiplied by 1.5 because the checkbox's margin is half the padding.\n * The checkbox width is 16px.\n */\nexport declare const SELECT_MULTIPLE_PANEL_PADDING_X: number;\n/**\n * The select panel will only \"fit\" inside the viewport if it is positioned at\n * this value or more away from the viewport boundary.\n */\nexport declare const SELECT_PANEL_VIEWPORT_PADDING = 8;\n/** Injection token that determines the scroll handling while a select is open. */\nexport declare const MAT_SELECT_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;\n/** @docs-private */\nexport declare function MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay): () => ScrollStrategy;\n/** Object that can be used to configure the default options for the select module. */\nexport interface MatSelectConfig {\n /** Whether option centering should be disabled. */\n disableOptionCentering?: boolean;\n /** Time to wait in milliseconds after the last keystroke before moving focus to an item. */\n typeaheadDebounceInterval?: number;\n /** Class or list of classes to be applied to the menu's overlay panel. */\n overlayPanelClass?: string | string[];\n}\n/** Injection token that can be used to provide the default options the select module. */\nexport declare const MAT_SELECT_CONFIG: InjectionToken;\n/** @docs-private */\nexport declare const MAT_SELECT_SCROLL_STRATEGY_PROVIDER: {\n provide: InjectionToken<() => ScrollStrategy>;\n deps: (typeof Overlay)[];\n useFactory: typeof MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY;\n};\n/** Change event object that is emitted when the select value has changed. */\nexport declare class MatSelectChange {\n /** Reference to the select that emitted the change event. */\n source: MatSelect;\n /** Current value of the select that emitted the event. */\n value: any;\n constructor(\n /** Reference to the select that emitted the change event. */\n source: MatSelect, \n /** Current value of the select that emitted the event. */\n value: any);\n}\n/** @docs-private */\ndeclare const _MatSelectMixinBase: import(\"@angular/material/core/common-behaviors/constructor\").Constructor & import(\"@angular/material/core/common-behaviors/constructor\").AbstractConstructor & import(\"@angular/material/core/common-behaviors/constructor\").Constructor & import(\"@angular/material/core/common-behaviors/constructor\").AbstractConstructor & import(\"@angular/material/core/common-behaviors/constructor\").Constructor & import(\"@angular/material/core/common-behaviors/constructor\").AbstractConstructor & import(\"@angular/material/core/common-behaviors/constructor\").Constructor & import(\"@angular/material/core/common-behaviors/constructor\").AbstractConstructor & {\n new (_elementRef: ElementRef, _defaultErrorStateMatcher: ErrorStateMatcher, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, ngControl: NgControl): {\n _elementRef: ElementRef;\n _defaultErrorStateMatcher: ErrorStateMatcher;\n _parentForm: NgForm;\n _parentFormGroup: FormGroupDirective;\n ngControl: NgControl;\n };\n};\n/**\n * Injection token that can be used to reference instances of `MatSelectTrigger`. It serves as\n * alternative token to the actual `MatSelectTrigger` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport declare const MAT_SELECT_TRIGGER: InjectionToken;\n/**\n * Allows the user to customize the trigger that is displayed when the select has a value.\n */\nexport declare class MatSelectTrigger {\n}\n/** Base class with all of the `MatSelect` functionality. */\nexport declare abstract class _MatSelectBase extends _MatSelectMixinBase implements AfterContentInit, OnChanges, OnDestroy, OnInit, DoCheck, ControlValueAccessor, CanDisable, HasTabIndex, MatFormFieldControl, CanUpdateErrorState, CanDisableRipple {\n protected _viewportRuler: ViewportRuler;\n protected _changeDetectorRef: ChangeDetectorRef;\n protected _ngZone: NgZone;\n private _dir;\n protected _parentFormField: MatFormField;\n private _liveAnnouncer;\n private _defaultOptions?;\n /** All of the defined select options. */\n abstract options: QueryList<_MatOptionBase>;\n /** All of the defined groups of options. */\n abstract optionGroups: QueryList;\n /** User-supplied override of the trigger element. */\n abstract customTrigger: {};\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n abstract _positions: ConnectedPosition[];\n /** Scrolls a particular option into the view. */\n protected abstract _scrollOptionIntoView(index: number): void;\n /** Called when the panel has been opened and the overlay has settled on its final position. */\n protected abstract _positioningSettled(): void;\n /** Creates a change event object that should be emitted by the select. */\n protected abstract _getChangeEvent(value: any): C;\n /** Factory function used to create a scroll strategy for this select. */\n private _scrollStrategyFactory;\n /** Whether or not the overlay panel is open. */\n private _panelOpen;\n /** Comparison function to specify which option is displayed. Defaults to object equality. */\n private _compareWith;\n /** Unique id for this input. */\n private _uid;\n /** Current `ariar-labelledby` value for the select trigger. */\n private _triggerAriaLabelledBy;\n /** Emits whenever the component is destroyed. */\n protected readonly _destroy: Subject;\n /** The aria-describedby attribute on the select for improved a11y. */\n _ariaDescribedby: string;\n /** Deals with the selection logic. */\n _selectionModel: SelectionModel;\n /** Manages keyboard events for options in the panel. */\n _keyManager: ActiveDescendantKeyManager;\n /** `View -> model callback called when value changes` */\n _onChange: (value: any) => void;\n /** `View -> model callback called when select has been touched` */\n _onTouched: () => void;\n /** ID for the DOM node containing the select's value. */\n _valueId: string;\n /** Emits when the panel element is finished transforming in. */\n readonly _panelDoneAnimatingStream: Subject;\n /** Strategy that will be used to handle scrolling while the select panel is open. */\n _scrollStrategy: ScrollStrategy;\n _overlayPanelClass: string | string[];\n /** Whether the select is focused. */\n get focused(): boolean;\n private _focused;\n /** A name for this control that can be used by `mat-form-field`. */\n controlType: string;\n /** Trigger that opens the select. */\n trigger: ElementRef;\n /** Panel containing the select options. */\n panel: ElementRef;\n /** Overlay pane containing the options. */\n protected _overlayDir: CdkConnectedOverlay;\n /** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */\n panelClass: string | string[] | Set | {\n [key: string]: any;\n };\n /** Placeholder to be shown if no value has been selected. */\n get placeholder(): string;\n set placeholder(value: string);\n private _placeholder;\n /** Whether the component is required. */\n get required(): boolean;\n set required(value: boolean);\n private _required;\n /** Whether the user should be allowed to select multiple options. */\n get multiple(): boolean;\n set multiple(value: boolean);\n private _multiple;\n /** Whether to center the active option over the trigger. */\n get disableOptionCentering(): boolean;\n set disableOptionCentering(value: boolean);\n private _disableOptionCentering;\n /**\n * Function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n get compareWith(): (o1: any, o2: any) => boolean;\n set compareWith(fn: (o1: any, o2: any) => boolean);\n /** Value of the select control. */\n get value(): any;\n set value(newValue: any);\n private _value;\n /** Aria label of the select. */\n ariaLabel: string;\n /** Input that can be used to specify the `aria-labelledby` attribute. */\n ariaLabelledby: string;\n /** Object used to control when error messages are shown. */\n errorStateMatcher: ErrorStateMatcher;\n /** Time to wait in milliseconds after the last keystroke before moving focus to an item. */\n get typeaheadDebounceInterval(): number;\n set typeaheadDebounceInterval(value: number);\n private _typeaheadDebounceInterval;\n /**\n * Function used to sort the values in a select in multiple mode.\n * Follows the same logic as `Array.prototype.sort`.\n */\n sortComparator: (a: MatOption, b: MatOption, options: MatOption[]) => number;\n /** Unique id of the element. */\n get id(): string;\n set id(value: string);\n private _id;\n /** Combined stream of all of the child options' change events. */\n readonly optionSelectionChanges: Observable;\n /** Event emitted when the select panel has been toggled. */\n readonly openedChange: EventEmitter;\n /** Event emitted when the select has been opened. */\n readonly _openedStream: Observable;\n /** Event emitted when the select has been closed. */\n readonly _closedStream: Observable;\n /** Event emitted when the selected value has been changed by the user. */\n readonly selectionChange: EventEmitter;\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n readonly valueChange: EventEmitter;\n 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);\n ngOnInit(): void;\n ngAfterContentInit(): void;\n ngDoCheck(): void;\n ngOnChanges(changes: SimpleChanges): void;\n ngOnDestroy(): void;\n /** Toggles the overlay panel open or closed. */\n toggle(): void;\n /** Opens the overlay panel. */\n open(): void;\n /** Closes the overlay panel and focuses the host element. */\n close(): void;\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void;\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (value: any) => void): void;\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: () => {}): void;\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean): void;\n /** Whether or not the overlay panel is open. */\n get panelOpen(): boolean;\n /** The currently selected option. */\n get selected(): MatOption | MatOption[];\n /** The value displayed in the trigger. */\n get triggerValue(): string;\n /** Whether the element is in RTL mode. */\n _isRtl(): boolean;\n /** Handles all keydown events on the select. */\n _handleKeydown(event: KeyboardEvent): void;\n /** Handles keyboard events while the select is closed. */\n private _handleClosedKeydown;\n /** Handles keyboard events when the selected is open. */\n private _handleOpenKeydown;\n _onFocus(): void;\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n */\n _onBlur(): void;\n /**\n * Callback that is invoked when the overlay panel has been attached.\n */\n _onAttached(): void;\n /** Returns the theme to be used on the panel. */\n _getPanelTheme(): string;\n /** Whether the select has a value. */\n get empty(): boolean;\n private _initializeSelection;\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private _setSelectionByValue;\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n private _selectValue;\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n private _initKeyManager;\n /** Drops current option subscriptions and IDs and resets from scratch. */\n private _resetOptions;\n /** Invoked when an option is clicked. */\n private _onSelect;\n /** Sorts the selected values in the selected based on their order in the panel. */\n private _sortValues;\n /** Emits change event to set the model value. */\n private _propagateChanges;\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first item instead.\n */\n private _highlightCorrectOption;\n /** Whether the panel is allowed to open. */\n protected _canOpen(): boolean;\n /** Focuses the select element. */\n focus(options?: FocusOptions): void;\n /** Gets the aria-labelledby for the select panel. */\n _getPanelAriaLabelledby(): string | null;\n /** Determines the `aria-activedescendant` to be set on the host. */\n _getAriaActiveDescendant(): string | null;\n /** Gets the aria-labelledby of the select component trigger. */\n private _getTriggerAriaLabelledby;\n /** Called when the overlay panel is done animating. */\n protected _panelDoneAnimating(isOpen: boolean): void;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids: string[]): void;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick(): void;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean;\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_multiple: BooleanInput;\n static ngAcceptInputType_disableOptionCentering: BooleanInput;\n static ngAcceptInputType_typeaheadDebounceInterval: NumberInput;\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_disableRipple: BooleanInput;\n static ngAcceptInputType_tabIndex: NumberInput;\n}\nexport declare class MatSelect extends _MatSelectBase implements OnInit {\n /** The scroll position of the overlay panel, calculated to center the selected option. */\n private _scrollTop;\n /** The last measured value for the trigger's client bounding rect. */\n _triggerRect: ClientRect;\n /** The cached font-size of the trigger element. */\n _triggerFontSize: number;\n /** The value of the select panel's transform-origin property. */\n _transformOrigin: string;\n /**\n * The y-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text.\n * when the panel opens. Will change based on the y-position of the selected option.\n */\n _offsetY: number;\n options: QueryList;\n optionGroups: QueryList;\n customTrigger: MatSelectTrigger;\n _positions: ConnectedPosition[];\n /**\n * Calculates the scroll position of the select's overlay panel.\n *\n * Attempts to center the selected option in the panel. If the option is\n * too high or too low in the panel to be scrolled to the center, it clamps the\n * scroll position to the min or max scroll positions respectively.\n */\n _calculateOverlayScroll(selectedIndex: number, scrollBuffer: number, maxScroll: number): number;\n ngOnInit(): void;\n open(): void;\n /** Scrolls the active option into view. */\n protected _scrollOptionIntoView(index: number): void;\n protected _positioningSettled(): void;\n protected _panelDoneAnimating(isOpen: boolean): void;\n protected _getChangeEvent(value: any): MatSelectChange;\n /**\n * Sets the x-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text when\n * the panel opens. Will change based on LTR or RTL text direction. Note that the offset\n * can't be calculated until the panel has been attached, because we need to know the\n * content width in order to constrain the panel within the viewport.\n */\n private _calculateOverlayOffsetX;\n /**\n * Calculates the y-offset of the select's overlay panel in relation to the\n * top start corner of the trigger. It has to be adjusted in order for the\n * selected option to be aligned over the trigger when the panel opens.\n */\n private _calculateOverlayOffsetY;\n /**\n * Checks that the attempted overlay position will fit within the viewport.\n * If it will not fit, tries to adjust the scroll position and the associated\n * y-offset so the panel can open fully on-screen. If it still won't fit,\n * sets the offset back to 0 to allow the fallback position to take over.\n */\n private _checkOverlayWithinViewport;\n /** Adjusts the overlay panel up to fit in the viewport. */\n private _adjustPanelUp;\n /** Adjusts the overlay panel down to fit in the viewport. */\n private _adjustPanelDown;\n /** Calculates the scroll position and x- and y-offsets of the overlay panel. */\n private _calculateOverlayPosition;\n /** Sets the transform origin point based on the selected option. */\n private _getOriginBasedOnOption;\n /** Calculates the height of the select's options. */\n private _getItemHeight;\n /** Calculates the amount of items in the select. This includes options and group labels. */\n private _getItemCount;\n}\nexport {};\n"]}