{"version":3,"file":"chips.es5.js","sources":["../../packages/material/esm5/chips/chip.js","../../packages/material/esm5/chips/chip-list.js","../../packages/material/esm5/chips/chip-input.js","../../packages/material/esm5/chips/chips-module.js","../../packages/material/esm5/chips/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. 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 * as tslib_1 from \"tslib\";\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { BACKSPACE, DELETE, SPACE } from '@angular/cdk/keycodes';\nimport { Directive, ElementRef, EventEmitter, Input, Output, Renderer2, } from '@angular/core';\nimport { mixinColor, mixinDisabled } from '@angular/material/core';\nimport { Subject } from 'rxjs/Subject';\n/**\n * Event object emitted by MatChip when selected or deselected.\n */\nvar MatChipSelectionChange = (function () {\n /**\n * @param {?} source\n * @param {?} selected\n * @param {?=} isUserInput\n */\n function MatChipSelectionChange(source, selected, isUserInput) {\n if (isUserInput === void 0) { isUserInput = false; }\n this.source = source;\n this.selected = selected;\n this.isUserInput = isUserInput;\n }\n return MatChipSelectionChange;\n}());\nexport { MatChipSelectionChange };\nfunction MatChipSelectionChange_tsickle_Closure_declarations() {\n /** @type {?} */\n MatChipSelectionChange.prototype.source;\n /** @type {?} */\n MatChipSelectionChange.prototype.selected;\n /** @type {?} */\n MatChipSelectionChange.prototype.isUserInput;\n}\n/**\n * \\@docs-private\n */\nvar MatChipBase = (function () {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\n function MatChipBase(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n }\n return MatChipBase;\n}());\nexport { MatChipBase };\nfunction MatChipBase_tsickle_Closure_declarations() {\n /** @type {?} */\n MatChipBase.prototype._renderer;\n /** @type {?} */\n MatChipBase.prototype._elementRef;\n}\nexport var /** @type {?} */ _MatChipMixinBase = mixinColor(mixinDisabled(MatChipBase), 'primary');\n/**\n * Dummy directive to add CSS class to basic chips.\n * \\@docs-private\n */\nvar MatBasicChip = (function () {\n function MatBasicChip() {\n }\n MatBasicChip.decorators = [\n { type: Directive, args: [{\n selector: \"mat-basic-chip, [mat-basic-chip]\",\n host: { 'class': 'mat-basic-chip' },\n },] },\n ];\n /**\n * @nocollapse\n */\n MatBasicChip.ctorParameters = function () { return []; };\n return MatBasicChip;\n}());\nexport { MatBasicChip };\nfunction MatBasicChip_tsickle_Closure_declarations() {\n /** @type {?} */\n MatBasicChip.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatBasicChip.ctorParameters;\n}\n/**\n * Material design styled Chip component. Used inside the MatChipList component.\n */\nvar MatChip = (function (_super) {\n tslib_1.__extends(MatChip, _super);\n /**\n * @param {?} renderer\n * @param {?} _elementRef\n */\n function MatChip(renderer, _elementRef) {\n var _this = _super.call(this, renderer, _elementRef) || this;\n _this._elementRef = _elementRef;\n _this._selected = false;\n _this._selectable = true;\n _this._removable = true;\n /**\n * Whether the chip has focus.\n */\n _this._hasFocus = false;\n /**\n * Emits when the chip is focused.\n */\n _this._onFocus = new Subject();\n /**\n * Emits when the chip is blured.\n */\n _this._onBlur = new Subject();\n /**\n * Emitted when the chip is selected or deselected.\n */\n _this.selectionChange = new EventEmitter();\n /**\n * Emitted when the chip is destroyed.\n */\n _this.destroyed = new EventEmitter();\n /**\n * Emitted when the chip is destroyed.\n * @deprecated Use 'destroyed' instead.\n */\n _this.destroy = _this.destroyed;\n /**\n * Emitted when a chip is to be removed.\n */\n _this.removed = new EventEmitter();\n /**\n * Emitted when a chip is to be removed.\n * @deprecated Use `removed` instead.\n */\n _this.onRemove = _this.removed;\n return _this;\n }\n Object.defineProperty(MatChip.prototype, \"selected\", {\n /**\n * Whether the chip is selected.\n * @return {?}\n */\n get: function () {\n return this._selected;\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._selected = coerceBooleanProperty(value);\n this.selectionChange.emit({\n source: this,\n isUserInput: false,\n selected: value\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChip.prototype, \"value\", {\n /**\n * The value of the chip. Defaults to the content inside tags.\n * @return {?}\n */\n get: function () {\n return this._value != undefined\n ? this._value\n : this._elementRef.nativeElement.textContent;\n },\n /**\n * @param {?} newValue\n * @return {?}\n */\n set: function (newValue) {\n this._value = newValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChip.prototype, \"selectable\", {\n /**\n * Whether or not the chips are selectable. When a chip is not selectable,\n * changes to it's selected state are always ignored.\n * @return {?}\n */\n get: function () {\n return this._selectable;\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._selectable = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChip.prototype, \"removable\", {\n /**\n * Determines whether or not the chip displays the remove styling and emits (remove) events.\n * @return {?}\n */\n get: function () {\n return this._removable;\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._removable = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChip.prototype, \"ariaSelected\", {\n /**\n * @return {?}\n */\n get: function () {\n return this.selectable ? this.selected.toString() : null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatChip.prototype.ngOnDestroy = function () {\n this.destroyed.emit({ chip: this });\n };\n /**\n * Selects the chip.\n * @return {?}\n */\n MatChip.prototype.select = function () {\n this._selected = true;\n this.selectionChange.emit({\n source: this,\n isUserInput: false,\n selected: true\n });\n };\n /**\n * Deselects the chip.\n * @return {?}\n */\n MatChip.prototype.deselect = function () {\n this._selected = false;\n this.selectionChange.emit({\n source: this,\n isUserInput: false,\n selected: false\n });\n };\n /**\n * Select this chip and emit selected event\n * @return {?}\n */\n MatChip.prototype.selectViaInteraction = function () {\n this._selected = true;\n // Emit select event when selected changes.\n this.selectionChange.emit({\n source: this,\n isUserInput: true,\n selected: true\n });\n };\n /**\n * Toggles the current selected state of this chip.\n * @param {?=} isUserInput\n * @return {?}\n */\n MatChip.prototype.toggleSelected = function (isUserInput) {\n if (isUserInput === void 0) { isUserInput = false; }\n this._selected = !this.selected;\n this.selectionChange.emit({\n source: this,\n isUserInput: isUserInput,\n selected: this._selected\n });\n return this.selected;\n };\n /**\n * Allows for programmatic focusing of the chip.\n * @return {?}\n */\n MatChip.prototype.focus = function () {\n this._elementRef.nativeElement.focus();\n this._onFocus.next({ chip: this });\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 * @return {?}\n */\n MatChip.prototype.remove = function () {\n if (this.removable) {\n this.removed.emit({ chip: this });\n }\n };\n /**\n * Ensures events fire properly upon click.\n * @param {?} event\n * @return {?}\n */\n MatChip.prototype._handleClick = function (event) {\n // Check disabled\n if (this.disabled) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.focus();\n };\n /**\n * Handle custom key presses.\n * @param {?} event\n * @return {?}\n */\n MatChip.prototype._handleKeydown = function (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 /**\n * @return {?}\n */\n MatChip.prototype._blur = function () {\n this._hasFocus = false;\n this._onBlur.next({ chip: this });\n };\n MatChip.decorators = [\n { type: Directive, args: [{\n selector: \"mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]\",\n inputs: ['color', 'disabled'],\n exportAs: 'matChip',\n host: {\n 'class': 'mat-chip',\n 'tabindex': '-1',\n 'role': 'option',\n '[class.mat-chip-selected]': 'selected',\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)': '_hasFocus = true',\n '(blur)': '_blur()',\n },\n },] },\n ];\n /**\n * @nocollapse\n */\n MatChip.ctorParameters = function () { return [\n { type: Renderer2, },\n { type: ElementRef, },\n ]; };\n MatChip.propDecorators = {\n 'selected': [{ type: Input },],\n 'value': [{ type: Input },],\n 'selectable': [{ type: Input },],\n 'removable': [{ type: Input },],\n 'selectionChange': [{ type: Output },],\n 'destroyed': [{ type: Output },],\n 'destroy': [{ type: Output },],\n 'removed': [{ type: Output },],\n 'onRemove': [{ type: Output, args: ['remove',] },],\n };\n return MatChip;\n}(_MatChipMixinBase));\nexport { MatChip };\nfunction MatChip_tsickle_Closure_declarations() {\n /** @type {?} */\n MatChip.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatChip.ctorParameters;\n /** @type {?} */\n MatChip.propDecorators;\n /** @type {?} */\n MatChip.prototype._value;\n /** @type {?} */\n MatChip.prototype._selected;\n /** @type {?} */\n MatChip.prototype._selectable;\n /** @type {?} */\n MatChip.prototype._removable;\n /**\n * Whether the chip has focus.\n * @type {?}\n */\n MatChip.prototype._hasFocus;\n /**\n * Emits when the chip is focused.\n * @type {?}\n */\n MatChip.prototype._onFocus;\n /**\n * Emits when the chip is blured.\n * @type {?}\n */\n MatChip.prototype._onBlur;\n /**\n * Emitted when the chip is selected or deselected.\n * @type {?}\n */\n MatChip.prototype.selectionChange;\n /**\n * Emitted when the chip is destroyed.\n * @type {?}\n */\n MatChip.prototype.destroyed;\n /**\n * Emitted when the chip is destroyed.\n * @deprecated Use 'destroyed' instead.\n * @type {?}\n */\n MatChip.prototype.destroy;\n /**\n * Emitted when a chip is to be removed.\n * @type {?}\n */\n MatChip.prototype.removed;\n /**\n * Emitted when a chip is to be removed.\n * @deprecated Use `removed` instead.\n * @type {?}\n */\n MatChip.prototype.onRemove;\n /** @type {?} */\n MatChip.prototype._elementRef;\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 * \n * cancel\n * \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 */\nvar MatChipRemove = (function () {\n /**\n * @param {?} _parentChip\n */\n function MatChipRemove(_parentChip) {\n this._parentChip = _parentChip;\n }\n /**\n * Calls the parent chip's public `remove()` method if applicable.\n * @return {?}\n */\n MatChipRemove.prototype._handleClick = function () {\n if (this._parentChip.removable) {\n this._parentChip.remove();\n }\n };\n MatChipRemove.decorators = [\n { type: Directive, args: [{\n selector: '[matChipRemove]',\n host: {\n 'class': 'mat-chip-remove',\n '(click)': '_handleClick($event)',\n },\n },] },\n ];\n /**\n * @nocollapse\n */\n MatChipRemove.ctorParameters = function () { return [\n { type: MatChip, },\n ]; };\n return MatChipRemove;\n}());\nexport { MatChipRemove };\nfunction MatChipRemove_tsickle_Closure_declarations() {\n /** @type {?} */\n MatChipRemove.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatChipRemove.ctorParameters;\n /** @type {?} */\n MatChipRemove.prototype._parentChip;\n}\n//# sourceMappingURL=chip.js.map","/**\n * @license\n * Copyright Google Inc. 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 { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { BACKSPACE, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { startWith } from '@angular/cdk/rxjs';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, Optional, Output, Renderer2, Self, ViewEncapsulation, } from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { merge } from 'rxjs/observable/merge';\nimport { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { MatChip } from './chip';\n// Increasing integer for generating unique ids for chip-list components.\nvar /** @type {?} */ nextUniqueId = 0;\n/**\n * Change event object that is emitted when the chip list value has changed.\n */\nvar MatChipListChange = (function () {\n /**\n * @param {?} source\n * @param {?} value\n */\n function MatChipListChange(source, value) {\n this.source = source;\n this.value = value;\n }\n return MatChipListChange;\n}());\nexport { MatChipListChange };\nfunction MatChipListChange_tsickle_Closure_declarations() {\n /** @type {?} */\n MatChipListChange.prototype.source;\n /** @type {?} */\n MatChipListChange.prototype.value;\n}\n/**\n * A material design chips component (named ChipList for it's similarity to the List component).\n */\nvar MatChipList = (function () {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n * @param {?} _changeDetectorRef\n * @param {?} _dir\n * @param {?} _parentForm\n * @param {?} _parentFormGroup\n * @param {?} ngControl\n */\n function MatChipList(_renderer, _elementRef, _changeDetectorRef, _dir, _parentForm, _parentFormGroup, ngControl) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._dir = _dir;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this.ngControl = ngControl;\n this.controlType = 'mat-chip-list';\n /**\n * Stream that emits whenever the state of the input changes such that the wrapping `MatFormField`\n * needs to run change detection.\n */\n this.stateChanges = new Subject();\n /**\n * When a chip is destroyed, we track the index so we can focus the appropriate next chip.\n */\n this._lastDestroyedIndex = null;\n /**\n * Track which chips we're listening to for focus/destruction.\n */\n this._chipSet = new WeakMap();\n /**\n * Subscription to tabbing out from the chip list.\n */\n this._tabOutSubscription = Subscription.EMPTY;\n /**\n * Whether or not the chip is selectable.\n */\n this._selectable = true;\n /**\n * Whether the component is in multiple selection mode.\n */\n this._multiple = false;\n /**\n * Uid of the chip list\n */\n this._uid = \"mat-chip-list-\" + nextUniqueId++;\n /**\n * Whether this is required\n */\n this._required = false;\n /**\n * Whether this is disabled\n */\n this._disabled = false;\n /**\n * Tab index for the chip list.\n */\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 /**\n * Function when touched\n */\n this._onTouched = function () { };\n /**\n * Function when changed\n */\n this._onChange = function () { };\n /**\n * Comparison function to specify which option is displayed. Defaults to object equality.\n */\n this._compareWith = function (o1, o2) { return o1 === o2; };\n /**\n * Orientation of the chip list.\n */\n this.ariaOrientation = 'horizontal';\n /**\n * Event emitted when the selected chip list value has been changed by the user.\n */\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 Object.defineProperty(MatChipList.prototype, \"selected\", {\n /**\n * The array of selected chips inside chip list.\n * @return {?}\n */\n get: function () {\n return this.multiple ? this._selectionModel.selected : this._selectionModel.selected[0];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"multiple\", {\n /**\n * Whether the user should be allowed to select multiple chips.\n * @return {?}\n */\n get: function () { return this._multiple; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._multiple = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"compareWith\", {\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 * @return {?}\n */\n get: function () { return this._compareWith; },\n /**\n * @param {?} fn\n * @return {?}\n */\n set: function (fn) {\n this._compareWith = fn;\n if (this._selectionModel) {\n // A different comparator means the selection could change.\n this._initializeSelection();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"value\", {\n /**\n * Required for FormFieldControl\n * @return {?}\n */\n get: function () { return this._value; },\n /**\n * @param {?} newValue\n * @return {?}\n */\n set: function (newValue) {\n this.writeValue(newValue);\n this._value = newValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"id\", {\n /**\n * @return {?}\n */\n get: function () { return this._id || this._uid; },\n /**\n * Required for FormFieldControl. The ID of the chip list\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._id = value;\n this.stateChanges.next();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"required\", {\n /**\n * @return {?}\n */\n get: function () {\n return this._required;\n },\n /**\n * Required for FormFieldControl. Whether the chip list is required.\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"placeholder\", {\n /**\n * @return {?}\n */\n get: function () {\n return this._chipInput ? this._chipInput.placeholder : this._placeholder;\n },\n /**\n * For FormFieldControl. Use chip input's placholder if there's a chip input\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._placeholder = value;\n this.stateChanges.next();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"focused\", {\n /**\n * Whether any chips or the matChipInput inside of this chip-list has focus.\n * @return {?}\n */\n get: function () {\n return this.chips.some(function (chip) { return chip._hasFocus; }) ||\n (this._chipInput && this._chipInput.focused);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"empty\", {\n /**\n * Whether this chip-list contains no chips and no matChipInput.\n * @return {?}\n */\n get: function () {\n return (!this._chipInput || this._chipInput.empty) && this.chips.length === 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"shouldPlaceholderFloat\", {\n /**\n * @return {?}\n */\n get: function () {\n return this.empty;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"disabled\", {\n /**\n * Whether this chip-list is disabled.\n * @return {?}\n */\n get: function () { return this.ngControl ? this.ngControl.disabled : this._disabled; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._disabled = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"errorState\", {\n /**\n * Whether the chip list is in an error state.\n * @return {?}\n */\n get: function () {\n var /** @type {?} */ isInvalid = this.ngControl && this.ngControl.invalid;\n var /** @type {?} */ isTouched = this.ngControl && this.ngControl.touched;\n var /** @type {?} */ isSubmitted = (this._parentFormGroup && this._parentFormGroup.submitted) ||\n (this._parentForm && this._parentForm.submitted);\n return !!(isInvalid && (isTouched || isSubmitted));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"selectable\", {\n /**\n * Whether or not this chip is selectable. When a chip is not selectable,\n * its selected state is always ignored.\n * @return {?}\n */\n get: function () { return this._selectable; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._selectable = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"tabIndex\", {\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._userTabIndex = value;\n this._tabIndex = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"chipSelectionChanges\", {\n /**\n * Combined stream of all of the child chips' selection change events.\n * @return {?}\n */\n get: function () {\n return merge.apply(void 0, this.chips.map(function (chip) { return chip.selectionChange; }));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"chipFocusChanges\", {\n /**\n * Combined stream of all of the child chips' focus change events.\n * @return {?}\n */\n get: function () {\n return merge.apply(void 0, this.chips.map(function (chip) { return chip._onFocus; }));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"chipBlurChanges\", {\n /**\n * Combined stream of all of the child chips' blur change events.\n * @return {?}\n */\n get: function () {\n return merge.apply(void 0, this.chips.map(function (chip) { return chip._onBlur; }));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipList.prototype, \"chipRemoveChanges\", {\n /**\n * Combined stream of all of the child chips' remove change events.\n * @return {?}\n */\n get: function () {\n return merge.apply(void 0, this.chips.map(function (chip) { return chip.destroy; }));\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatChipList.prototype.ngAfterContentInit = function () {\n var _this = this;\n this._keyManager = new FocusKeyManager(this.chips).withWrap();\n // Prevents the chip list from capturing focus and redirecting\n // it back to the first chip when the user tabs out.\n this._tabOutSubscription = this._keyManager.tabOut.subscribe(function () {\n _this._tabIndex = -1;\n setTimeout(function () { return _this._tabIndex = _this._userTabIndex || 0; });\n });\n // When the list changes, re-subscribe\n this._changeSubscription = startWith.call(this.chips.changes, null).subscribe(function () {\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 });\n };\n /**\n * @return {?}\n */\n MatChipList.prototype.ngOnInit = function () {\n this._selectionModel = new SelectionModel(this.multiple, undefined, false);\n this.stateChanges.next();\n };\n /**\n * @return {?}\n */\n MatChipList.prototype.ngOnDestroy = function () {\n this._tabOutSubscription.unsubscribe();\n if (this._changeSubscription) {\n this._changeSubscription.unsubscribe();\n }\n this._dropSubscriptions();\n };\n /**\n * Associates an HTML input element with this chip list.\n * @param {?} inputElement\n * @return {?}\n */\n MatChipList.prototype.registerInput = function (inputElement) {\n this._chipInput = inputElement;\n };\n /**\n * @param {?} ids\n * @return {?}\n */\n MatChipList.prototype.setDescribedByIds = function (ids) { this._ariaDescribedby = ids.join(' '); };\n /**\n * @param {?} value\n * @return {?}\n */\n MatChipList.prototype.writeValue = function (value) {\n if (this.chips) {\n this._setSelectionByValue(value, false);\n }\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n MatChipList.prototype.registerOnChange = function (fn) {\n this._onChange = fn;\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n MatChipList.prototype.registerOnTouched = function (fn) {\n this._onTouched = fn;\n };\n /**\n * @param {?} disabled\n * @return {?}\n */\n MatChipList.prototype.setDisabledState = function (disabled) {\n this.disabled = disabled;\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', disabled);\n this.stateChanges.next();\n };\n /**\n * @return {?}\n */\n MatChipList.prototype.onContainerClick = function () {\n this.focus();\n };\n /**\n * Focuses the the first non-disabled chip in this chip list, or the associated input when there\n * are no eligible chips.\n * @return {?}\n */\n MatChipList.prototype.focus = function () {\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();\n this.stateChanges.next();\n }\n };\n /**\n * Attempt to focus an input if we have one.\n * @return {?}\n */\n MatChipList.prototype._focusInput = function () {\n if (this._chipInput) {\n this._chipInput.focus();\n }\n };\n /**\n * Pass events to the keyboard manager. Available here for tests.\n * @param {?} event\n * @return {?}\n */\n MatChipList.prototype._keydown = function (event) {\n var /** @type {?} */ code = event.keyCode;\n var /** @type {?} */ target = (event.target);\n var /** @type {?} */ isInputEmpty = this._isInputEmpty(target);\n var /** @type {?} */ isRtl = this._dir && this._dir.value == 'rtl';\n var /** @type {?} */ isPrevKey = (code === (isRtl ? RIGHT_ARROW : LEFT_ARROW));\n var /** @type {?} */ isNextKey = (code === (isRtl ? LEFT_ARROW : RIGHT_ARROW));\n var /** @type {?} */ isBackKey = code === BACKSPACE;\n // If they are on an empty input and hit backspace, focus the last chip\n if (isInputEmpty && isBackKey) {\n this._keyManager.setLastItemActive();\n event.preventDefault();\n return;\n }\n // If they are on a chip, check for space/left/right, otherwise pass to our key manager (like\n // up/down keys)\n if (target && target.classList.contains('mat-chip')) {\n if (isPrevKey) {\n this._keyManager.setPreviousItemActive();\n event.preventDefault();\n }\n else if (isNextKey) {\n this._keyManager.setNextItemActive();\n event.preventDefault();\n }\n else {\n this._keyManager.onKeydown(event);\n }\n }\n this.stateChanges.next();\n };\n /**\n * Check the tab index as you should not be allowed to focus an empty list.\n * @return {?}\n */\n MatChipList.prototype._updateTabIndex = function () {\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 * Update key manager's active item when chip is deleted.\n * If the deleted chip is the last chip in chip list, focus the new last chip.\n * Otherwise focus the next chip in the list.\n * Save `_lastDestroyedIndex` so we can set the correct focus.\n * @param {?} chip\n * @return {?}\n */\n MatChipList.prototype._updateKeyManager = function (chip) {\n var /** @type {?} */ chipIndex = this.chips.toArray().indexOf(chip);\n if (this._isValidIndex(chipIndex)) {\n if (chip._hasFocus) {\n // Check whether the chip is not the last item\n if (chipIndex < this.chips.length - 1) {\n this._keyManager.setActiveItem(chipIndex);\n }\n else if (chipIndex - 1 >= 0) {\n this._keyManager.setActiveItem(chipIndex - 1);\n }\n }\n if (this._keyManager.activeItemIndex === chipIndex) {\n this._lastDestroyedIndex = chipIndex;\n }\n }\n };\n /**\n * Checks to see if a focus chip was recently destroyed so that we can refocus the next closest\n * one.\n * @return {?}\n */\n MatChipList.prototype._updateFocusForDestroyedChips = function () {\n var /** @type {?} */ chipsArray = this.chips;\n if (this._lastDestroyedIndex != null && chipsArray.length > 0) {\n // Check whether the destroyed chip was the last item\n var /** @type {?} */ newFocusIndex = Math.min(this._lastDestroyedIndex, chipsArray.length - 1);\n this._keyManager.setActiveItem(newFocusIndex);\n var /** @type {?} */ focusChip = this._keyManager.activeItem;\n // Focus the chip\n if (focusChip) {\n focusChip.focus();\n }\n }\n // Reset our destroyed index\n this._lastDestroyedIndex = null;\n };\n /**\n * Utility to ensure all indexes are valid.\n *\n * @param {?} index The index to be checked.\n * @return {?} True if the index is valid for our list of chips.\n */\n MatChipList.prototype._isValidIndex = function (index) {\n return index >= 0 && index < this.chips.length;\n };\n /**\n * @param {?} element\n * @return {?}\n */\n MatChipList.prototype._isInputEmpty = function (element) {\n if (element && element.nodeName.toLowerCase() === 'input') {\n var /** @type {?} */ input = (element);\n return !input.value;\n }\n return false;\n };\n /**\n * @param {?} value\n * @param {?=} isUserInput\n * @return {?}\n */\n MatChipList.prototype._setSelectionByValue = function (value, isUserInput) {\n var _this = this;\n if (isUserInput === void 0) { isUserInput = true; }\n this._clearSelection();\n this.chips.forEach(function (chip) { return chip.deselect(); });\n if (Array.isArray(value)) {\n value.forEach(function (currentValue) { return _this._selectValue(currentValue, isUserInput); });\n this._sortValues();\n }\n else {\n var /** @type {?} */ 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 this._keyManager.setActiveItem(this.chips.toArray().indexOf(correspondingChip));\n }\n }\n };\n /**\n * Finds and selects the chip based on its value.\n * @param {?} value\n * @param {?=} isUserInput\n * @return {?} Chip that has the corresponding value.\n */\n MatChipList.prototype._selectValue = function (value, isUserInput) {\n var _this = this;\n if (isUserInput === void 0) { isUserInput = true; }\n var /** @type {?} */ correspondingChip = this.chips.find(function (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 /**\n * @return {?}\n */\n MatChipList.prototype._initializeSelection = function () {\n var _this = this;\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(function () {\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 * @return {?}\n */\n MatChipList.prototype._clearSelection = function (skip) {\n this._selectionModel.clear();\n this.chips.forEach(function (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 * @return {?}\n */\n MatChipList.prototype._sortValues = function () {\n var _this = this;\n if (this._multiple) {\n this._selectionModel.clear();\n this.chips.forEach(function (chip) {\n if (chip.selected) {\n _this._selectionModel.select(chip);\n }\n });\n this.stateChanges.next();\n }\n };\n /**\n * Emits change event to set the model value.\n * @param {?=} fallbackValue\n * @return {?}\n */\n MatChipList.prototype._propagateChanges = function (fallbackValue) {\n var /** @type {?} */ valueToEmit = null;\n if (Array.isArray(this.selected)) {\n valueToEmit = this.selected.map(function (chip) { return 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 /**\n * When blurred, mark the field as touched when focus moved outside the chip list.\n * @return {?}\n */\n MatChipList.prototype._blur = function () {\n var _this = this;\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(function () {\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 /**\n * Mark the field as touched\n * @return {?}\n */\n MatChipList.prototype._markAsTouched = function () {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n };\n /**\n * @return {?}\n */\n MatChipList.prototype._resetChips = function () {\n this._dropSubscriptions();\n this._listenToChipsFocus();\n this._listenToChipsSelection();\n this._listenToChipsRemoved();\n };\n /**\n * @return {?}\n */\n MatChipList.prototype._dropSubscriptions = function () {\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 };\n /**\n * Listens to user-generated selection events on each chip.\n * @return {?}\n */\n MatChipList.prototype._listenToChipsSelection = function () {\n var _this = this;\n this._chipSelectionSubscription = this.chipSelectionChanges.subscribe(function (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(function (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 /**\n * Listens to user-generated selection events on each chip.\n * @return {?}\n */\n MatChipList.prototype._listenToChipsFocus = function () {\n var _this = this;\n this._chipFocusSubscription = this.chipFocusChanges.subscribe(function (event) {\n var /** @type {?} */ chipIndex = _this.chips.toArray().indexOf(event.chip);\n if (_this._isValidIndex(chipIndex)) {\n _this._keyManager.updateActiveItemIndex(chipIndex);\n }\n _this.stateChanges.next();\n });\n this._chipBlurSubscription = this.chipBlurChanges.subscribe(function (_) {\n _this._blur();\n _this.stateChanges.next();\n });\n };\n /**\n * @return {?}\n */\n MatChipList.prototype._listenToChipsRemoved = function () {\n var _this = this;\n this._chipRemoveSubscription = this.chipRemoveChanges.subscribe(function (event) {\n _this._updateKeyManager(event.chip);\n });\n };\n MatChipList.decorators = [\n { type: Component, args: [{selector: 'mat-chip-list',\n template: \"
\",\n exportAs: 'matChipList',\n host: {\n '[attr.tabindex]': '_tabIndex',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-multiselectable]': 'multiple',\n '[class.mat-chip-list-disabled]': 'disabled',\n '[class.mat-chip-list-invalid]': 'errorState',\n '[class.mat-chip-list-required]': 'required',\n 'role': 'listbox',\n '[attr.aria-orientation]': 'ariaOrientation',\n 'class': 'mat-chip-list',\n '(focus)': 'focus()',\n '(blur)': '_blur()',\n '(keydown)': '_keydown($event)'\n },\n providers: [{ provide: MatFormFieldControl, useExisting: MatChipList }],\n styles: [\".mat-chip-list-wrapper{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline}.mat-chip:not(.mat-basic-chip){transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);display:inline-flex;padding:7px 12px;border-radius:24px;align-items:center;cursor:default}.mat-chip:not(.mat-basic-chip)+.mat-chip:not(.mat-basic-chip){margin:0 0 3px 8px}[dir=rtl] .mat-chip:not(.mat-basic-chip)+.mat-chip:not(.mat-basic-chip){margin:0 8px 3px 0}.mat-form-field-prefix .mat-chip:not(.mat-basic-chip):last-child{margin-right:8px}[dir=rtl] .mat-form-field-prefix .mat-chip:not(.mat-basic-chip):last-child{margin-left:8px}.mat-chip:not(.mat-basic-chip) .mat-chip-remove.mat-icon{width:1em;height:1em}.mat-chip:not(.mat-basic-chip):focus{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12);outline:0}@media screen and (-ms-high-contrast:active){.mat-chip:not(.mat-basic-chip){outline:solid 1px}}.mat-chip-list-stacked .mat-chip-list-wrapper{display:block}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-chip:not(.mat-basic-chip){display:block;margin:0;margin-bottom:8px}[dir=rtl] .mat-chip-list-stacked .mat-chip-list-wrapper .mat-chip:not(.mat-basic-chip){margin:0;margin-bottom:8px}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-chip:not(.mat-basic-chip):last-child,[dir=rtl] .mat-chip-list-stacked .mat-chip-list-wrapper .mat-chip:not(.mat-basic-chip):last-child{margin-bottom:0}.mat-form-field-prefix .mat-chip-list-wrapper{margin-bottom:8px}.mat-chip-remove{margin-right:-4px;margin-left:6px;cursor:pointer}[dir=rtl] .mat-chip-remove{margin-right:6px;margin-left:-4px}input.mat-chip-input{width:150px;margin:3px}\"],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n },] },\n ];\n /**\n * @nocollapse\n */\n MatChipList.ctorParameters = function () { return [\n { type: Renderer2, },\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: NgControl, decorators: [{ type: Optional }, { type: Self },] },\n ]; };\n MatChipList.propDecorators = {\n 'multiple': [{ type: Input },],\n 'compareWith': [{ type: Input },],\n 'value': [{ type: Input },],\n 'id': [{ 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 };\n return MatChipList;\n}());\nexport { MatChipList };\nfunction MatChipList_tsickle_Closure_declarations() {\n /** @type {?} */\n MatChipList.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatChipList.ctorParameters;\n /** @type {?} */\n MatChipList.propDecorators;\n /** @type {?} */\n MatChipList.prototype.controlType;\n /**\n * Stream that emits whenever the state of the input changes such that the wrapping `MatFormField`\n * needs to run change detection.\n * @type {?}\n */\n MatChipList.prototype.stateChanges;\n /**\n * When a chip is destroyed, we track the index so we can focus the appropriate next chip.\n * @type {?}\n */\n MatChipList.prototype._lastDestroyedIndex;\n /**\n * Track which chips we're listening to for focus/destruction.\n * @type {?}\n */\n MatChipList.prototype._chipSet;\n /**\n * Subscription to tabbing out from the chip list.\n * @type {?}\n */\n MatChipList.prototype._tabOutSubscription;\n /**\n * Subscription to changes in the chip list.\n * @type {?}\n */\n MatChipList.prototype._changeSubscription;\n /**\n * Subscription to focus changes in the chips.\n * @type {?}\n */\n MatChipList.prototype._chipFocusSubscription;\n /**\n * Subscription to blur changes in the chips.\n * @type {?}\n */\n MatChipList.prototype._chipBlurSubscription;\n /**\n * Subscription to selection changes in chips.\n * @type {?}\n */\n MatChipList.prototype._chipSelectionSubscription;\n /**\n * Subscription to remove changes in chips.\n * @type {?}\n */\n MatChipList.prototype._chipRemoveSubscription;\n /**\n * Whether or not the chip is selectable.\n * @type {?}\n */\n MatChipList.prototype._selectable;\n /**\n * Whether the component is in multiple selection mode.\n * @type {?}\n */\n MatChipList.prototype._multiple;\n /**\n * The chip input to add more chips\n * @type {?}\n */\n MatChipList.prototype._chipInput;\n /**\n * The aria-describedby attribute on the chip list for improved a11y.\n * @type {?}\n */\n MatChipList.prototype._ariaDescribedby;\n /**\n * Id of the chip list\n * @type {?}\n */\n MatChipList.prototype._id;\n /**\n * Uid of the chip list\n * @type {?}\n */\n MatChipList.prototype._uid;\n /**\n * Whether this is required\n * @type {?}\n */\n MatChipList.prototype._required;\n /**\n * Whether this is disabled\n * @type {?}\n */\n MatChipList.prototype._disabled;\n /** @type {?} */\n MatChipList.prototype._value;\n /**\n * Placeholder for the chip list. Alternatively, placeholder can be set on MatChipInput\n * @type {?}\n */\n MatChipList.prototype._placeholder;\n /**\n * Tab index for the chip list.\n * @type {?}\n */\n MatChipList.prototype._tabIndex;\n /**\n * User defined tab index.\n * When it is not null, use user defined tab index. Otherwise use _tabIndex\n * @type {?}\n */\n MatChipList.prototype._userTabIndex;\n /**\n * The FocusKeyManager which handles focus.\n * @type {?}\n */\n MatChipList.prototype._keyManager;\n /**\n * Function when touched\n * @type {?}\n */\n MatChipList.prototype._onTouched;\n /**\n * Function when changed\n * @type {?}\n */\n MatChipList.prototype._onChange;\n /** @type {?} */\n MatChipList.prototype._selectionModel;\n /**\n * Comparison function to specify which option is displayed. Defaults to object equality.\n * @type {?}\n */\n MatChipList.prototype._compareWith;\n /**\n * Orientation of the chip list.\n * @type {?}\n */\n MatChipList.prototype.ariaOrientation;\n /**\n * Event emitted when the selected chip list value has been changed by the user.\n * @type {?}\n */\n MatChipList.prototype.change;\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 * @type {?}\n */\n MatChipList.prototype.valueChange;\n /**\n * The chip components contained within this chip list.\n * @type {?}\n */\n MatChipList.prototype.chips;\n /** @type {?} */\n MatChipList.prototype._renderer;\n /** @type {?} */\n MatChipList.prototype._elementRef;\n /** @type {?} */\n MatChipList.prototype._changeDetectorRef;\n /** @type {?} */\n MatChipList.prototype._dir;\n /** @type {?} */\n MatChipList.prototype._parentForm;\n /** @type {?} */\n MatChipList.prototype._parentFormGroup;\n /** @type {?} */\n MatChipList.prototype.ngControl;\n}\n//# sourceMappingURL=chip-list.js.map","/**\n * @license\n * Copyright Google Inc. 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 { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ENTER } from '@angular/cdk/keycodes';\nimport { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\n/**\n * Directive that adds chip-specific behaviors to an input element inside .\n * May be placed inside or outside of an .\n */\nvar MatChipInput = (function () {\n /**\n * @param {?} _elementRef\n */\n function MatChipInput(_elementRef) {\n this._elementRef = _elementRef;\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 // TODO(tinayuangao): Support Set here\n this.separatorKeyCodes = [ENTER];\n /**\n * Emitted when a chip is to be added.\n */\n this.chipEnd = new EventEmitter();\n this.placeholder = '';\n this._inputElement = this._elementRef.nativeElement;\n }\n Object.defineProperty(MatChipInput.prototype, \"chipList\", {\n /**\n * Register input for chip list\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n if (value) {\n this._chipList = value;\n this._chipList.registerInput(this);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipInput.prototype, \"addOnBlur\", {\n /**\n * Whether or not the chipEnd event will be emitted when the input is blurred.\n * @return {?}\n */\n get: function () { return this._addOnBlur; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._addOnBlur = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatChipInput.prototype, \"empty\", {\n /**\n * @return {?}\n */\n get: function () {\n var /** @type {?} */ value = this._inputElement.value;\n return value == null || value === '';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Utility method to make host definition/tests more clear.\n * @param {?=} event\n * @return {?}\n */\n MatChipInput.prototype._keydown = function (event) {\n this._emitChipEnd(event);\n };\n /**\n * Checks to see if the blur should emit the (chipEnd) event.\n * @return {?}\n */\n MatChipInput.prototype._blur = function () {\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 /**\n * @return {?}\n */\n MatChipInput.prototype._focus = function () {\n this.focused = true;\n this._chipList.stateChanges.next();\n };\n /**\n * Checks to see if the (chipEnd) event needs to be emitted.\n * @param {?=} event\n * @return {?}\n */\n MatChipInput.prototype._emitChipEnd = function (event) {\n if (!this._inputElement.value && !!event) {\n this._chipList._keydown(event);\n }\n if (!event || this.separatorKeyCodes.indexOf(event.keyCode) > -1) {\n this.chipEnd.emit({ input: this._inputElement, value: this._inputElement.value });\n if (event) {\n event.preventDefault();\n }\n }\n };\n /**\n * @return {?}\n */\n MatChipInput.prototype.focus = function () { this._inputElement.focus(); };\n MatChipInput.decorators = [\n { type: Directive, 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 }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatChipInput.ctorParameters = function () { return [\n { type: ElementRef, },\n ]; };\n MatChipInput.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 };\n return MatChipInput;\n}());\nexport { MatChipInput };\nfunction MatChipInput_tsickle_Closure_declarations() {\n /** @type {?} */\n MatChipInput.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatChipInput.ctorParameters;\n /** @type {?} */\n MatChipInput.propDecorators;\n /** @type {?} */\n MatChipInput.prototype.focused;\n /** @type {?} */\n MatChipInput.prototype._chipList;\n /** @type {?} */\n MatChipInput.prototype._addOnBlur;\n /** @type {?} */\n MatChipInput.prototype.separatorKeyCodes;\n /**\n * Emitted when a chip is to be added.\n * @type {?}\n */\n MatChipInput.prototype.chipEnd;\n /** @type {?} */\n MatChipInput.prototype.placeholder;\n /**\n * The native input element to which this directive is attached.\n * @type {?}\n */\n MatChipInput.prototype._inputElement;\n /** @type {?} */\n MatChipInput.prototype._elementRef;\n}\n//# sourceMappingURL=chip-input.js.map","/**\n * @license\n * Copyright Google Inc. 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 { NgModule } from '@angular/core';\nimport { MatChipList } from './chip-list';\nimport { MatBasicChip, MatChip, MatChipRemove } from './chip';\nimport { MatChipInput } from './chip-input';\nvar MatChipsModule = (function () {\n function MatChipsModule() {\n }\n MatChipsModule.decorators = [\n { type: NgModule, args: [{\n imports: [],\n exports: [MatChipList, MatChip, MatChipInput, MatChipRemove, MatChipRemove, MatBasicChip],\n declarations: [MatChipList, MatChip, MatChipInput, MatChipRemove, MatChipRemove, MatBasicChip]\n },] },\n ];\n /**\n * @nocollapse\n */\n MatChipsModule.ctorParameters = function () { return []; };\n return MatChipsModule;\n}());\nexport { MatChipsModule };\nfunction MatChipsModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatChipsModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatChipsModule.ctorParameters;\n}\n//# sourceMappingURL=chips-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { MatChipsModule, MatChipListChange, MatChipList, MatChipSelectionChange, MatChipBase, _MatChipMixinBase, MatBasicChip, MatChip, MatChipRemove, MatChipInput } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["tslib_1.__extends"],"mappings":"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"}