{"version":3,"sources":["./node_modules/@angular/material/fesm2015/chips.js"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6F;AACoK;AAC3F;AACxG;AACb;AACN;AACkC;AACvC;AACsB;AACR;AACD;AACO;AACa;AACJ;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACQ;AACJ;AACH;AACQ;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAc;AAC1C;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAc;AAC1C;AACA;AACA;AACA;AACA;AACA,mCAAmC,4DAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4EAAa,CAAC,yEAAU,CAAC,iFAAkB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC;AAC3F,qBAAqB,+DAAwB,EAAE,iIAAiI,gEAAyB,GAAG,uDAAuD,KAAK;AACxQ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,uBAAuB,6BAA6B;AACpD,6BAA6B,uDAAuD;AACpF,aAAa;AACb,KAAK,eAAe,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,yCAAyC;AAC7G,2BAA2B,+DAAwB,EAAE,2JAA2J,gEAAyB,GAAG,oEAAoE,KAAK;AACrT,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,uBAAuB,oCAAoC;AAC3D,6BAA6B,oEAAoE;AACjG,aAAa;AACb,KAAK,eAAe,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA,2BAA2B,4CAAO;AAClC;AACA,mCAAmC,0DAAY;AAC/C;AACA,6BAA6B,0DAAY;AACzC;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qEAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA,6BAA6B,mFAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAoD;AAC1E;AACA,2BAA2B,mFAAqB;AAChD;AACA;AACA,oBAAoB,iDAAiD;AACrE;AACA,yBAAyB,mFAAqB;AAC9C;AACA;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA,0BAA0B,mFAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAM;AACvB,iBAAiB,+DAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,iBAAiB,2DAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAI;AACtB;AACA;AA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iCAAiC,+DAAwB,WAAW,+DAAwB,CAAC,wDAAiB,GAAG;AACzK,qBAAqB,+DAAwB,EAAE,uLAAuL;AACtO,QAAQ,wDAAiB,mEAAmE,iCAAiC,EAAE;AAC/H,KAAK,EAAE,aAAa,gEAAyB,GAAG,uDAAuD,KAAK;AAC5G;AACA,KAAK,gBAAgB;AACrB,KAAK,OAAO,wDAAU;AACtB;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,uDAAuD;AACpF,aAAa;AACb,KAAK,gBAAgB,UAAU,gBAAgB,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,QAAQ,EAAE;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4DAAc;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAAO;AACrC;AACA,qCAAqC,eAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA,oBAAoB,uBAAuB;AAC3C;AACA,yBAAyB,mFAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA,yBAAyB,mFAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA,oBAAoB,oEAAoE;AACxF;AACA,yBAAyB,mFAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA,2BAA2B,mFAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAK;AACpB;AACA;AACA;AACA,eAAe,kDAAK;AACpB;AACA;AACA;AACA,eAAe,kDAAK;AACpB;AACA;AACA;AACA,eAAe,kDAAK;AACpB;AACA;AACA,+BAA+B,iEAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gEAAS;AAC/B;AACA;AACA,qCAAqC,gEAAS;AAC9C;AACA,SAAS;AACT;AACA,gCAAgC,gEAAS,QAAQ,gEAAS;AAC1D;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mCAAmC,wEAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+DAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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","file":"default~auction-auction-module~bulk-email-bulk-email-module-es2015.js","sourcesContent":["import { SPACE, BACKSPACE, DELETE, TAB, hasModifierKey, ENTER } from '@angular/cdk/keycodes';\nimport { InjectionToken, Directive, EventEmitter, ElementRef, NgZone, Optional, Inject, ChangeDetectorRef, Attribute, ContentChild, Input, Output, Component, ViewEncapsulation, ChangeDetectionStrategy, Self, ContentChildren, NgModule } from '@angular/core';\nimport { mixinTabIndex, mixinColor, mixinDisableRipple, RippleRenderer, MAT_RIPPLE_GLOBAL_OPTIONS, mixinErrorState, ErrorStateMatcher } from '@angular/material/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { Subject, merge } from 'rxjs';\nimport { take, takeUntil, startWith } from 'rxjs/operators';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { NgForm, FormGroupDirective, NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\n\n/**\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 */\n/** Event object emitted by MatChip when selected or deselected. */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/platform';\nimport * as ɵngcc2 from '@angular/cdk/bidi';\nimport * as ɵngcc3 from '@angular/forms';\nimport * as ɵngcc4 from '@angular/material/core';\n\nconst _c0 = [\"*\"];\nclass MatChipSelectionChange {\n    constructor(\n    /** Reference to the chip that emitted the event. */\n    source, \n    /** Whether the chip that emitted the event is selected. */\n    selected, \n    /** Whether the selection change was a result of a user interaction. */\n    isUserInput = false) {\n        this.source = source;\n        this.selected = selected;\n        this.isUserInput = isUserInput;\n    }\n}\n/**\n * Injection token that can be used to reference instances of `MatChipRemove`. It serves as\n * alternative token to the actual `MatChipRemove` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_CHIP_REMOVE = new InjectionToken('MatChipRemove');\n/**\n * Injection token that can be used to reference instances of `MatChipAvatar`. It serves as\n * alternative token to the actual `MatChipAvatar` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_CHIP_AVATAR = new InjectionToken('MatChipAvatar');\n/**\n * Injection token that can be used to reference instances of `MatChipTrailingIcon`. It serves as\n * alternative token to the actual `MatChipTrailingIcon` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_CHIP_TRAILING_ICON = new InjectionToken('MatChipTrailingIcon');\n// Boilerplate for applying mixins to MatChip.\n/** @docs-private */\nclass MatChipBase {\n    constructor(_elementRef) {\n        this._elementRef = _elementRef;\n    }\n}\nconst _MatChipMixinBase = mixinTabIndex(mixinColor(mixinDisableRipple(MatChipBase), 'primary'), -1);\n/**\n * Dummy directive to add CSS class to chip avatar.\n * @docs-private\n */\nclass MatChipAvatar {\n}\nMatChipAvatar.ɵfac = function MatChipAvatar_Factory(t) { return new (t || MatChipAvatar)(); };\nMatChipAvatar.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: MatChipAvatar, selectors: [[\"mat-chip-avatar\"], [\"\", \"matChipAvatar\", \"\"]], hostAttrs: [1, \"mat-chip-avatar\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: MAT_CHIP_AVATAR, useExisting: MatChipAvatar }])] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(MatChipAvatar, [{\n        type: Directive,\n        args: [{\n                selector: 'mat-chip-avatar, [matChipAvatar]',\n                host: { 'class': 'mat-chip-avatar' },\n                providers: [{ provide: MAT_CHIP_AVATAR, useExisting: MatChipAvatar }]\n            }]\n    }], null, null); })();\n/**\n * Dummy directive to add CSS class to chip trailing icon.\n * @docs-private\n */\nclass MatChipTrailingIcon {\n}\nMatChipTrailingIcon.ɵfac = function MatChipTrailingIcon_Factory(t) { return new (t || MatChipTrailingIcon)(); };\nMatChipTrailingIcon.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: MatChipTrailingIcon, selectors: [[\"mat-chip-trailing-icon\"], [\"\", \"matChipTrailingIcon\", \"\"]], hostAttrs: [1, \"mat-chip-trailing-icon\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: MAT_CHIP_TRAILING_ICON, useExisting: MatChipTrailingIcon }])] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(MatChipTrailingIcon, [{\n        type: Directive,\n        args: [{\n                selector: 'mat-chip-trailing-icon, [matChipTrailingIcon]',\n                host: { 'class': 'mat-chip-trailing-icon' },\n                providers: [{ provide: MAT_CHIP_TRAILING_ICON, useExisting: MatChipTrailingIcon }]\n            }]\n    }], null, null); })();\n/**\n * Material design styled Chip component. Used inside the MatChipList component.\n */\nclass MatChip extends _MatChipMixinBase {\n    constructor(_elementRef, _ngZone, platform, globalRippleOptions, \n    // @breaking-change 8.0.0 `animationMode` parameter to become required.\n    animationMode, \n    // @breaking-change 9.0.0 `_changeDetectorRef` parameter to become required.\n    _changeDetectorRef, tabIndex, \n    // @breaking-change 11.0.0 `_document` parameter to become required.\n    _document) {\n        super(_elementRef);\n        this._elementRef = _elementRef;\n        this._ngZone = _ngZone;\n        this._changeDetectorRef = _changeDetectorRef;\n        /** Whether the chip has focus. */\n        this._hasFocus = false;\n        /** Whether the chip list is selectable */\n        this.chipListSelectable = true;\n        /** Whether the chip list is in multi-selection mode. */\n        this._chipListMultiple = false;\n        /** Whether the chip list as a whole is disabled. */\n        this._chipListDisabled = false;\n        this._selected = false;\n        this._selectable = true;\n        this._disabled = false;\n        this._removable = true;\n        /** Emits when the chip is focused. */\n        this._onFocus = new Subject();\n        /** Emits when the chip is blured. */\n        this._onBlur = new Subject();\n        /** Emitted when the chip is selected or deselected. */\n        this.selectionChange = new EventEmitter();\n        /** Emitted when the chip is destroyed. */\n        this.destroyed = new EventEmitter();\n        /** Emitted when a chip is to be removed. */\n        this.removed = new EventEmitter();\n        this._addHostClassName();\n        // Dynamically create the ripple target, append it within the chip, and use it as the\n        // chip's ripple target. Adding the class '.mat-chip-ripple' ensures that it will have\n        // the proper styles.\n        this._chipRippleTarget = (_document || document).createElement('div');\n        this._chipRippleTarget.classList.add('mat-chip-ripple');\n        this._elementRef.nativeElement.appendChild(this._chipRippleTarget);\n        this._chipRipple = new RippleRenderer(this, _ngZone, this._chipRippleTarget, platform);\n        this._chipRipple.setupTriggerEvents(_elementRef);\n        this.rippleConfig = globalRippleOptions || {};\n        this._animationsDisabled = animationMode === 'NoopAnimations';\n        this.tabIndex = tabIndex != null ? (parseInt(tabIndex) || -1) : -1;\n    }\n    /**\n     * Whether ripples are disabled on interaction\n     * @docs-private\n     */\n    get rippleDisabled() {\n        return this.disabled || this.disableRipple || !!this.rippleConfig.disabled;\n    }\n    /** Whether the chip is selected. */\n    get selected() { return this._selected; }\n    set selected(value) {\n        const coercedValue = coerceBooleanProperty(value);\n        if (coercedValue !== this._selected) {\n            this._selected = coercedValue;\n            this._dispatchSelectionChange();\n        }\n    }\n    /** The value of the chip. Defaults to the content inside `<mat-chip>` tags. */\n    get value() {\n        return this._value !== undefined\n            ? this._value\n            : this._elementRef.nativeElement.textContent;\n    }\n    set value(value) { this._value = value; }\n    /**\n     * Whether or not the chip is selectable. When a chip is not selectable,\n     * changes to its selected state are always ignored. By default a chip is\n     * selectable, and it becomes non-selectable if its parent chip list is\n     * not selectable.\n     */\n    get selectable() { return this._selectable && this.chipListSelectable; }\n    set selectable(value) {\n        this._selectable = coerceBooleanProperty(value);\n    }\n    /** Whether the chip is disabled. */\n    get disabled() { return this._chipListDisabled || this._disabled; }\n    set disabled(value) {\n        this._disabled = coerceBooleanProperty(value);\n    }\n    /**\n     * Determines whether or not the chip displays the remove styling and emits (removed) events.\n     */\n    get removable() { return this._removable; }\n    set removable(value) {\n        this._removable = coerceBooleanProperty(value);\n    }\n    /** The ARIA selected applied to the chip. */\n    get ariaSelected() {\n        // Remove the `aria-selected` when the chip is deselected in single-selection mode, because\n        // it adds noise to NVDA users where \"not selected\" will be read out for each chip.\n        return this.selectable && (this._chipListMultiple || this.selected) ?\n            this.selected.toString() : null;\n    }\n    _addHostClassName() {\n        const basicChipAttrName = 'mat-basic-chip';\n        const element = this._elementRef.nativeElement;\n        if (element.hasAttribute(basicChipAttrName) ||\n            element.tagName.toLowerCase() === basicChipAttrName) {\n            element.classList.add(basicChipAttrName);\n            return;\n        }\n        else {\n            element.classList.add('mat-standard-chip');\n        }\n    }\n    ngOnDestroy() {\n        this.destroyed.emit({ chip: this });\n        this._chipRipple._removeTriggerEvents();\n    }\n    /** Selects the chip. */\n    select() {\n        if (!this._selected) {\n            this._selected = true;\n            this._dispatchSelectionChange();\n            this._markForCheck();\n        }\n    }\n    /** Deselects the chip. */\n    deselect() {\n        if (this._selected) {\n            this._selected = false;\n            this._dispatchSelectionChange();\n            this._markForCheck();\n        }\n    }\n    /** Select this chip and emit selected event */\n    selectViaInteraction() {\n        if (!this._selected) {\n            this._selected = true;\n            this._dispatchSelectionChange(true);\n            this._markForCheck();\n        }\n    }\n    /** Toggles the current selected state of this chip. */\n    toggleSelected(isUserInput = false) {\n        this._selected = !this.selected;\n        this._dispatchSelectionChange(isUserInput);\n        this._markForCheck();\n        return this.selected;\n    }\n    /** Allows for programmatic focusing of the chip. */\n    focus() {\n        if (!this._hasFocus) {\n            this._elementRef.nativeElement.focus();\n            this._onFocus.next({ chip: this });\n        }\n        this._hasFocus = true;\n    }\n    /**\n     * Allows for programmatic removal of the chip. Called by the MatChipList when the DELETE or\n     * BACKSPACE keys are pressed.\n     *\n     * Informs any listeners of the removal request. Does not remove the chip from the DOM.\n     */\n    remove() {\n        if (this.removable) {\n            this.removed.emit({ chip: this });\n        }\n    }\n    /** Handles click events on the chip. */\n    _handleClick(event) {\n        if (this.disabled) {\n            event.preventDefault();\n        }\n        else {\n            event.stopPropagation();\n        }\n    }\n    /** Handle custom key presses. */\n    _handleKeydown(event) {\n        if (this.disabled) {\n            return;\n        }\n        switch (event.keyCode) {\n            case DELETE:\n            case BACKSPACE:\n                // If we are removable, remove the focused chip\n                this.remove();\n                // Always prevent so page navigation does not occur\n                event.preventDefault();\n                break;\n            case SPACE:\n                // If we are selectable, toggle the focused chip\n                if (this.selectable) {\n                    this.toggleSelected(true);\n                }\n                // Always prevent space from scrolling the page since the list has focus\n                event.preventDefault();\n                break;\n        }\n    }\n    _blur() {\n        // When animations are enabled, Angular may end up removing the chip from the DOM a little\n        // earlier than usual, causing it to be blurred and throwing off the logic in the chip list\n        // that moves focus not the next item. To work around the issue, we defer marking the chip\n        // as not focused until the next time the zone stabilizes.\n        this._ngZone.onStable\n            .pipe(take(1))\n            .subscribe(() => {\n            this._ngZone.run(() => {\n                this._hasFocus = false;\n                this._onBlur.next({ chip: this });\n            });\n        });\n    }\n    _dispatchSelectionChange(isUserInput = false) {\n        this.selectionChange.emit({\n            source: this,\n            isUserInput,\n            selected: this._selected\n        });\n    }\n    _markForCheck() {\n        // @breaking-change 9.0.0 Remove this method once the _changeDetectorRef is a required param.\n        if (this._changeDetectorRef) {\n            this._changeDetectorRef.markForCheck();\n        }\n    }\n}\nMatChip.ɵfac = function MatChip_Factory(t) { return new (t || MatChip)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.Platform), ɵngcc0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵinjectAttribute('tabindex'), ɵngcc0.ɵɵdirectiveInject(DOCUMENT, 8)); };\nMatChip.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: MatChip, selectors: [[\"mat-basic-chip\"], [\"\", \"mat-basic-chip\", \"\"], [\"mat-chip\"], [\"\", \"mat-chip\", \"\"]], contentQueries: function MatChip_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n        ɵngcc0.ɵɵcontentQuery(dirIndex, MAT_CHIP_AVATAR, true);\n        ɵngcc0.ɵɵcontentQuery(dirIndex, MAT_CHIP_TRAILING_ICON, true);\n        ɵngcc0.ɵɵcontentQuery(dirIndex, MAT_CHIP_REMOVE, true);\n    } if (rf & 2) {\n        var _t;\n        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.avatar = _t.first);\n        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.trailingIcon = _t.first);\n        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.removeIcon = _t.first);\n    } }, hostAttrs: [\"role\", \"option\", 1, \"mat-chip\", \"mat-focus-indicator\"], hostVars: 14, hostBindings: function MatChip_HostBindings(rf, ctx) { if (rf & 1) {\n        ɵngcc0.ɵɵlistener(\"click\", function MatChip_click_HostBindingHandler($event) { return ctx._handleClick($event); })(\"keydown\", function MatChip_keydown_HostBindingHandler($event) { return ctx._handleKeydown($event); })(\"focus\", function MatChip_focus_HostBindingHandler() { return ctx.focus(); })(\"blur\", function MatChip_blur_HostBindingHandler() { return ctx._blur(); });\n    } if (rf & 2) {\n        ɵngcc0.ɵɵattribute(\"tabindex\", ctx.disabled ? null : ctx.tabIndex)(\"disabled\", ctx.disabled || null)(\"aria-disabled\", ctx.disabled.toString())(\"aria-selected\", ctx.ariaSelected);\n        ɵngcc0.ɵɵclassProp(\"mat-chip-selected\", ctx.selected)(\"mat-chip-with-avatar\", ctx.avatar)(\"mat-chip-with-trailing-icon\", ctx.trailingIcon || ctx.removeIcon)(\"mat-chip-disabled\", ctx.disabled)(\"_mat-animation-noopable\", ctx._animationsDisabled);\n    } }, inputs: { color: \"color\", disableRipple: \"disableRipple\", tabIndex: \"tabIndex\", selected: \"selected\", value: \"value\", selectable: \"selectable\", disabled: \"disabled\", removable: \"removable\" }, outputs: { selectionChange: \"selectionChange\", destroyed: \"destroyed\", removed: \"removed\" }, exportAs: [\"matChip\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nMatChip.ctorParameters = () => [\n    { type: ElementRef },\n    { type: NgZone },\n    { type: Platform },\n    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_RIPPLE_GLOBAL_OPTIONS,] }] },\n    { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] },\n    { type: ChangeDetectorRef },\n    { type: String, decorators: [{ type: Attribute, args: ['tabindex',] }] },\n    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }\n];\nMatChip.propDecorators = {\n    avatar: [{ type: ContentChild, args: [MAT_CHIP_AVATAR,] }],\n    trailingIcon: [{ type: ContentChild, args: [MAT_CHIP_TRAILING_ICON,] }],\n    removeIcon: [{ type: ContentChild, args: [MAT_CHIP_REMOVE,] }],\n    selected: [{ type: Input }],\n    value: [{ type: Input }],\n    selectable: [{ type: Input }],\n    disabled: [{ type: Input }],\n    removable: [{ type: Input }],\n    selectionChange: [{ type: Output }],\n    destroyed: [{ type: Output }],\n    removed: [{ type: Output }]\n};\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(MatChip, [{\n        type: Directive,\n        args: [{\n                selector: `mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]`,\n                inputs: ['color', 'disableRipple', 'tabIndex'],\n                exportAs: 'matChip',\n                host: {\n                    'class': 'mat-chip mat-focus-indicator',\n                    '[attr.tabindex]': 'disabled ? null : tabIndex',\n                    'role': 'option',\n                    '[class.mat-chip-selected]': 'selected',\n                    '[class.mat-chip-with-avatar]': 'avatar',\n                    '[class.mat-chip-with-trailing-icon]': 'trailingIcon || removeIcon',\n                    '[class.mat-chip-disabled]': 'disabled',\n                    '[class._mat-animation-noopable]': '_animationsDisabled',\n                    '[attr.disabled]': 'disabled || null',\n                    '[attr.aria-disabled]': 'disabled.toString()',\n                    '[attr.aria-selected]': 'ariaSelected',\n                    '(click)': '_handleClick($event)',\n                    '(keydown)': '_handleKeydown($event)',\n                    '(focus)': 'focus()',\n                    '(blur)': '_blur()'\n                }\n            }]\n    }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc1.Platform }, { type: undefined, decorators: [{\n                type: Optional\n            }, {\n                type: Inject,\n                args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n            }] }, { type: String, decorators: [{\n                type: Optional\n            }, {\n                type: Inject,\n                args: [ANIMATION_MODULE_TYPE]\n            }] }, { type: ɵngcc0.ChangeDetectorRef }, { type: String, decorators: [{\n                type: Attribute,\n                args: ['tabindex']\n            }] }, { type: undefined, decorators: [{\n                type: Optional\n            }, {\n                type: Inject,\n                args: [DOCUMENT]\n            }] }]; }, { selectionChange: [{\n            type: Output\n        }], destroyed: [{\n            type: Output\n        }], removed: [{\n            type: Output\n        }], selected: [{\n            type: Input\n        }], value: [{\n            type: Input\n        }], selectable: [{\n            type: Input\n        }], disabled: [{\n            type: Input\n        }], removable: [{\n            type: Input\n        }], avatar: [{\n            type: ContentChild,\n            args: [MAT_CHIP_AVATAR]\n        }], trailingIcon: [{\n            type: ContentChild,\n            args: [MAT_CHIP_TRAILING_ICON]\n        }], removeIcon: [{\n            type: ContentChild,\n            args: [MAT_CHIP_REMOVE]\n        }] }); })();\n/**\n * Applies proper (click) support and adds styling for use with the Material Design \"cancel\" icon\n * available at https://material.io/icons/#ic_cancel.\n *\n * Example:\n *\n *     `<mat-chip>\n *       <mat-icon matChipRemove>cancel</mat-icon>\n *     </mat-chip>`\n *\n * You *may* use a custom icon, but you may need to override the `mat-chip-remove` positioning\n * styles to properly center the icon within the chip.\n */\nclass MatChipRemove {\n    constructor(_parentChip, \n    // @breaking-change 11.0.0 `elementRef` parameter to be made required.\n    elementRef) {\n        this._parentChip = _parentChip;\n        // @breaking-change 11.0.0 Remove null check for `elementRef`.\n        if (elementRef && elementRef.nativeElement.nodeName === 'BUTTON') {\n            elementRef.nativeElement.setAttribute('type', 'button');\n        }\n    }\n    /** Calls the parent chip's public `remove()` method if applicable. */\n    _handleClick(event) {\n        const parentChip = this._parentChip;\n        if (parentChip.removable && !parentChip.disabled) {\n            parentChip.remove();\n        }\n        // We need to stop event propagation because otherwise the event will bubble up to the\n        // form field and cause the `onContainerClick` method to be invoked. This method would then\n        // reset the focused chip that has been focused after chip removal. Usually the parent\n        // the parent click listener of the `MatChip` would prevent propagation, but it can happen\n        // that the chip is being removed before the event bubbles up.\n        event.stopPropagation();\n    }\n}\nMatChipRemove.ɵfac = function MatChipRemove_Factory(t) { return new (t || MatChipRemove)(ɵngcc0.ɵɵdirectiveInject(MatChip), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nMatChipRemove.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: MatChipRemove, selectors: [[\"\", \"matChipRemove\", \"\"]], hostAttrs: [1, \"mat-chip-remove\", \"mat-chip-trailing-icon\"], hostBindings: function MatChipRemove_HostBindings(rf, ctx) { if (rf & 1) {\n        ɵngcc0.ɵɵlistener(\"click\", function MatChipRemove_click_HostBindingHandler($event) { return ctx._handleClick($event); });\n    } }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: MAT_CHIP_REMOVE, useExisting: MatChipRemove }])] });\nMatChipRemove.ctorParameters = () => [\n    { type: MatChip },\n    { type: ElementRef }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(MatChipRemove, [{\n        type: Directive,\n        args: [{\n                selector: '[matChipRemove]',\n                host: {\n                    'class': 'mat-chip-remove mat-chip-trailing-icon',\n                    '(click)': '_handleClick($event)'\n                },\n                providers: [{ provide: MAT_CHIP_REMOVE, useExisting: MatChipRemove }]\n            }]\n    }], function () { return [{ type: MatChip }, { type: ɵngcc0.ElementRef }]; }, null); })();\n\n/**\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 */\n/** Injection token to be used to override the default options for the chips module. */\nconst MAT_CHIPS_DEFAULT_OPTIONS = new InjectionToken('mat-chips-default-options');\n\n/**\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 */\n// Boilerplate for applying mixins to MatChipList.\n/** @docs-private */\nclass MatChipListBase {\n    constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, \n    /** @docs-private */\n    ngControl) {\n        this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n        this._parentForm = _parentForm;\n        this._parentFormGroup = _parentFormGroup;\n        this.ngControl = ngControl;\n    }\n}\nconst _MatChipListMixinBase = mixinErrorState(MatChipListBase);\n// Increasing integer for generating unique ids for chip-list components.\nlet nextUniqueId = 0;\n/** Change event object that is emitted when the chip list value has changed. */\nclass MatChipListChange {\n    constructor(\n    /** Chip list that emitted the event. */\n    source, \n    /** Value of the chip list when the event was emitted. */\n    value) {\n        this.source = source;\n        this.value = value;\n    }\n}\n/**\n * A material design chips component (named ChipList for its similarity to the List component).\n */\nclass MatChipList extends _MatChipListMixinBase {\n    constructor(_elementRef, _changeDetectorRef, _dir, _parentForm, _parentFormGroup, _defaultErrorStateMatcher, \n    /** @docs-private */\n    ngControl) {\n        super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n        this._elementRef = _elementRef;\n        this._changeDetectorRef = _changeDetectorRef;\n        this._dir = _dir;\n        this.ngControl = ngControl;\n        /**\n         * Implemented as part of MatFormFieldControl.\n         * @docs-private\n         */\n        this.controlType = 'mat-chip-list';\n        /**\n         * When a chip is destroyed, we store the index of the destroyed chip until the chips\n         * query list notifies about the update. This is necessary because we cannot determine an\n         * appropriate chip that should receive focus until the array of chips updated completely.\n         */\n        this._lastDestroyedChipIndex = null;\n        /** Subject that emits when the component has been destroyed. */\n        this._destroyed = new Subject();\n        /** Uid of the chip list */\n        this._uid = `mat-chip-list-${nextUniqueId++}`;\n        /** Tab index for the chip list. */\n        this._tabIndex = 0;\n        /**\n         * User defined tab index.\n         * When it is not null, use user defined tab index. Otherwise use _tabIndex\n         */\n        this._userTabIndex = null;\n        /** Function when touched */\n        this._onTouched = () => { };\n        /** Function when changed */\n        this._onChange = () => { };\n        this._multiple = false;\n        this._compareWith = (o1, o2) => o1 === o2;\n        this._required = false;\n        this._disabled = false;\n        /** Orientation of the chip list. */\n        this.ariaOrientation = 'horizontal';\n        this._selectable = true;\n        /** Event emitted when the selected chip list value has been changed by the user. */\n        this.change = new EventEmitter();\n        /**\n         * Event that emits whenever the raw value of the chip-list changes. This is here primarily\n         * to facilitate the two-way binding for the `value` input.\n         * @docs-private\n         */\n        this.valueChange = new EventEmitter();\n        if (this.ngControl) {\n            this.ngControl.valueAccessor = this;\n        }\n    }\n    /** The array of selected chips inside chip list. */\n    get selected() {\n        return this.multiple ? this._selectionModel.selected : this._selectionModel.selected[0];\n    }\n    /** The ARIA role applied to the chip list. */\n    get role() { return this.empty ? null : 'listbox'; }\n    /** Whether the user should be allowed to select multiple chips. */\n    get multiple() { return this._multiple; }\n    set multiple(value) {\n        this._multiple = coerceBooleanProperty(value);\n        this._syncChipsState();\n    }\n    /**\n     * A 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() { return this._compareWith; }\n    set compareWith(fn) {\n        this._compareWith = fn;\n        if (this._selectionModel) {\n            // A different comparator means the selection could change.\n            this._initializeSelection();\n        }\n    }\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    get value() { return this._value; }\n    set value(value) {\n        this.writeValue(value);\n        this._value = value;\n    }\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    get id() {\n        return this._chipInput ? this._chipInput.id : this._uid;\n    }\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    get required() { return this._required; }\n    set required(value) {\n        this._required = coerceBooleanProperty(value);\n        this.stateChanges.next();\n    }\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    get placeholder() {\n        return this._chipInput ? this._chipInput.placeholder : this._placeholder;\n    }\n    set placeholder(value) {\n        this._placeholder = value;\n        this.stateChanges.next();\n    }\n    /** Whether any chips or the matChipInput inside of this chip-list has focus. */\n    get focused() {\n        return (this._chipInput && this._chipInput.focused) || this._hasFocusedChip();\n    }\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    get empty() {\n        return (!this._chipInput || this._chipInput.empty) && (!this.chips || this.chips.length === 0);\n    }\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    get shouldLabelFloat() { return !this.empty || this.focused; }\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    get disabled() { return this.ngControl ? !!this.ngControl.disabled : this._disabled; }\n    set disabled(value) {\n        this._disabled = coerceBooleanProperty(value);\n        this._syncChipsState();\n    }\n    /**\n     * Whether or not this chip list is selectable. When a chip list is not selectable,\n     * the selected states for all the chips inside the chip list are always ignored.\n     */\n    get selectable() { return this._selectable; }\n    set selectable(value) {\n        this._selectable = coerceBooleanProperty(value);\n        if (this.chips) {\n            this.chips.forEach(chip => chip.chipListSelectable = this._selectable);\n        }\n    }\n    set tabIndex(value) {\n        this._userTabIndex = value;\n        this._tabIndex = value;\n    }\n    /** Combined stream of all of the child chips' selection change events. */\n    get chipSelectionChanges() {\n        return merge(...this.chips.map(chip => chip.selectionChange));\n    }\n    /** Combined stream of all of the child chips' focus change events. */\n    get chipFocusChanges() {\n        return merge(...this.chips.map(chip => chip._onFocus));\n    }\n    /** Combined stream of all of the child chips' blur change events. */\n    get chipBlurChanges() {\n        return merge(...this.chips.map(chip => chip._onBlur));\n    }\n    /** Combined stream of all of the child chips' remove change events. */\n    get chipRemoveChanges() {\n        return merge(...this.chips.map(chip => chip.destroyed));\n    }\n    ngAfterContentInit() {\n        this._keyManager = new FocusKeyManager(this.chips)\n            .withWrap()\n            .withVerticalOrientation()\n            .withHomeAndEnd()\n            .withHorizontalOrientation(this._dir ? this._dir.value : 'ltr');\n        if (this._dir) {\n            this._dir.change\n                .pipe(takeUntil(this._destroyed))\n                .subscribe(dir => this._keyManager.withHorizontalOrientation(dir));\n        }\n        this._keyManager.tabOut.pipe(takeUntil(this._destroyed)).subscribe(() => {\n            this._allowFocusEscape();\n        });\n        // When the list changes, re-subscribe\n        this.chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n            if (this.disabled) {\n                // Since this happens after the content has been\n                // checked, we need to defer it to the next tick.\n                Promise.resolve().then(() => {\n                    this._syncChipsState();\n                });\n            }\n            this._resetChips();\n            // Reset chips selected/deselected status\n            this._initializeSelection();\n            // Check to see if we need to update our tab index\n            this._updateTabIndex();\n            // Check to see if we have a destroyed chip and need to refocus\n            this._updateFocusForDestroyedChips();\n            this.stateChanges.next();\n        });\n    }\n    ngOnInit() {\n        this._selectionModel = new SelectionModel(this.multiple, undefined, false);\n        this.stateChanges.next();\n    }\n    ngDoCheck() {\n        if (this.ngControl) {\n            // We need to re-evaluate this on every change detection cycle, because there are some\n            // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n            // that whatever logic is in here has to be super lean or we risk destroying the performance.\n            this.updateErrorState();\n            if (this.ngControl.disabled !== this._disabled) {\n                this.disabled = !!this.ngControl.disabled;\n            }\n        }\n    }\n    ngOnDestroy() {\n        this._destroyed.next();\n        this._destroyed.complete();\n        this.stateChanges.complete();\n        this._dropSubscriptions();\n    }\n    /** Associates an HTML input element with this chip list. */\n    registerInput(inputElement) {\n        this._chipInput = inputElement;\n        // We use this attribute to match the chip list to its input in test harnesses.\n        // Set the attribute directly here to avoid \"changed after checked\" errors.\n        this._elementRef.nativeElement.setAttribute('data-mat-chip-input', inputElement.id);\n    }\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    setDescribedByIds(ids) { this._ariaDescribedby = ids.join(' '); }\n    // Implemented as part of ControlValueAccessor.\n    writeValue(value) {\n        if (this.chips) {\n            this._setSelectionByValue(value, false);\n        }\n    }\n    // Implemented as part of ControlValueAccessor.\n    registerOnChange(fn) {\n        this._onChange = fn;\n    }\n    // Implemented as part of ControlValueAccessor.\n    registerOnTouched(fn) {\n        this._onTouched = fn;\n    }\n    // Implemented as part of ControlValueAccessor.\n    setDisabledState(isDisabled) {\n        this.disabled = isDisabled;\n        this.stateChanges.next();\n    }\n    /**\n     * Implemented as part of MatFormFieldControl.\n     * @docs-private\n     */\n    onContainerClick(event) {\n        if (!this._originatesFromChip(event)) {\n            this.focus();\n        }\n    }\n    /**\n     * Focuses the first non-disabled chip in this chip list, or the associated input when there\n     * are no eligible chips.\n     */\n    focus(options) {\n        if (this.disabled) {\n            return;\n        }\n        // TODO: ARIA says this should focus the first `selected` chip if any are selected.\n        // Focus on first element if there's no chipInput inside chip-list\n        if (this._chipInput && this._chipInput.focused) {\n            // do nothing\n        }\n        else if (this.chips.length > 0) {\n            this._keyManager.setFirstItemActive();\n            this.stateChanges.next();\n        }\n        else {\n            this._focusInput(options);\n            this.stateChanges.next();\n        }\n    }\n    /** Attempt to focus an input if we have one. */\n    _focusInput(options) {\n        if (this._chipInput) {\n            this._chipInput.focus(options);\n        }\n    }\n    /**\n     * Pass events to the keyboard manager. Available here for tests.\n     */\n    _keydown(event) {\n        const target = event.target;\n        // If they are on an empty input and hit backspace, focus the last chip\n        if (event.keyCode === BACKSPACE && this._isInputEmpty(target)) {\n            this._keyManager.setLastItemActive();\n            event.preventDefault();\n        }\n        else if (target && target.classList.contains('mat-chip')) {\n            this._keyManager.onKeydown(event);\n            this.stateChanges.next();\n        }\n    }\n    /**\n     * Check the tab index as you should not be allowed to focus an empty list.\n     */\n    _updateTabIndex() {\n        // If we have 0 chips, we should not allow keyboard focus\n        this._tabIndex = this._userTabIndex || (this.chips.length === 0 ? -1 : 0);\n    }\n    /**\n     * If the amount of chips changed, we need to update the\n     * key manager state and focus the next closest chip.\n     */\n    _updateFocusForDestroyedChips() {\n        // Move focus to the closest chip. If no other chips remain, focus the chip-list itself.\n        if (this._lastDestroyedChipIndex != null) {\n            if (this.chips.length) {\n                const newChipIndex = Math.min(this._lastDestroyedChipIndex, this.chips.length - 1);\n                this._keyManager.setActiveItem(newChipIndex);\n            }\n            else {\n                this.focus();\n            }\n        }\n        this._lastDestroyedChipIndex = null;\n    }\n    /**\n     * Utility to ensure all indexes are valid.\n     *\n     * @param index The index to be checked.\n     * @returns True if the index is valid for our list of chips.\n     */\n    _isValidIndex(index) {\n        return index >= 0 && index < this.chips.length;\n    }\n    _isInputEmpty(element) {\n        if (element && element.nodeName.toLowerCase() === 'input') {\n            let input = element;\n            return !input.value;\n        }\n        return false;\n    }\n    _setSelectionByValue(value, isUserInput = true) {\n        this._clearSelection();\n        this.chips.forEach(chip => chip.deselect());\n        if (Array.isArray(value)) {\n            value.forEach(currentValue => this._selectValue(currentValue, isUserInput));\n            this._sortValues();\n        }\n        else {\n            const correspondingChip = this._selectValue(value, isUserInput);\n            // Shift focus to the active item. Note that we shouldn't do this in multiple\n            // mode, because we don't know what chip the user interacted with last.\n            if (correspondingChip) {\n                if (isUserInput) {\n                    this._keyManager.setActiveItem(correspondingChip);\n                }\n            }\n        }\n    }\n    /**\n     * Finds and selects the chip based on its value.\n     * @returns Chip that has the corresponding value.\n     */\n    _selectValue(value, isUserInput = true) {\n        const correspondingChip = this.chips.find(chip => {\n            return chip.value != null && this._compareWith(chip.value, value);\n        });\n        if (correspondingChip) {\n            isUserInput ? correspondingChip.selectViaInteraction() : correspondingChip.select();\n            this._selectionModel.select(correspondingChip);\n        }\n        return correspondingChip;\n    }\n    _initializeSelection() {\n        // Defer setting the value in order to avoid the \"Expression\n        // has changed after it was checked\" errors from Angular.\n        Promise.resolve().then(() => {\n            if (this.ngControl || this._value) {\n                this._setSelectionByValue(this.ngControl ? this.ngControl.value : this._value, false);\n                this.stateChanges.next();\n            }\n        });\n    }\n    /**\n     * Deselects every chip in the list.\n     * @param skip Chip that should not be deselected.\n     */\n    _clearSelection(skip) {\n        this._selectionModel.clear();\n        this.chips.forEach(chip => {\n            if (chip !== skip) {\n                chip.deselect();\n            }\n        });\n        this.stateChanges.next();\n    }\n    /**\n     * Sorts the model values, ensuring that they keep the same\n     * order that they have in the panel.\n     */\n    _sortValues() {\n        if (this._multiple) {\n            this._selectionModel.clear();\n            this.chips.forEach(chip => {\n                if (chip.selected) {\n                    this._selectionModel.select(chip);\n                }\n            });\n            this.stateChanges.next();\n        }\n    }\n    /** Emits change event to set the model value. */\n    _propagateChanges(fallbackValue) {\n        let valueToEmit = null;\n        if (Array.isArray(this.selected)) {\n            valueToEmit = this.selected.map(chip => chip.value);\n        }\n        else {\n            valueToEmit = this.selected ? this.selected.value : fallbackValue;\n        }\n        this._value = valueToEmit;\n        this.change.emit(new MatChipListChange(this, valueToEmit));\n        this.valueChange.emit(valueToEmit);\n        this._onChange(valueToEmit);\n        this._changeDetectorRef.markForCheck();\n    }\n    /** When blurred, mark the field as touched when focus moved outside the chip list. */\n    _blur() {\n        if (!this._hasFocusedChip()) {\n            this._keyManager.setActiveItem(-1);\n        }\n        if (!this.disabled) {\n            if (this._chipInput) {\n                // If there's a chip input, we should check whether the focus moved to chip input.\n                // If the focus is not moved to chip input, mark the field as touched. If the focus moved\n                // to chip input, do nothing.\n                // Timeout is needed to wait for the focus() event trigger on chip input.\n                setTimeout(() => {\n                    if (!this.focused) {\n                        this._markAsTouched();\n                    }\n                });\n            }\n            else {\n                // If there's no chip input, then mark the field as touched.\n                this._markAsTouched();\n            }\n        }\n    }\n    /** Mark the field as touched */\n    _markAsTouched() {\n        this._onTouched();\n        this._changeDetectorRef.markForCheck();\n        this.stateChanges.next();\n    }\n    /**\n     * Removes the `tabindex` from the chip list and resets it back afterwards, allowing the\n     * user to tab out of it. This prevents the list from capturing focus and redirecting\n     * it back to the first chip, creating a focus trap, if it user tries to tab away.\n     */\n    _allowFocusEscape() {\n        if (this._tabIndex !== -1) {\n            this._tabIndex = -1;\n            setTimeout(() => {\n                this._tabIndex = this._userTabIndex || 0;\n                this._changeDetectorRef.markForCheck();\n            });\n        }\n    }\n    _resetChips() {\n        this._dropSubscriptions();\n        this._listenToChipsFocus();\n        this._listenToChipsSelection();\n        this._listenToChipsRemoved();\n    }\n    _dropSubscriptions() {\n        if (this._chipFocusSubscription) {\n            this._chipFocusSubscription.unsubscribe();\n            this._chipFocusSubscription = null;\n        }\n        if (this._chipBlurSubscription) {\n            this._chipBlurSubscription.unsubscribe();\n            this._chipBlurSubscription = null;\n        }\n        if (this._chipSelectionSubscription) {\n            this._chipSelectionSubscription.unsubscribe();\n            this._chipSelectionSubscription = null;\n        }\n        if (this._chipRemoveSubscription) {\n            this._chipRemoveSubscription.unsubscribe();\n            this._chipRemoveSubscription = null;\n        }\n    }\n    /** Listens to user-generated selection events on each chip. */\n    _listenToChipsSelection() {\n        this._chipSelectionSubscription = this.chipSelectionChanges.subscribe(event => {\n            event.source.selected\n                ? this._selectionModel.select(event.source)\n                : this._selectionModel.deselect(event.source);\n            // For single selection chip list, make sure the deselected value is unselected.\n            if (!this.multiple) {\n                this.chips.forEach(chip => {\n                    if (!this._selectionModel.isSelected(chip) && chip.selected) {\n                        chip.deselect();\n                    }\n                });\n            }\n            if (event.isUserInput) {\n                this._propagateChanges();\n            }\n        });\n    }\n    /** Listens to user-generated selection events on each chip. */\n    _listenToChipsFocus() {\n        this._chipFocusSubscription = this.chipFocusChanges.subscribe(event => {\n            let chipIndex = this.chips.toArray().indexOf(event.chip);\n            if (this._isValidIndex(chipIndex)) {\n                this._keyManager.updateActiveItem(chipIndex);\n            }\n            this.stateChanges.next();\n        });\n        this._chipBlurSubscription = this.chipBlurChanges.subscribe(() => {\n            this._blur();\n            this.stateChanges.next();\n        });\n    }\n    _listenToChipsRemoved() {\n        this._chipRemoveSubscription = this.chipRemoveChanges.subscribe(event => {\n            const chip = event.chip;\n            const chipIndex = this.chips.toArray().indexOf(event.chip);\n            // In case the chip that will be removed is currently focused, we temporarily store\n            // the index in order to be able to determine an appropriate sibling chip that will\n            // receive focus.\n            if (this._isValidIndex(chipIndex) && chip._hasFocus) {\n                this._lastDestroyedChipIndex = chipIndex;\n            }\n        });\n    }\n    /** Checks whether an event comes from inside a chip element. */\n    _originatesFromChip(event) {\n        let currentElement = event.target;\n        while (currentElement && currentElement !== this._elementRef.nativeElement) {\n            if (currentElement.classList.contains('mat-chip')) {\n                return true;\n            }\n            currentElement = currentElement.parentElement;\n        }\n        return false;\n    }\n    /** Checks whether any of the chips is focused. */\n    _hasFocusedChip() {\n        return this.chips && this.chips.some(chip => chip._hasFocus);\n    }\n    /** Syncs the list's state with the individual chips. */\n    _syncChipsState() {\n        if (this.chips) {\n            this.chips.forEach(chip => {\n                chip._chipListDisabled = this._disabled;\n                chip._chipListMultiple = this.multiple;\n            });\n        }\n    }\n}\nMatChipList.ɵfac = function MatChipList_Factory(t) { return new (t || MatChipList)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.NgForm, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.FormGroupDirective, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.ErrorStateMatcher), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.NgControl, 10)); };\nMatChipList.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: MatChipList, selectors: [[\"mat-chip-list\"]], contentQueries: function MatChipList_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n        ɵngcc0.ɵɵcontentQuery(dirIndex, MatChip, true);\n    } if (rf & 2) {\n        var _t;\n        ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.chips = _t);\n    } }, hostAttrs: [1, \"mat-chip-list\"], hostVars: 15, hostBindings: function MatChipList_HostBindings(rf, ctx) { if (rf & 1) {\n        ɵngcc0.ɵɵlistener(\"focus\", function MatChipList_focus_HostBindingHandler() { return ctx.focus(); })(\"blur\", function MatChipList_blur_HostBindingHandler() { return ctx._blur(); })(\"keydown\", function MatChipList_keydown_HostBindingHandler($event) { return ctx._keydown($event); });\n    } if (rf & 2) {\n        ɵngcc0.ɵɵhostProperty(\"id\", ctx._uid);\n        ɵngcc0.ɵɵattribute(\"tabindex\", ctx.disabled ? null : ctx._tabIndex)(\"aria-describedby\", ctx._ariaDescribedby || null)(\"aria-required\", ctx.role ? ctx.required : null)(\"aria-disabled\", ctx.disabled.toString())(\"aria-invalid\", ctx.errorState)(\"aria-multiselectable\", ctx.multiple)(\"role\", ctx.role)(\"aria-orientation\", ctx.ariaOrientation);\n        ɵngcc0.ɵɵclassProp(\"mat-chip-list-disabled\", ctx.disabled)(\"mat-chip-list-invalid\", ctx.errorState)(\"mat-chip-list-required\", ctx.required);\n    } }, inputs: { ariaOrientation: [\"aria-orientation\", \"ariaOrientation\"], multiple: \"multiple\", compareWith: \"compareWith\", value: \"value\", required: \"required\", placeholder: \"placeholder\", disabled: \"disabled\", selectable: \"selectable\", tabIndex: \"tabIndex\", errorStateMatcher: \"errorStateMatcher\" }, outputs: { change: \"change\", valueChange: \"valueChange\" }, exportAs: [\"matChipList\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: MatFormFieldControl, useExisting: MatChipList }]), ɵngcc0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [[1, \"mat-chip-list-wrapper\"]], template: function MatChipList_Template(rf, ctx) { if (rf & 1) {\n        ɵngcc0.ɵɵprojectionDef();\n        ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n        ɵngcc0.ɵɵprojection(1);\n        ɵngcc0.ɵɵelementEnd();\n    } }, styles: [\".mat-chip{position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;transform:translateZ(0);border:none;-webkit-appearance:none;-moz-appearance:none}.mat-standard-chip{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:inline-flex;padding:7px 12px;border-radius:16px;align-items:center;cursor:default;min-height:32px;height:1px}._mat-animation-noopable.mat-standard-chip{transition:none;animation:none}.mat-standard-chip .mat-chip-remove.mat-icon{width:18px;height:18px}.mat-standard-chip::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;opacity:0;content:\\\"\\\";pointer-events:none;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-standard-chip:hover::after{opacity:.12}.mat-standard-chip:focus{outline:none}.mat-standard-chip:focus::after{opacity:.16}.cdk-high-contrast-active .mat-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-standard-chip:focus{outline:dotted 2px}.mat-standard-chip.mat-chip-disabled::after{opacity:0}.mat-standard-chip.mat-chip-disabled .mat-chip-remove,.mat-standard-chip.mat-chip-disabled .mat-chip-trailing-icon{cursor:default}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar,.mat-standard-chip.mat-chip-with-avatar{padding-top:0;padding-bottom:0}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-right:8px;padding-left:0}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-left:8px;padding-right:0}.mat-standard-chip.mat-chip-with-trailing-icon{padding-top:7px;padding-bottom:7px;padding-right:8px;padding-left:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon{padding-left:8px;padding-right:12px}.mat-standard-chip.mat-chip-with-avatar{padding-left:0;padding-right:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-avatar{padding-right:0;padding-left:12px}.mat-standard-chip .mat-chip-avatar{width:24px;height:24px;margin-right:8px;margin-left:4px}[dir=rtl] .mat-standard-chip .mat-chip-avatar{margin-left:8px;margin-right:4px}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{width:18px;height:18px;cursor:pointer}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-standard-chip .mat-chip-remove,[dir=rtl] .mat-standard-chip .mat-chip-trailing-icon{margin-right:8px;margin-left:0}.mat-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit;overflow:hidden}.mat-chip-list-wrapper{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;margin:-4px}.mat-chip-list-wrapper input.mat-input-element,.mat-chip-list-wrapper .mat-standard-chip{margin:4px}.mat-chip-list-stacked .mat-chip-list-wrapper{flex-direction:column;align-items:flex-start}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-standard-chip{width:100%}.mat-chip-avatar{border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden;object-fit:cover}input.mat-chip-input{width:150px;margin:4px;flex:1 0 150px}\\n\"], encapsulation: 2, changeDetection: 0 });\nMatChipList.ctorParameters = () => [\n    { type: ElementRef },\n    { type: ChangeDetectorRef },\n    { type: Directionality, decorators: [{ type: Optional }] },\n    { type: NgForm, decorators: [{ type: Optional }] },\n    { type: FormGroupDirective, decorators: [{ type: Optional }] },\n    { type: ErrorStateMatcher },\n    { type: NgControl, decorators: [{ type: Optional }, { type: Self }] }\n];\nMatChipList.propDecorators = {\n    errorStateMatcher: [{ type: Input }],\n    multiple: [{ type: Input }],\n    compareWith: [{ type: Input }],\n    value: [{ type: Input }],\n    required: [{ type: Input }],\n    placeholder: [{ type: Input }],\n    disabled: [{ type: Input }],\n    ariaOrientation: [{ type: Input, args: ['aria-orientation',] }],\n    selectable: [{ type: Input }],\n    tabIndex: [{ type: Input }],\n    change: [{ type: Output }],\n    valueChange: [{ type: Output }],\n    chips: [{ type: ContentChildren, args: [MatChip, {\n                    // We need to use `descendants: true`, because Ivy will no longer match\n                    // indirect descendants if it's left as false.\n                    descendants: true\n                },] }]\n};\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(MatChipList, [{\n        type: Component,\n        args: [{\n                selector: 'mat-chip-list',\n                template: `<div class=\"mat-chip-list-wrapper\"><ng-content></ng-content></div>`,\n                exportAs: 'matChipList',\n                host: {\n                    '[attr.tabindex]': 'disabled ? null : _tabIndex',\n                    '[attr.aria-describedby]': '_ariaDescribedby || null',\n                    '[attr.aria-required]': 'role ? required : null',\n                    '[attr.aria-disabled]': 'disabled.toString()',\n                    '[attr.aria-invalid]': 'errorState',\n                    '[attr.aria-multiselectable]': 'multiple',\n                    '[attr.role]': 'role',\n                    '[class.mat-chip-list-disabled]': 'disabled',\n                    '[class.mat-chip-list-invalid]': 'errorState',\n                    '[class.mat-chip-list-required]': 'required',\n                    '[attr.aria-orientation]': 'ariaOrientation',\n                    'class': 'mat-chip-list',\n                    '(focus)': 'focus()',\n                    '(blur)': '_blur()',\n                    '(keydown)': '_keydown($event)',\n                    '[id]': '_uid'\n                },\n                providers: [{ provide: MatFormFieldControl, useExisting: MatChipList }],\n                encapsulation: ViewEncapsulation.None,\n                changeDetection: ChangeDetectionStrategy.OnPush,\n                styles: [\".mat-chip{position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;transform:translateZ(0);border:none;-webkit-appearance:none;-moz-appearance:none}.mat-standard-chip{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:inline-flex;padding:7px 12px;border-radius:16px;align-items:center;cursor:default;min-height:32px;height:1px}._mat-animation-noopable.mat-standard-chip{transition:none;animation:none}.mat-standard-chip .mat-chip-remove.mat-icon{width:18px;height:18px}.mat-standard-chip::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;opacity:0;content:\\\"\\\";pointer-events:none;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-standard-chip:hover::after{opacity:.12}.mat-standard-chip:focus{outline:none}.mat-standard-chip:focus::after{opacity:.16}.cdk-high-contrast-active .mat-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-standard-chip:focus{outline:dotted 2px}.mat-standard-chip.mat-chip-disabled::after{opacity:0}.mat-standard-chip.mat-chip-disabled .mat-chip-remove,.mat-standard-chip.mat-chip-disabled .mat-chip-trailing-icon{cursor:default}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar,.mat-standard-chip.mat-chip-with-avatar{padding-top:0;padding-bottom:0}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-right:8px;padding-left:0}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-left:8px;padding-right:0}.mat-standard-chip.mat-chip-with-trailing-icon{padding-top:7px;padding-bottom:7px;padding-right:8px;padding-left:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon{padding-left:8px;padding-right:12px}.mat-standard-chip.mat-chip-with-avatar{padding-left:0;padding-right:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-avatar{padding-right:0;padding-left:12px}.mat-standard-chip .mat-chip-avatar{width:24px;height:24px;margin-right:8px;margin-left:4px}[dir=rtl] .mat-standard-chip .mat-chip-avatar{margin-left:8px;margin-right:4px}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{width:18px;height:18px;cursor:pointer}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-standard-chip .mat-chip-remove,[dir=rtl] .mat-standard-chip .mat-chip-trailing-icon{margin-right:8px;margin-left:0}.mat-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit;overflow:hidden}.mat-chip-list-wrapper{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;margin:-4px}.mat-chip-list-wrapper input.mat-input-element,.mat-chip-list-wrapper .mat-standard-chip{margin:4px}.mat-chip-list-stacked .mat-chip-list-wrapper{flex-direction:column;align-items:flex-start}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-standard-chip{width:100%}.mat-chip-avatar{border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden;object-fit:cover}input.mat-chip-input{width:150px;margin:4px;flex:1 0 150px}\\n\"]\n            }]\n    }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc2.Directionality, decorators: [{\n                type: Optional\n            }] }, { type: ɵngcc3.NgForm, decorators: [{\n                type: Optional\n            }] }, { type: ɵngcc3.FormGroupDirective, decorators: [{\n                type: Optional\n            }] }, { type: ɵngcc4.ErrorStateMatcher }, { type: ɵngcc3.NgControl, decorators: [{\n                type: Optional\n            }, {\n                type: Self\n            }] }]; }, { ariaOrientation: [{\n            type: Input,\n            args: ['aria-orientation']\n        }], change: [{\n            type: Output\n        }], valueChange: [{\n            type: Output\n        }], multiple: [{\n            type: Input\n        }], compareWith: [{\n            type: Input\n        }], value: [{\n            type: Input\n        }], required: [{\n            type: Input\n        }], placeholder: [{\n            type: Input\n        }], disabled: [{\n            type: Input\n        }], selectable: [{\n            type: Input\n        }], tabIndex: [{\n            type: Input\n        }], errorStateMatcher: [{\n            type: Input\n        }], chips: [{\n            type: ContentChildren,\n            args: [MatChip, {\n                    // We need to use `descendants: true`, because Ivy will no longer match\n                    // indirect descendants if it's left as false.\n                    descendants: true\n                }]\n        }] }); })();\n\n/**\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 */\n// Increasing integer for generating unique ids.\nlet nextUniqueId$1 = 0;\n/**\n * Directive that adds chip-specific behaviors to an input element inside `<mat-form-field>`.\n * May be placed inside or outside of an `<mat-chip-list>`.\n */\nclass MatChipInput {\n    constructor(_elementRef, _defaultOptions) {\n        this._elementRef = _elementRef;\n        this._defaultOptions = _defaultOptions;\n        /** Whether the control is focused. */\n        this.focused = false;\n        this._addOnBlur = false;\n        /**\n         * The list of key codes that will trigger a chipEnd event.\n         *\n         * Defaults to `[ENTER]`.\n         */\n        this.separatorKeyCodes = this._defaultOptions.separatorKeyCodes;\n        /** Emitted when a chip is to be added. */\n        this.chipEnd = new EventEmitter();\n        /** The input's placeholder text. */\n        this.placeholder = '';\n        /** Unique id for the input. */\n        this.id = `mat-chip-list-input-${nextUniqueId$1++}`;\n        this._disabled = false;\n        this._inputElement = this._elementRef.nativeElement;\n    }\n    /** Register input for chip list */\n    set chipList(value) {\n        if (value) {\n            this._chipList = value;\n            this._chipList.registerInput(this);\n        }\n    }\n    /**\n     * Whether or not the chipEnd event will be emitted when the input is blurred.\n     */\n    get addOnBlur() { return this._addOnBlur; }\n    set addOnBlur(value) { this._addOnBlur = coerceBooleanProperty(value); }\n    /** Whether the input is disabled. */\n    get disabled() { return this._disabled || (this._chipList && this._chipList.disabled); }\n    set disabled(value) { this._disabled = coerceBooleanProperty(value); }\n    /** Whether the input is empty. */\n    get empty() { return !this._inputElement.value; }\n    ngOnChanges() {\n        this._chipList.stateChanges.next();\n    }\n    /** Utility method to make host definition/tests more clear. */\n    _keydown(event) {\n        // Allow the user's focus to escape when they're tabbing forward. Note that we don't\n        // want to do this when going backwards, because focus should go back to the first chip.\n        if (event && event.keyCode === TAB && !hasModifierKey(event, 'shiftKey')) {\n            this._chipList._allowFocusEscape();\n        }\n        this._emitChipEnd(event);\n    }\n    /** Checks to see if the blur should emit the (chipEnd) event. */\n    _blur() {\n        if (this.addOnBlur) {\n            this._emitChipEnd();\n        }\n        this.focused = false;\n        // Blur the chip list if it is not focused\n        if (!this._chipList.focused) {\n            this._chipList._blur();\n        }\n        this._chipList.stateChanges.next();\n    }\n    _focus() {\n        this.focused = true;\n        this._chipList.stateChanges.next();\n    }\n    /** Checks to see if the (chipEnd) event needs to be emitted. */\n    _emitChipEnd(event) {\n        if (!this._inputElement.value && !!event) {\n            this._chipList._keydown(event);\n        }\n        if (!event || this._isSeparatorKey(event)) {\n            this.chipEnd.emit({ input: this._inputElement, value: this._inputElement.value });\n            if (event) {\n                event.preventDefault();\n            }\n        }\n    }\n    _onInput() {\n        // Let chip list know whenever the value changes.\n        this._chipList.stateChanges.next();\n    }\n    /** Focuses the input. */\n    focus(options) {\n        this._inputElement.focus(options);\n    }\n    /** Checks whether a keycode is one of the configured separators. */\n    _isSeparatorKey(event) {\n        return !hasModifierKey(event) && new Set(this.separatorKeyCodes).has(event.keyCode);\n    }\n}\nMatChipInput.ɵfac = function MatChipInput_Factory(t) { return new (t || MatChipInput)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(MAT_CHIPS_DEFAULT_OPTIONS)); };\nMatChipInput.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: MatChipInput, selectors: [[\"input\", \"matChipInputFor\", \"\"]], hostAttrs: [1, \"mat-chip-input\", \"mat-input-element\"], hostVars: 5, hostBindings: function MatChipInput_HostBindings(rf, ctx) { if (rf & 1) {\n        ɵngcc0.ɵɵlistener(\"keydown\", function MatChipInput_keydown_HostBindingHandler($event) { return ctx._keydown($event); })(\"blur\", function MatChipInput_blur_HostBindingHandler() { return ctx._blur(); })(\"focus\", function MatChipInput_focus_HostBindingHandler() { return ctx._focus(); })(\"input\", function MatChipInput_input_HostBindingHandler() { return ctx._onInput(); });\n    } if (rf & 2) {\n        ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n        ɵngcc0.ɵɵattribute(\"disabled\", ctx.disabled || null)(\"placeholder\", ctx.placeholder || null)(\"aria-invalid\", ctx._chipList && ctx._chipList.ngControl ? ctx._chipList.ngControl.invalid : null)(\"aria-required\", ctx._chipList && ctx._chipList.required || null);\n    } }, inputs: { separatorKeyCodes: [\"matChipInputSeparatorKeyCodes\", \"separatorKeyCodes\"], placeholder: \"placeholder\", id: \"id\", chipList: [\"matChipInputFor\", \"chipList\"], addOnBlur: [\"matChipInputAddOnBlur\", \"addOnBlur\"], disabled: \"disabled\" }, outputs: { chipEnd: \"matChipInputTokenEnd\" }, exportAs: [\"matChipInput\", \"matChipInputFor\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nMatChipInput.ctorParameters = () => [\n    { type: ElementRef },\n    { type: undefined, decorators: [{ type: Inject, args: [MAT_CHIPS_DEFAULT_OPTIONS,] }] }\n];\nMatChipInput.propDecorators = {\n    chipList: [{ type: Input, args: ['matChipInputFor',] }],\n    addOnBlur: [{ type: Input, args: ['matChipInputAddOnBlur',] }],\n    separatorKeyCodes: [{ type: Input, args: ['matChipInputSeparatorKeyCodes',] }],\n    chipEnd: [{ type: Output, args: ['matChipInputTokenEnd',] }],\n    placeholder: [{ type: Input }],\n    id: [{ type: Input }],\n    disabled: [{ type: Input }]\n};\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(MatChipInput, [{\n        type: Directive,\n        args: [{\n                selector: 'input[matChipInputFor]',\n                exportAs: 'matChipInput, matChipInputFor',\n                host: {\n                    'class': 'mat-chip-input mat-input-element',\n                    '(keydown)': '_keydown($event)',\n                    '(blur)': '_blur()',\n                    '(focus)': '_focus()',\n                    '(input)': '_onInput()',\n                    '[id]': 'id',\n                    '[attr.disabled]': 'disabled || null',\n                    '[attr.placeholder]': 'placeholder || null',\n                    '[attr.aria-invalid]': '_chipList && _chipList.ngControl ? _chipList.ngControl.invalid : null',\n                    '[attr.aria-required]': '_chipList && _chipList.required || null'\n                }\n            }]\n    }], function () { return [{ type: ɵngcc0.ElementRef }, { type: undefined, decorators: [{\n                type: Inject,\n                args: [MAT_CHIPS_DEFAULT_OPTIONS]\n            }] }]; }, { separatorKeyCodes: [{\n            type: Input,\n            args: ['matChipInputSeparatorKeyCodes']\n        }], chipEnd: [{\n            type: Output,\n            args: ['matChipInputTokenEnd']\n        }], placeholder: [{\n            type: Input\n        }], id: [{\n            type: Input\n        }], chipList: [{\n            type: Input,\n            args: ['matChipInputFor']\n        }], addOnBlur: [{\n            type: Input,\n            args: ['matChipInputAddOnBlur']\n        }], disabled: [{\n            type: Input\n        }] }); })();\n\n/**\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 */\nconst CHIP_DECLARATIONS = [\n    MatChipList,\n    MatChip,\n    MatChipInput,\n    MatChipRemove,\n    MatChipAvatar,\n    MatChipTrailingIcon,\n];\nconst ɵ0 = {\n    separatorKeyCodes: [ENTER]\n};\nclass MatChipsModule {\n}\nMatChipsModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: MatChipsModule });\nMatChipsModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function MatChipsModule_Factory(t) { return new (t || MatChipsModule)(); }, providers: [\n        ErrorStateMatcher,\n        {\n            provide: MAT_CHIPS_DEFAULT_OPTIONS,\n            useValue: ɵ0\n        }\n    ] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatChipsModule, { declarations: [MatChipList, MatChip, MatChipInput, MatChipRemove, MatChipAvatar, MatChipTrailingIcon], exports: [MatChipList, MatChip, MatChipInput, MatChipRemove, MatChipAvatar, MatChipTrailingIcon] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(MatChipsModule, [{\n        type: NgModule,\n        args: [{\n                exports: CHIP_DECLARATIONS,\n                declarations: CHIP_DECLARATIONS,\n                providers: [\n                    ErrorStateMatcher,\n                    {\n                        provide: MAT_CHIPS_DEFAULT_OPTIONS,\n                        useValue: ɵ0\n                    }\n                ]\n            }]\n    }], null, null); })();\n\n/**\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 */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_CHIPS_DEFAULT_OPTIONS, MAT_CHIP_AVATAR, MAT_CHIP_REMOVE, MAT_CHIP_TRAILING_ICON, MatChip, MatChipAvatar, MatChipInput, MatChipList, MatChipListChange, MatChipRemove, MatChipSelectionChange, MatChipTrailingIcon, MatChipsModule, ɵ0 };\n\n//# sourceMappingURL=chips.js.map"],"sourceRoot":"webpack:///"}