{"version":3,"file":"button-toggle.js","sources":["../../packages/material/button-toggle/button-toggle.js","../../packages/material/button-toggle/button-toggle-module.js","../../packages/material/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 { 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 */\nexport class MatButtonToggleGroupBase {\n}\nexport const /** @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 const MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatButtonToggleGroup),\n multi: true\n};\nlet /** @type {?} */ _uniqueIdCounter = 0;\n/**\n * Change event object emitted by MatButtonToggle.\n */\nexport class MatButtonToggleChange {\n}\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 */\nexport class MatButtonToggleGroup extends _MatButtonToggleGroupMixinBase {\n /**\n * @param {?} _changeDetector\n */\n constructor(_changeDetector) {\n super();\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 = () => { };\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n */\n this._onTouched = () => { };\n /**\n * Event emitted when the group's value changes.\n */\n this.change = new EventEmitter();\n }\n /**\n * `name` attribute for the underlying `input` element.\n * @return {?}\n */\n get name() {\n return this._name;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n set name(value) {\n this._name = value;\n this._updateButtonToggleNames();\n }\n /**\n * Whether the toggle group is vertical.\n * @return {?}\n */\n get vertical() {\n return this._vertical;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n set vertical(value) {\n this._vertical = coerceBooleanProperty(value);\n }\n /**\n * Value of the toggle group.\n * @return {?}\n */\n get value() {\n return this._value;\n }\n /**\n * @param {?} newValue\n * @return {?}\n */\n set value(newValue) {\n if (this._value != newValue) {\n this._value = newValue;\n this._updateSelectedButtonToggleFromValue();\n }\n }\n /**\n * Whether the toggle group is selected.\n * @return {?}\n */\n get selected() {\n return this._selected;\n }\n /**\n * @param {?} selected\n * @return {?}\n */\n set selected(selected) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n if (selected && !selected.checked) {\n selected.checked = true;\n }\n }\n /**\n * @return {?}\n */\n _updateButtonToggleNames() {\n if (this._buttonToggles) {\n this._buttonToggles.forEach((toggle) => {\n toggle.name = this._name;\n });\n }\n }\n /**\n * @return {?}\n */\n _updateSelectedButtonToggleFromValue() {\n let /** @type {?} */ isAlreadySelected = this._selected != null && this._selected.value == this._value;\n if (this._buttonToggles != null && !isAlreadySelected) {\n let /** @type {?} */ matchingButtonToggle = this._buttonToggles.filter(buttonToggle => 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(buttonToggle => {\n buttonToggle.checked = false;\n });\n }\n }\n }\n /**\n * Dispatch change event with current selection and group value.\n * @return {?}\n */\n _emitChangeEvent() {\n let /** @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 writeValue(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 registerOnChange(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 registerOnTouched(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 setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._markButtonTogglesForCheck();\n }\n /**\n * @return {?}\n */\n _markButtonTogglesForCheck() {\n if (this._buttonToggles) {\n this._buttonToggles.forEach((toggle) => toggle._markForCheck());\n }\n }\n}\nMatButtonToggleGroup.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 */\nMatButtonToggleGroup.ctorParameters = () => [\n { type: ChangeDetectorRef, },\n];\nMatButtonToggleGroup.propDecorators = {\n '_buttonToggles': [{ type: ContentChildren, args: [forwardRef(() => MatButtonToggle),] },],\n 'name': [{ type: Input },],\n 'vertical': [{ type: Input },],\n 'value': [{ type: Input },],\n 'selected': [{ type: Input },],\n 'change': [{ type: Output },],\n};\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 */\nexport class MatButtonToggleGroupMultiple extends _MatButtonToggleGroupMixinBase {\n constructor() {\n super(...arguments);\n /**\n * Whether the button toggle group should be vertical.\n */\n this._vertical = false;\n }\n /**\n * Whether the toggle group is vertical.\n * @return {?}\n */\n get vertical() {\n return this._vertical;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n set vertical(value) {\n this._vertical = coerceBooleanProperty(value);\n }\n}\nMatButtonToggleGroupMultiple.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 */\nMatButtonToggleGroupMultiple.ctorParameters = () => [];\nMatButtonToggleGroupMultiple.propDecorators = {\n 'vertical': [{ type: Input },],\n};\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 */\nexport class MatButtonToggle {\n /**\n * @param {?} toggleGroup\n * @param {?} toggleGroupMultiple\n * @param {?} _changeDetectorRef\n * @param {?} _buttonToggleDispatcher\n * @param {?} _renderer\n * @param {?} _elementRef\n * @param {?} _focusMonitor\n */\n constructor(toggleGroup, toggleGroupMultiple, _changeDetectorRef, _buttonToggleDispatcher, _renderer, _elementRef, _focusMonitor) {\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 = () => { };\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((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 /**\n * Unique ID for the underlying `input` element.\n * @return {?}\n */\n get inputId() {\n return `${this.id}-input`;\n }\n /**\n * Whether the button is checked.\n * @return {?}\n */\n get checked() { return this._checked; }\n /**\n * @param {?} newCheckedState\n * @return {?}\n */\n set checked(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 /**\n * MatButtonToggleGroup reads this to assign its own value.\n * @return {?}\n */\n get value() {\n return this._value;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n set value(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 /**\n * Whether the button is disabled.\n * @return {?}\n */\n get disabled() {\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 disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n /**\n * @return {?}\n */\n ngOnInit() {\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 focus() {\n this._inputElement.nativeElement.focus();\n }\n /**\n * Toggle the state of the current button toggle.\n * @return {?}\n */\n _toggle() {\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 _onInputChange(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 let /** @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 _onInputClick(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 _emitChangeEvent() {\n let /** @type {?} */ event = new MatButtonToggleChange();\n event.source = this;\n event.value = this._value;\n this.change.emit(event);\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\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 _markForCheck() {\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}\nMatButtonToggle.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 */\nMatButtonToggle.ctorParameters = () => [\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];\nMatButtonToggle.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};\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';\nexport class MatButtonToggleModule {\n}\nMatButtonToggleModule.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 */\nMatButtonToggleModule.ctorParameters = () => [];\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":[],"mappings":"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"}