[6a3a178] | 1 | /**
|
---|
| 2 | * @license
|
---|
| 3 | * Copyright Google LLC All Rights Reserved.
|
---|
| 4 | *
|
---|
| 5 | * Use of this source code is governed by an MIT-style license that can be
|
---|
| 6 | * found in the LICENSE file at https://angular.io/license
|
---|
| 7 | */
|
---|
| 8 | import { FocusKeyManager } from '@angular/cdk/a11y';
|
---|
| 9 | import { Directionality } from '@angular/cdk/bidi';
|
---|
| 10 | import { BooleanInput } from '@angular/cdk/coercion';
|
---|
| 11 | import { SelectionModel } from '@angular/cdk/collections';
|
---|
| 12 | import { AfterContentInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
|
---|
| 13 | import { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';
|
---|
| 14 | import { CanUpdateErrorState, ErrorStateMatcher } from '@angular/material/core';
|
---|
| 15 | import { MatFormFieldControl } from '@angular/material/form-field';
|
---|
| 16 | import { Observable } from 'rxjs';
|
---|
| 17 | import { MatChip, MatChipEvent, MatChipSelectionChange } from './chip';
|
---|
| 18 | import { MatChipTextControl } from './chip-text-control';
|
---|
| 19 | /** @docs-private */
|
---|
| 20 | import * as ɵngcc0 from '@angular/core';
|
---|
| 21 | declare const _MatChipListBase: import("@angular/material/core/common-behaviors/constructor").Constructor<CanUpdateErrorState> & import("@angular/material/core/common-behaviors/constructor").AbstractConstructor<CanUpdateErrorState> & {
|
---|
| 22 | new (_defaultErrorStateMatcher: ErrorStateMatcher, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, ngControl: NgControl): {
|
---|
| 23 | _defaultErrorStateMatcher: ErrorStateMatcher;
|
---|
| 24 | _parentForm: NgForm;
|
---|
| 25 | _parentFormGroup: FormGroupDirective;
|
---|
| 26 | /** @docs-private */
|
---|
| 27 | ngControl: NgControl;
|
---|
| 28 | };
|
---|
| 29 | };
|
---|
| 30 | /** Change event object that is emitted when the chip list value has changed. */
|
---|
| 31 | export declare class MatChipListChange {
|
---|
| 32 | /** Chip list that emitted the event. */
|
---|
| 33 | source: MatChipList;
|
---|
| 34 | /** Value of the chip list when the event was emitted. */
|
---|
| 35 | value: any;
|
---|
| 36 | constructor(
|
---|
| 37 | /** Chip list that emitted the event. */
|
---|
| 38 | source: MatChipList,
|
---|
| 39 | /** Value of the chip list when the event was emitted. */
|
---|
| 40 | value: any);
|
---|
| 41 | }
|
---|
| 42 | /**
|
---|
| 43 | * A material design chips component (named ChipList for its similarity to the List component).
|
---|
| 44 | */
|
---|
| 45 | export declare class MatChipList extends _MatChipListBase implements MatFormFieldControl<any>, ControlValueAccessor, AfterContentInit, DoCheck, OnInit, OnDestroy, CanUpdateErrorState {
|
---|
| 46 | protected _elementRef: ElementRef<HTMLElement>;
|
---|
| 47 | private _changeDetectorRef;
|
---|
| 48 | private _dir;
|
---|
| 49 | /**
|
---|
| 50 | * Implemented as part of MatFormFieldControl.
|
---|
| 51 | * @docs-private
|
---|
| 52 | */
|
---|
| 53 | readonly controlType: string;
|
---|
| 54 | /**
|
---|
| 55 | * When a chip is destroyed, we store the index of the destroyed chip until the chips
|
---|
| 56 | * query list notifies about the update. This is necessary because we cannot determine an
|
---|
| 57 | * appropriate chip that should receive focus until the array of chips updated completely.
|
---|
| 58 | */
|
---|
| 59 | private _lastDestroyedChipIndex;
|
---|
| 60 | /** Subject that emits when the component has been destroyed. */
|
---|
| 61 | private readonly _destroyed;
|
---|
| 62 | /** Subscription to focus changes in the chips. */
|
---|
| 63 | private _chipFocusSubscription;
|
---|
| 64 | /** Subscription to blur changes in the chips. */
|
---|
| 65 | private _chipBlurSubscription;
|
---|
| 66 | /** Subscription to selection changes in chips. */
|
---|
| 67 | private _chipSelectionSubscription;
|
---|
| 68 | /** Subscription to remove changes in chips. */
|
---|
| 69 | private _chipRemoveSubscription;
|
---|
| 70 | /** The chip input to add more chips */
|
---|
| 71 | protected _chipInput: MatChipTextControl;
|
---|
| 72 | /** Uid of the chip list */
|
---|
| 73 | _uid: string;
|
---|
| 74 | /** The aria-describedby attribute on the chip list for improved a11y. */
|
---|
| 75 | _ariaDescribedby: string;
|
---|
| 76 | /** Tab index for the chip list. */
|
---|
| 77 | _tabIndex: number;
|
---|
| 78 | /**
|
---|
| 79 | * User defined tab index.
|
---|
| 80 | * When it is not null, use user defined tab index. Otherwise use _tabIndex
|
---|
| 81 | */
|
---|
| 82 | _userTabIndex: number | null;
|
---|
| 83 | /** The FocusKeyManager which handles focus. */
|
---|
| 84 | _keyManager: FocusKeyManager<MatChip>;
|
---|
| 85 | /** Function when touched */
|
---|
| 86 | _onTouched: () => void;
|
---|
| 87 | /** Function when changed */
|
---|
| 88 | _onChange: (value: any) => void;
|
---|
| 89 | _selectionModel: SelectionModel<MatChip>;
|
---|
| 90 | /** The array of selected chips inside chip list. */
|
---|
| 91 | get selected(): MatChip[] | MatChip;
|
---|
| 92 | /** The ARIA role applied to the chip list. */
|
---|
| 93 | get role(): string | null;
|
---|
| 94 | /** An object used to control when error messages are shown. */
|
---|
| 95 | errorStateMatcher: ErrorStateMatcher;
|
---|
| 96 | /** Whether the user should be allowed to select multiple chips. */
|
---|
| 97 | get multiple(): boolean;
|
---|
| 98 | set multiple(value: boolean);
|
---|
| 99 | private _multiple;
|
---|
| 100 | /**
|
---|
| 101 | * A function to compare the option values with the selected values. The first argument
|
---|
| 102 | * is a value from an option. The second is a value from the selection. A boolean
|
---|
| 103 | * should be returned.
|
---|
| 104 | */
|
---|
| 105 | get compareWith(): (o1: any, o2: any) => boolean;
|
---|
| 106 | set compareWith(fn: (o1: any, o2: any) => boolean);
|
---|
| 107 | private _compareWith;
|
---|
| 108 | /**
|
---|
| 109 | * Implemented as part of MatFormFieldControl.
|
---|
| 110 | * @docs-private
|
---|
| 111 | */
|
---|
| 112 | get value(): any;
|
---|
| 113 | set value(value: any);
|
---|
| 114 | protected _value: any;
|
---|
| 115 | /**
|
---|
| 116 | * Implemented as part of MatFormFieldControl.
|
---|
| 117 | * @docs-private
|
---|
| 118 | */
|
---|
| 119 | get id(): string;
|
---|
| 120 | /**
|
---|
| 121 | * Implemented as part of MatFormFieldControl.
|
---|
| 122 | * @docs-private
|
---|
| 123 | */
|
---|
| 124 | get required(): boolean;
|
---|
| 125 | set required(value: boolean);
|
---|
| 126 | protected _required: boolean;
|
---|
| 127 | /**
|
---|
| 128 | * Implemented as part of MatFormFieldControl.
|
---|
| 129 | * @docs-private
|
---|
| 130 | */
|
---|
| 131 | get placeholder(): string;
|
---|
| 132 | set placeholder(value: string);
|
---|
| 133 | protected _placeholder: string;
|
---|
| 134 | /** Whether any chips or the matChipInput inside of this chip-list has focus. */
|
---|
| 135 | get focused(): boolean;
|
---|
| 136 | /**
|
---|
| 137 | * Implemented as part of MatFormFieldControl.
|
---|
| 138 | * @docs-private
|
---|
| 139 | */
|
---|
| 140 | get empty(): boolean;
|
---|
| 141 | /**
|
---|
| 142 | * Implemented as part of MatFormFieldControl.
|
---|
| 143 | * @docs-private
|
---|
| 144 | */
|
---|
| 145 | get shouldLabelFloat(): boolean;
|
---|
| 146 | /**
|
---|
| 147 | * Implemented as part of MatFormFieldControl.
|
---|
| 148 | * @docs-private
|
---|
| 149 | */
|
---|
| 150 | get disabled(): boolean;
|
---|
| 151 | set disabled(value: boolean);
|
---|
| 152 | protected _disabled: boolean;
|
---|
| 153 | /** Orientation of the chip list. */
|
---|
| 154 | ariaOrientation: 'horizontal' | 'vertical';
|
---|
| 155 | /**
|
---|
| 156 | * Whether or not this chip list is selectable. When a chip list is not selectable,
|
---|
| 157 | * the selected states for all the chips inside the chip list are always ignored.
|
---|
| 158 | */
|
---|
| 159 | get selectable(): boolean;
|
---|
| 160 | set selectable(value: boolean);
|
---|
| 161 | protected _selectable: boolean;
|
---|
| 162 | set tabIndex(value: number);
|
---|
| 163 | /** Combined stream of all of the child chips' selection change events. */
|
---|
| 164 | get chipSelectionChanges(): Observable<MatChipSelectionChange>;
|
---|
| 165 | /** Combined stream of all of the child chips' focus change events. */
|
---|
| 166 | get chipFocusChanges(): Observable<MatChipEvent>;
|
---|
| 167 | /** Combined stream of all of the child chips' blur change events. */
|
---|
| 168 | get chipBlurChanges(): Observable<MatChipEvent>;
|
---|
| 169 | /** Combined stream of all of the child chips' remove change events. */
|
---|
| 170 | get chipRemoveChanges(): Observable<MatChipEvent>;
|
---|
| 171 | /** Event emitted when the selected chip list value has been changed by the user. */
|
---|
| 172 | readonly change: EventEmitter<MatChipListChange>;
|
---|
| 173 | /**
|
---|
| 174 | * Event that emits whenever the raw value of the chip-list changes. This is here primarily
|
---|
| 175 | * to facilitate the two-way binding for the `value` input.
|
---|
| 176 | * @docs-private
|
---|
| 177 | */
|
---|
| 178 | readonly valueChange: EventEmitter<any>;
|
---|
| 179 | /** The chip components contained within this chip list. */
|
---|
| 180 | chips: QueryList<MatChip>;
|
---|
| 181 | constructor(_elementRef: ElementRef<HTMLElement>, _changeDetectorRef: ChangeDetectorRef, _dir: Directionality, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, _defaultErrorStateMatcher: ErrorStateMatcher, ngControl: NgControl);
|
---|
| 182 | ngAfterContentInit(): void;
|
---|
| 183 | ngOnInit(): void;
|
---|
| 184 | ngDoCheck(): void;
|
---|
| 185 | ngOnDestroy(): void;
|
---|
| 186 | /** Associates an HTML input element with this chip list. */
|
---|
| 187 | registerInput(inputElement: MatChipTextControl): void;
|
---|
| 188 | /**
|
---|
| 189 | * Implemented as part of MatFormFieldControl.
|
---|
| 190 | * @docs-private
|
---|
| 191 | */
|
---|
| 192 | setDescribedByIds(ids: string[]): void;
|
---|
| 193 | writeValue(value: any): void;
|
---|
| 194 | registerOnChange(fn: (value: any) => void): void;
|
---|
| 195 | registerOnTouched(fn: () => void): void;
|
---|
| 196 | setDisabledState(isDisabled: boolean): void;
|
---|
| 197 | /**
|
---|
| 198 | * Implemented as part of MatFormFieldControl.
|
---|
| 199 | * @docs-private
|
---|
| 200 | */
|
---|
| 201 | onContainerClick(event: MouseEvent): void;
|
---|
| 202 | /**
|
---|
| 203 | * Focuses the first non-disabled chip in this chip list, or the associated input when there
|
---|
| 204 | * are no eligible chips.
|
---|
| 205 | */
|
---|
| 206 | focus(options?: FocusOptions): void;
|
---|
| 207 | /** Attempt to focus an input if we have one. */
|
---|
| 208 | _focusInput(options?: FocusOptions): void;
|
---|
| 209 | /**
|
---|
| 210 | * Pass events to the keyboard manager. Available here for tests.
|
---|
| 211 | */
|
---|
| 212 | _keydown(event: KeyboardEvent): void;
|
---|
| 213 | /**
|
---|
| 214 | * Check the tab index as you should not be allowed to focus an empty list.
|
---|
| 215 | */
|
---|
| 216 | protected _updateTabIndex(): void;
|
---|
| 217 | /**
|
---|
| 218 | * If the amount of chips changed, we need to update the
|
---|
| 219 | * key manager state and focus the next closest chip.
|
---|
| 220 | */
|
---|
| 221 | protected _updateFocusForDestroyedChips(): void;
|
---|
| 222 | /**
|
---|
| 223 | * Utility to ensure all indexes are valid.
|
---|
| 224 | *
|
---|
| 225 | * @param index The index to be checked.
|
---|
| 226 | * @returns True if the index is valid for our list of chips.
|
---|
| 227 | */
|
---|
| 228 | private _isValidIndex;
|
---|
| 229 | _setSelectionByValue(value: any, isUserInput?: boolean): void;
|
---|
| 230 | /**
|
---|
| 231 | * Finds and selects the chip based on its value.
|
---|
| 232 | * @returns Chip that has the corresponding value.
|
---|
| 233 | */
|
---|
| 234 | private _selectValue;
|
---|
| 235 | private _initializeSelection;
|
---|
| 236 | /**
|
---|
| 237 | * Deselects every chip in the list.
|
---|
| 238 | * @param skip Chip that should not be deselected.
|
---|
| 239 | */
|
---|
| 240 | private _clearSelection;
|
---|
| 241 | /**
|
---|
| 242 | * Sorts the model values, ensuring that they keep the same
|
---|
| 243 | * order that they have in the panel.
|
---|
| 244 | */
|
---|
| 245 | private _sortValues;
|
---|
| 246 | /** Emits change event to set the model value. */
|
---|
| 247 | private _propagateChanges;
|
---|
| 248 | /** When blurred, mark the field as touched when focus moved outside the chip list. */
|
---|
| 249 | _blur(): void;
|
---|
| 250 | /** Mark the field as touched */
|
---|
| 251 | _markAsTouched(): void;
|
---|
| 252 | /**
|
---|
| 253 | * Removes the `tabindex` from the chip list and resets it back afterwards, allowing the
|
---|
| 254 | * user to tab out of it. This prevents the list from capturing focus and redirecting
|
---|
| 255 | * it back to the first chip, creating a focus trap, if it user tries to tab away.
|
---|
| 256 | */
|
---|
| 257 | _allowFocusEscape(): void;
|
---|
| 258 | private _resetChips;
|
---|
| 259 | private _dropSubscriptions;
|
---|
| 260 | /** Listens to user-generated selection events on each chip. */
|
---|
| 261 | private _listenToChipsSelection;
|
---|
| 262 | /** Listens to user-generated selection events on each chip. */
|
---|
| 263 | private _listenToChipsFocus;
|
---|
| 264 | private _listenToChipsRemoved;
|
---|
| 265 | /** Checks whether an event comes from inside a chip element. */
|
---|
| 266 | private _originatesFromChip;
|
---|
| 267 | /** Checks whether any of the chips is focused. */
|
---|
| 268 | private _hasFocusedChip;
|
---|
| 269 | /** Syncs the list's state with the individual chips. */
|
---|
| 270 | private _syncChipsState;
|
---|
| 271 | static ngAcceptInputType_multiple: BooleanInput;
|
---|
| 272 | static ngAcceptInputType_required: BooleanInput;
|
---|
| 273 | static ngAcceptInputType_disabled: BooleanInput;
|
---|
| 274 | static ngAcceptInputType_selectable: BooleanInput;
|
---|
| 275 | static ɵfac: ɵngcc0.ɵɵFactoryDeclaration<MatChipList, [null, null, { optional: true; }, { optional: true; }, { optional: true; }, null, { optional: true; self: true; }]>;
|
---|
| 276 | static ɵcmp: ɵngcc0.ɵɵComponentDeclaration<MatChipList, "mat-chip-list", ["matChipList"], { "ariaOrientation": "aria-orientation"; "multiple": "multiple"; "compareWith": "compareWith"; "value": "value"; "required": "required"; "placeholder": "placeholder"; "disabled": "disabled"; "selectable": "selectable"; "tabIndex": "tabIndex"; "errorStateMatcher": "errorStateMatcher"; }, { "change": "change"; "valueChange": "valueChange"; }, ["chips"], ["*"]>;
|
---|
| 277 | }
|
---|
| 278 | export {};
|
---|
| 279 |
|
---|
| 280 | //# sourceMappingURL=chip-list.d.ts.map |
---|