{"version":3,"file":"button-toggle.es5.js","sources":["../../packages/material/esm5/button-toggle/button-toggle.js","../../packages/material/esm5/button-toggle/button-toggle-module.js","../../packages/material/esm5/button-toggle/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 { Component, ContentChildren, Directive, ElementRef, Renderer2, EventEmitter, Input, Optional, Output, ViewChild, ViewEncapsulation, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { mixinDisabled } from '@angular/material/core';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\n/**\n * \\@docs-private\n */\nvar MatButtonToggleGroupBase = (function () {\n function MatButtonToggleGroupBase() {\n }\n return MatButtonToggleGroupBase;\n}());\nexport { MatButtonToggleGroupBase };\nexport var /** @type {?} */ _MatButtonToggleGroupMixinBase = mixinDisabled(MatButtonToggleGroupBase);\n/**\n * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * \\@docs-private\n */\nexport var MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(function () { return MatButtonToggleGroup; }),\n multi: true\n};\nvar /** @type {?} */ _uniqueIdCounter = 0;\n/**\n * Change event object emitted by MatButtonToggle.\n */\nvar MatButtonToggleChange = (function () {\n function MatButtonToggleChange() {\n }\n return MatButtonToggleChange;\n}());\nexport { MatButtonToggleChange };\nfunction MatButtonToggleChange_tsickle_Closure_declarations() {\n /**\n * The MatButtonToggle that emits the event.\n * @type {?}\n */\n MatButtonToggleChange.prototype.source;\n /**\n * The value assigned to the MatButtonToggle.\n * @type {?}\n */\n MatButtonToggleChange.prototype.value;\n}\n/**\n * Exclusive selection button toggle group that behaves like a radio-button group.\n */\nvar MatButtonToggleGroup = (function (_super) {\n tslib_1.__extends(MatButtonToggleGroup, _super);\n /**\n * @param {?} _changeDetector\n */\n function MatButtonToggleGroup(_changeDetector) {\n var _this = _super.call(this) || this;\n _this._changeDetector = _changeDetector;\n /**\n * The value for the button toggle group. Should match currently selected button toggle.\n */\n _this._value = null;\n /**\n * The HTML name attribute applied to toggles in this group.\n */\n _this._name = \"mat-button-toggle-group-\" + _uniqueIdCounter++;\n /**\n * Whether the button toggle group should be vertical.\n */\n _this._vertical = false;\n /**\n * The currently selected button toggle, should match the value.\n */\n _this._selected = null;\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n _this._controlValueAccessorChangeFn = function () { };\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n */\n _this._onTouched = function () { };\n /**\n * Event emitted when the group's value changes.\n */\n _this.change = new EventEmitter();\n return _this;\n }\n Object.defineProperty(MatButtonToggleGroup.prototype, \"name\", {\n /**\n * `name` attribute for the underlying `input` element.\n * @return {?}\n */\n get: function () {\n return this._name;\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._name = value;\n this._updateButtonToggleNames();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggleGroup.prototype, \"vertical\", {\n /**\n * Whether the toggle group is vertical.\n * @return {?}\n */\n get: function () {\n return this._vertical;\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._vertical = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggleGroup.prototype, \"value\", {\n /**\n * Value of the toggle group.\n * @return {?}\n */\n get: function () {\n return this._value;\n },\n /**\n * @param {?} newValue\n * @return {?}\n */\n set: function (newValue) {\n if (this._value != newValue) {\n this._value = newValue;\n this._updateSelectedButtonToggleFromValue();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggleGroup.prototype, \"selected\", {\n /**\n * Whether the toggle group is selected.\n * @return {?}\n */\n get: function () {\n return this._selected;\n },\n /**\n * @param {?} selected\n * @return {?}\n */\n set: function (selected) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n if (selected && !selected.checked) {\n selected.checked = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatButtonToggleGroup.prototype._updateButtonToggleNames = function () {\n var _this = this;\n if (this._buttonToggles) {\n this._buttonToggles.forEach(function (toggle) {\n toggle.name = _this._name;\n });\n }\n };\n /**\n * @return {?}\n */\n MatButtonToggleGroup.prototype._updateSelectedButtonToggleFromValue = function () {\n var _this = this;\n var /** @type {?} */ isAlreadySelected = this._selected != null && this._selected.value == this._value;\n if (this._buttonToggles != null && !isAlreadySelected) {\n var /** @type {?} */ matchingButtonToggle = this._buttonToggles.filter(function (buttonToggle) { return buttonToggle.value == _this._value; })[0];\n if (matchingButtonToggle) {\n this.selected = matchingButtonToggle;\n }\n else if (this.value == null) {\n this.selected = null;\n this._buttonToggles.forEach(function (buttonToggle) {\n buttonToggle.checked = false;\n });\n }\n }\n };\n /**\n * Dispatch change event with current selection and group value.\n * @return {?}\n */\n MatButtonToggleGroup.prototype._emitChangeEvent = function () {\n var /** @type {?} */ event = new MatButtonToggleChange();\n event.source = this._selected;\n event.value = this._value;\n this._controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n };\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param {?} value Value to be set to the model.\n * @return {?}\n */\n MatButtonToggleGroup.prototype.writeValue = function (value) {\n this.value = value;\n this._changeDetector.markForCheck();\n };\n /**\n * Registers a callback that will be triggered when the value has changed.\n * Implemented as part of ControlValueAccessor.\n * @param {?} fn On change callback function.\n * @return {?}\n */\n MatButtonToggleGroup.prototype.registerOnChange = function (fn) {\n this._controlValueAccessorChangeFn = fn;\n };\n /**\n * Registers a callback that will be triggered when the control has been touched.\n * Implemented as part of ControlValueAccessor.\n * @param {?} fn On touch callback function.\n * @return {?}\n */\n MatButtonToggleGroup.prototype.registerOnTouched = function (fn) {\n this._onTouched = fn;\n };\n /**\n * Toggles the disabled state of the component. Implemented as part of ControlValueAccessor.\n * @param {?} isDisabled Whether the component should be disabled.\n * @return {?}\n */\n MatButtonToggleGroup.prototype.setDisabledState = function (isDisabled) {\n this.disabled = isDisabled;\n this._markButtonTogglesForCheck();\n };\n /**\n * @return {?}\n */\n MatButtonToggleGroup.prototype._markButtonTogglesForCheck = function () {\n if (this._buttonToggles) {\n this._buttonToggles.forEach(function (toggle) { return toggle._markForCheck(); });\n }\n };\n MatButtonToggleGroup.decorators = [\n { type: Directive, args: [{\n selector: 'mat-button-toggle-group:not([multiple])',\n providers: [MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR],\n inputs: ['disabled'],\n host: {\n 'role': 'radiogroup',\n 'class': 'mat-button-toggle-group',\n '[class.mat-button-toggle-vertical]': 'vertical'\n },\n exportAs: 'matButtonToggleGroup',\n },] },\n ];\n /**\n * @nocollapse\n */\n MatButtonToggleGroup.ctorParameters = function () { return [\n { type: ChangeDetectorRef, },\n ]; };\n MatButtonToggleGroup.propDecorators = {\n '_buttonToggles': [{ type: ContentChildren, args: [forwardRef(function () { return MatButtonToggle; }),] },],\n 'name': [{ type: Input },],\n 'vertical': [{ type: Input },],\n 'value': [{ type: Input },],\n 'selected': [{ type: Input },],\n 'change': [{ type: Output },],\n };\n return MatButtonToggleGroup;\n}(_MatButtonToggleGroupMixinBase));\nexport { MatButtonToggleGroup };\nfunction MatButtonToggleGroup_tsickle_Closure_declarations() {\n /** @type {?} */\n MatButtonToggleGroup.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatButtonToggleGroup.ctorParameters;\n /** @type {?} */\n MatButtonToggleGroup.propDecorators;\n /**\n * The value for the button toggle group. Should match currently selected button toggle.\n * @type {?}\n */\n MatButtonToggleGroup.prototype._value;\n /**\n * The HTML name attribute applied to toggles in this group.\n * @type {?}\n */\n MatButtonToggleGroup.prototype._name;\n /**\n * Whether the button toggle group should be vertical.\n * @type {?}\n */\n MatButtonToggleGroup.prototype._vertical;\n /**\n * The currently selected button toggle, should match the value.\n * @type {?}\n */\n MatButtonToggleGroup.prototype._selected;\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n * @type {?}\n */\n MatButtonToggleGroup.prototype._controlValueAccessorChangeFn;\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n * @type {?}\n */\n MatButtonToggleGroup.prototype._onTouched;\n /**\n * Child button toggle buttons.\n * @type {?}\n */\n MatButtonToggleGroup.prototype._buttonToggles;\n /**\n * Event emitted when the group's value changes.\n * @type {?}\n */\n MatButtonToggleGroup.prototype.change;\n /** @type {?} */\n MatButtonToggleGroup.prototype._changeDetector;\n}\n/**\n * Multiple selection button-toggle group. `ngModel` is not supported in this mode.\n */\nvar MatButtonToggleGroupMultiple = (function (_super) {\n tslib_1.__extends(MatButtonToggleGroupMultiple, _super);\n function MatButtonToggleGroupMultiple() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Whether the button toggle group should be vertical.\n */\n _this._vertical = false;\n return _this;\n }\n Object.defineProperty(MatButtonToggleGroupMultiple.prototype, \"vertical\", {\n /**\n * Whether the toggle group is vertical.\n * @return {?}\n */\n get: function () {\n return this._vertical;\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._vertical = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n MatButtonToggleGroupMultiple.decorators = [\n { type: Directive, args: [{\n selector: 'mat-button-toggle-group[multiple]',\n exportAs: 'matButtonToggleGroup',\n inputs: ['disabled'],\n host: {\n 'class': 'mat-button-toggle-group',\n '[class.mat-button-toggle-vertical]': 'vertical',\n 'role': 'group'\n }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatButtonToggleGroupMultiple.ctorParameters = function () { return []; };\n MatButtonToggleGroupMultiple.propDecorators = {\n 'vertical': [{ type: Input },],\n };\n return MatButtonToggleGroupMultiple;\n}(_MatButtonToggleGroupMixinBase));\nexport { MatButtonToggleGroupMultiple };\nfunction MatButtonToggleGroupMultiple_tsickle_Closure_declarations() {\n /** @type {?} */\n MatButtonToggleGroupMultiple.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatButtonToggleGroupMultiple.ctorParameters;\n /** @type {?} */\n MatButtonToggleGroupMultiple.propDecorators;\n /**\n * Whether the button toggle group should be vertical.\n * @type {?}\n */\n MatButtonToggleGroupMultiple.prototype._vertical;\n}\n/**\n * Single button inside of a toggle group.\n */\nvar MatButtonToggle = (function () {\n /**\n * @param {?} toggleGroup\n * @param {?} toggleGroupMultiple\n * @param {?} _changeDetectorRef\n * @param {?} _buttonToggleDispatcher\n * @param {?} _renderer\n * @param {?} _elementRef\n * @param {?} _focusMonitor\n */\n function MatButtonToggle(toggleGroup, toggleGroupMultiple, _changeDetectorRef, _buttonToggleDispatcher, _renderer, _elementRef, _focusMonitor) {\n var _this = this;\n this._changeDetectorRef = _changeDetectorRef;\n this._buttonToggleDispatcher = _buttonToggleDispatcher;\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n this._focusMonitor = _focusMonitor;\n /**\n * Attached to the aria-label attribute of the host element. In most cases, arial-labelledby will\n * take precedence so this may be omitted.\n */\n this.ariaLabel = '';\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n this.ariaLabelledby = null;\n /**\n * Whether or not this button toggle is checked.\n */\n this._checked = false;\n /**\n * Whether or not this button toggle is disabled.\n */\n this._disabled = false;\n /**\n * Value assigned to this button toggle.\n */\n this._value = null;\n /**\n * Whether or not the button toggle is a single selection.\n */\n this._isSingleSelector = false;\n /**\n * Unregister function for _buttonToggleDispatcher *\n */\n this._removeUniqueSelectionListener = function () { };\n /**\n * Event emitted when the group value changes.\n */\n this.change = new EventEmitter();\n this.buttonToggleGroup = toggleGroup;\n this.buttonToggleGroupMultiple = toggleGroupMultiple;\n if (this.buttonToggleGroup) {\n this._removeUniqueSelectionListener =\n _buttonToggleDispatcher.listen(function (id, name) {\n if (id != _this.id && name == _this.name) {\n _this.checked = false;\n _this._changeDetectorRef.markForCheck();\n }\n });\n this._type = 'radio';\n this.name = this.buttonToggleGroup.name;\n this._isSingleSelector = true;\n }\n else {\n // Even if there is no group at all, treat the button toggle as a checkbox so it can be\n // toggled on or off.\n this._type = 'checkbox';\n this._isSingleSelector = false;\n }\n }\n Object.defineProperty(MatButtonToggle.prototype, \"inputId\", {\n /**\n * Unique ID for the underlying `input` element.\n * @return {?}\n */\n get: function () {\n return this.id + \"-input\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggle.prototype, \"checked\", {\n /**\n * Whether the button is checked.\n * @return {?}\n */\n get: function () { return this._checked; },\n /**\n * @param {?} newCheckedState\n * @return {?}\n */\n set: function (newCheckedState) {\n if (this._isSingleSelector && newCheckedState) {\n // Notify all button toggles with the same name (in the same group) to un-check.\n this._buttonToggleDispatcher.notify(this.id, this.name);\n this._changeDetectorRef.markForCheck();\n }\n this._checked = newCheckedState;\n if (newCheckedState && this._isSingleSelector && this.buttonToggleGroup.value != this.value) {\n this.buttonToggleGroup.selected = this;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggle.prototype, \"value\", {\n /**\n * MatButtonToggleGroup reads this to assign its own value.\n * @return {?}\n */\n get: function () {\n return this._value;\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n if (this._value != value) {\n if (this.buttonToggleGroup != null && this.checked) {\n this.buttonToggleGroup.value = value;\n }\n this._value = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggle.prototype, \"disabled\", {\n /**\n * Whether the button is disabled.\n * @return {?}\n */\n get: function () {\n return this._disabled || (this.buttonToggleGroup != null && this.buttonToggleGroup.disabled) ||\n (this.buttonToggleGroupMultiple != null && this.buttonToggleGroupMultiple.disabled);\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._disabled = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatButtonToggle.prototype.ngOnInit = function () {\n if (this.id == null) {\n this.id = \"mat-button-toggle-\" + _uniqueIdCounter++;\n }\n if (this.buttonToggleGroup && this._value == this.buttonToggleGroup.value) {\n this._checked = true;\n }\n this._focusMonitor.monitor(this._elementRef.nativeElement, this._renderer, true);\n };\n /**\n * Focuses the button.\n * @return {?}\n */\n MatButtonToggle.prototype.focus = function () {\n this._inputElement.nativeElement.focus();\n };\n /**\n * Toggle the state of the current button toggle.\n * @return {?}\n */\n MatButtonToggle.prototype._toggle = function () {\n this.checked = !this.checked;\n };\n /**\n * Checks the button toggle due to an interaction with the underlying native input.\n * @param {?} event\n * @return {?}\n */\n MatButtonToggle.prototype._onInputChange = function (event) {\n event.stopPropagation();\n if (this._isSingleSelector) {\n // Propagate the change one-way via the group, which will in turn mark this\n // button toggle as checked.\n var /** @type {?} */ groupValueChanged = this.buttonToggleGroup.selected != this;\n this.checked = true;\n this.buttonToggleGroup.selected = this;\n this.buttonToggleGroup._onTouched();\n if (groupValueChanged) {\n this.buttonToggleGroup._emitChangeEvent();\n }\n }\n else {\n this._toggle();\n }\n // Emit a change event when the native input does.\n this._emitChangeEvent();\n };\n /**\n * @param {?} event\n * @return {?}\n */\n MatButtonToggle.prototype._onInputClick = function (event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `slide-toggle` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n };\n /**\n * Dispatch change event with current value.\n * @return {?}\n */\n MatButtonToggle.prototype._emitChangeEvent = function () {\n var /** @type {?} */ event = new MatButtonToggleChange();\n event.source = this;\n event.value = this._value;\n this.change.emit(event);\n };\n /**\n * @return {?}\n */\n MatButtonToggle.prototype.ngOnDestroy = function () {\n this._removeUniqueSelectionListener();\n };\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n * @return {?}\n */\n MatButtonToggle.prototype._markForCheck = function () {\n // When group value changes, the button will not be notified. Use `markForCheck` to explicit\n // update button toggle's status\n this._changeDetectorRef.markForCheck();\n };\n MatButtonToggle.decorators = [\n { type: Component, args: [{selector: 'mat-button-toggle',\n template: \"
\",\n styles: [\".mat-button-toggle-group,.mat-button-toggle-standalone{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);position:relative;display:inline-flex;flex-direction:row;border-radius:2px;cursor:pointer;white-space:nowrap;overflow:hidden}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle-disabled .mat-button-toggle-label-content{cursor:default}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:1}.mat-button-toggle-label-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;cursor:pointer}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{border-radius:inherit;pointer-events:none;opacity:0;top:0;left:0;right:0;bottom:0;position:absolute}\"],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n exportAs: 'matButtonToggle',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.mat-button-toggle-standalone]': '!buttonToggleGroup && !buttonToggleGroupMultiple',\n '[class.mat-button-toggle-checked]': 'checked',\n '[class.mat-button-toggle-disabled]': 'disabled',\n 'class': 'mat-button-toggle',\n '[attr.id]': 'id',\n }\n },] },\n ];\n /**\n * @nocollapse\n */\n MatButtonToggle.ctorParameters = function () { return [\n { type: MatButtonToggleGroup, decorators: [{ type: Optional },] },\n { type: MatButtonToggleGroupMultiple, decorators: [{ type: Optional },] },\n { type: ChangeDetectorRef, },\n { type: UniqueSelectionDispatcher, },\n { type: Renderer2, },\n { type: ElementRef, },\n { type: FocusMonitor, },\n ]; };\n MatButtonToggle.propDecorators = {\n 'ariaLabel': [{ type: Input, args: ['aria-label',] },],\n 'ariaLabelledby': [{ type: Input, args: ['aria-labelledby',] },],\n '_inputElement': [{ type: ViewChild, args: ['input',] },],\n 'id': [{ type: Input },],\n 'name': [{ type: Input },],\n 'checked': [{ type: Input },],\n 'value': [{ type: Input },],\n 'disabled': [{ type: Input },],\n 'change': [{ type: Output },],\n };\n return MatButtonToggle;\n}());\nexport { MatButtonToggle };\nfunction MatButtonToggle_tsickle_Closure_declarations() {\n /** @type {?} */\n MatButtonToggle.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatButtonToggle.ctorParameters;\n /** @type {?} */\n MatButtonToggle.propDecorators;\n /**\n * Attached to the aria-label attribute of the host element. In most cases, arial-labelledby will\n * take precedence so this may be omitted.\n * @type {?}\n */\n MatButtonToggle.prototype.ariaLabel;\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n * @type {?}\n */\n MatButtonToggle.prototype.ariaLabelledby;\n /**\n * Whether or not this button toggle is checked.\n * @type {?}\n */\n MatButtonToggle.prototype._checked;\n /**\n * Type of the button toggle. Either 'radio' or 'checkbox'.\n * @type {?}\n */\n MatButtonToggle.prototype._type;\n /**\n * Whether or not this button toggle is disabled.\n * @type {?}\n */\n MatButtonToggle.prototype._disabled;\n /**\n * Value assigned to this button toggle.\n * @type {?}\n */\n MatButtonToggle.prototype._value;\n /**\n * Whether or not the button toggle is a single selection.\n * @type {?}\n */\n MatButtonToggle.prototype._isSingleSelector;\n /**\n * Unregister function for _buttonToggleDispatcher *\n * @type {?}\n */\n MatButtonToggle.prototype._removeUniqueSelectionListener;\n /** @type {?} */\n MatButtonToggle.prototype._inputElement;\n /**\n * The parent button toggle group (exclusive selection). Optional.\n * @type {?}\n */\n MatButtonToggle.prototype.buttonToggleGroup;\n /**\n * The parent button toggle group (multiple selection). Optional.\n * @type {?}\n */\n MatButtonToggle.prototype.buttonToggleGroupMultiple;\n /**\n * The unique ID for this button toggle.\n * @type {?}\n */\n MatButtonToggle.prototype.id;\n /**\n * HTML's 'name' attribute used to group radios for unique selection.\n * @type {?}\n */\n MatButtonToggle.prototype.name;\n /**\n * Event emitted when the group value changes.\n * @type {?}\n */\n MatButtonToggle.prototype.change;\n /** @type {?} */\n MatButtonToggle.prototype._changeDetectorRef;\n /** @type {?} */\n MatButtonToggle.prototype._buttonToggleDispatcher;\n /** @type {?} */\n MatButtonToggle.prototype._renderer;\n /** @type {?} */\n MatButtonToggle.prototype._elementRef;\n /** @type {?} */\n MatButtonToggle.prototype._focusMonitor;\n}\n//# sourceMappingURL=button-toggle.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 { MatButtonToggleGroup, MatButtonToggleGroupMultiple, MatButtonToggle } from './button-toggle';\nimport { MatCommonModule } from '@angular/material/core';\nimport { UNIQUE_SELECTION_DISPATCHER_PROVIDER } from '@angular/cdk/collections';\nimport { A11yModule } from '@angular/cdk/a11y';\nvar MatButtonToggleModule = (function () {\n function MatButtonToggleModule() {\n }\n MatButtonToggleModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule, A11yModule],\n exports: [\n MatButtonToggleGroup,\n MatButtonToggleGroupMultiple,\n MatButtonToggle,\n MatCommonModule,\n ],\n declarations: [MatButtonToggleGroup, MatButtonToggleGroupMultiple, MatButtonToggle],\n providers: [UNIQUE_SELECTION_DISPATCHER_PROVIDER]\n },] },\n ];\n /**\n * @nocollapse\n */\n MatButtonToggleModule.ctorParameters = function () { return []; };\n return MatButtonToggleModule;\n}());\nexport { MatButtonToggleModule };\nfunction MatButtonToggleModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatButtonToggleModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatButtonToggleModule.ctorParameters;\n}\n//# sourceMappingURL=button-toggle-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { MatButtonToggleGroupBase, _MatButtonToggleGroupMixinBase, MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, MatButtonToggleChange, MatButtonToggleGroup, MatButtonToggleGroupMultiple, MatButtonToggle, MatButtonToggleModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["tslib_1.__extends"],"mappings":"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"}