UNPKG

11.1 kBTypeScriptView Raw
1import { _AbstractConstructor } from '@angular/material/core';
2import { AfterContentInit } from '@angular/core';
3import { AfterViewInit } from '@angular/core';
4import { BooleanInput } from '@angular/cdk/coercion';
5import { CanDisableRipple } from '@angular/material/core';
6import { ChangeDetectorRef } from '@angular/core';
7import { _Constructor } from '@angular/material/core';
8import { ControlValueAccessor } from '@angular/forms';
9import { ElementRef } from '@angular/core';
10import { EventEmitter } from '@angular/core';
11import { FocusMonitor } from '@angular/cdk/a11y';
12import * as i0 from '@angular/core';
13import * as i2 from '@angular/material/core';
14import { InjectionToken } from '@angular/core';
15import { OnDestroy } from '@angular/core';
16import { OnInit } from '@angular/core';
17import { QueryList } from '@angular/core';
18
19declare namespace i1 {
20 export {
21 ToggleType,
22 MatButtonToggleAppearance,
23 MatButtonToggleDefaultOptions,
24 MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,
25 MAT_BUTTON_TOGGLE_GROUP,
26 MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,
27 MatButtonToggleChange,
28 MatButtonToggleGroup,
29 MatButtonToggle
30 }
31}
32
33/**
34 * Injection token that can be used to configure the
35 * default options for all button toggles within an app.
36 */
37export declare const MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS: InjectionToken<MatButtonToggleDefaultOptions>;
38
39/**
40 * Injection token that can be used to reference instances of `MatButtonToggleGroup`.
41 * It serves as alternative token to the actual `MatButtonToggleGroup` class which
42 * could cause unnecessary retention of the class and its component metadata.
43 */
44export declare const MAT_BUTTON_TOGGLE_GROUP: InjectionToken<MatButtonToggleGroup>;
45
46/**
47 * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.
48 * This allows it to support [(ngModel)].
49 * @docs-private
50 */
51export declare const MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any;
52
53/** Single button inside of a toggle group. */
54export declare class MatButtonToggle extends _MatButtonToggleBase implements OnInit, AfterViewInit, CanDisableRipple, OnDestroy {
55 private _changeDetectorRef;
56 private _elementRef;
57 private _focusMonitor;
58 private _isSingleSelector;
59 private _checked;
60 /**
61 * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will
62 * take precedence so this may be omitted.
63 */
64 ariaLabel: string;
65 /**
66 * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element
67 */
68 ariaLabelledby: string | null;
69 /** Underlying native `button` element. */
70 _buttonElement: ElementRef<HTMLButtonElement>;
71 /** The parent button toggle group (exclusive selection). Optional. */
72 buttonToggleGroup: MatButtonToggleGroup;
73 /** Unique ID for the underlying `button` element. */
74 get buttonId(): string;
75 /** The unique ID for this button toggle. */
76 id: string;
77 /** HTML's 'name' attribute used to group radios for unique selection. */
78 name: string;
79 /** MatButtonToggleGroup reads this to assign its own value. */
80 value: any;
81 /** Tabindex for the toggle. */
82 tabIndex: number | null;
83 /** The appearance style of the button. */
84 get appearance(): MatButtonToggleAppearance;
85 set appearance(value: MatButtonToggleAppearance);
86 private _appearance;
87 /** Whether the button is checked. */
88 get checked(): boolean;
89 set checked(value: BooleanInput);
90 /** Whether the button is disabled. */
91 get disabled(): boolean;
92 set disabled(value: BooleanInput);
93 private _disabled;
94 /** Event emitted when the group value changes. */
95 readonly change: EventEmitter<MatButtonToggleChange>;
96 constructor(toggleGroup: MatButtonToggleGroup, _changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLElement>, _focusMonitor: FocusMonitor, defaultTabIndex: string, defaultOptions?: MatButtonToggleDefaultOptions);
97 ngOnInit(): void;
98 ngAfterViewInit(): void;
99 ngOnDestroy(): void;
100 /** Focuses the button. */
101 focus(options?: FocusOptions): void;
102 /** Checks the button toggle due to an interaction with the underlying native button. */
103 _onButtonClick(): void;
104 /**
105 * Marks the button toggle as needing checking for change detection.
106 * This method is exposed because the parent button toggle group will directly
107 * update bound properties of the radio button.
108 */
109 _markForCheck(): void;
110 static ɵfac: i0.ɵɵFactoryDeclaration<MatButtonToggle, [{ optional: true; }, null, null, null, { attribute: "tabindex"; }, { optional: true; }]>;
111 static ɵcmp: i0.ɵɵComponentDeclaration<MatButtonToggle, "mat-button-toggle", ["matButtonToggle"], { "disableRipple": "disableRipple"; "ariaLabel": "aria-label"; "ariaLabelledby": "aria-labelledby"; "id": "id"; "name": "name"; "value": "value"; "tabIndex": "tabIndex"; "appearance": "appearance"; "checked": "checked"; "disabled": "disabled"; }, { "change": "change"; }, never, ["*"], false>;
112}
113
114/** Possible appearance styles for the button toggle. */
115export declare type MatButtonToggleAppearance = 'legacy' | 'standard';
116
117/** @docs-private */
118declare const _MatButtonToggleBase: _Constructor<CanDisableRipple> & _AbstractConstructor<CanDisableRipple> & {
119 new (): {};
120};
121
122/** Change event object emitted by MatButtonToggle. */
123export declare class MatButtonToggleChange {
124 /** The MatButtonToggle that emits the event. */
125 source: MatButtonToggle;
126 /** The value assigned to the MatButtonToggle. */
127 value: any;
128 constructor(
129 /** The MatButtonToggle that emits the event. */
130 source: MatButtonToggle,
131 /** The value assigned to the MatButtonToggle. */
132 value: any);
133}
134
135/**
136 * Represents the default options for the button toggle that can be configured
137 * using the `MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS` injection token.
138 */
139export declare interface MatButtonToggleDefaultOptions {
140 /**
141 * Default appearance to be used by button toggles. Can be overridden by explicitly
142 * setting an appearance on a button toggle or group.
143 */
144 appearance?: MatButtonToggleAppearance;
145}
146
147/** Exclusive selection button toggle group that behaves like a radio-button group. */
148export declare class MatButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {
149 private _changeDetector;
150 private _vertical;
151 private _multiple;
152 private _disabled;
153 private _selectionModel;
154 /**
155 * Reference to the raw value that the consumer tried to assign. The real
156 * value will exclude any values from this one that don't correspond to a
157 * toggle. Useful for the cases where the value is assigned before the toggles
158 * have been initialized or at the same that they're being swapped out.
159 */
160 private _rawValue;
161 /**
162 * The method to be called in order to update ngModel.
163 * Now `ngModel` binding is not supported in multiple selection mode.
164 */
165 _controlValueAccessorChangeFn: (value: any) => void;
166 /** onTouch function registered via registerOnTouch (ControlValueAccessor). */
167 _onTouched: () => any;
168 /** Child button toggle buttons. */
169 _buttonToggles: QueryList<MatButtonToggle>;
170 /** The appearance for all the buttons in the group. */
171 appearance: MatButtonToggleAppearance;
172 /** `name` attribute for the underlying `input` element. */
173 get name(): string;
174 set name(value: string);
175 private _name;
176 /** Whether the toggle group is vertical. */
177 get vertical(): boolean;
178 set vertical(value: BooleanInput);
179 /** Value of the toggle group. */
180 get value(): any;
181 set value(newValue: any);
182 /**
183 * Event that emits whenever the value of the group changes.
184 * Used to facilitate two-way data binding.
185 * @docs-private
186 */
187 readonly valueChange: EventEmitter<any>;
188 /** Selected button toggles in the group. */
189 get selected(): MatButtonToggle | MatButtonToggle[];
190 /** Whether multiple button toggles can be selected. */
191 get multiple(): boolean;
192 set multiple(value: BooleanInput);
193 /** Whether multiple button toggle group is disabled. */
194 get disabled(): boolean;
195 set disabled(value: BooleanInput);
196 /** Event emitted when the group's value changes. */
197 readonly change: EventEmitter<MatButtonToggleChange>;
198 constructor(_changeDetector: ChangeDetectorRef, defaultOptions?: MatButtonToggleDefaultOptions);
199 ngOnInit(): void;
200 ngAfterContentInit(): void;
201 /**
202 * Sets the model value. Implemented as part of ControlValueAccessor.
203 * @param value Value to be set to the model.
204 */
205 writeValue(value: any): void;
206 registerOnChange(fn: (value: any) => void): void;
207 registerOnTouched(fn: any): void;
208 setDisabledState(isDisabled: boolean): void;
209 /** Dispatch change event with current selection and group value. */
210 _emitChangeEvent(): void;
211 /**
212 * Syncs a button toggle's selected state with the model value.
213 * @param toggle Toggle to be synced.
214 * @param select Whether the toggle should be selected.
215 * @param isUserInput Whether the change was a result of a user interaction.
216 * @param deferEvents Whether to defer emitting the change events.
217 */
218 _syncButtonToggle(toggle: MatButtonToggle, select: boolean, isUserInput?: boolean, deferEvents?: boolean): void;
219 /** Checks whether a button toggle is selected. */
220 _isSelected(toggle: MatButtonToggle): boolean;
221 /** Determines whether a button toggle should be checked on init. */
222 _isPrechecked(toggle: MatButtonToggle): boolean;
223 /** Updates the selection state of the toggles in the group based on a value. */
224 private _setSelectionByValue;
225 /** Clears the selected toggles. */
226 private _clearSelection;
227 /** Selects a value if there's a toggle that corresponds to it. */
228 private _selectValue;
229 /** Syncs up the group's value with the model and emits the change event. */
230 private _updateModelValue;
231 static ɵfac: i0.ɵɵFactoryDeclaration<MatButtonToggleGroup, [null, { optional: true; }]>;
232 static ɵdir: i0.ɵɵDirectiveDeclaration<MatButtonToggleGroup, "mat-button-toggle-group", ["matButtonToggleGroup"], { "appearance": "appearance"; "name": "name"; "vertical": "vertical"; "value": "value"; "multiple": "multiple"; "disabled": "disabled"; }, { "valueChange": "valueChange"; "change": "change"; }, ["_buttonToggles"], never, false>;
233}
234
235export declare class MatButtonToggleModule {
236 static ɵfac: i0.ɵɵFactoryDeclaration<MatButtonToggleModule, never>;
237 static ɵmod: i0.ɵɵNgModuleDeclaration<MatButtonToggleModule, [typeof i1.MatButtonToggleGroup, typeof i1.MatButtonToggle], [typeof i2.MatCommonModule, typeof i2.MatRippleModule], [typeof i2.MatCommonModule, typeof i1.MatButtonToggleGroup, typeof i1.MatButtonToggle]>;
238 static ɵinj: i0.ɵɵInjectorDeclaration<MatButtonToggleModule>;
239}
240
241/**
242 * @deprecated No longer used.
243 * @breaking-change 11.0.0
244 */
245export declare type ToggleType = 'checkbox' | 'radio';
246
247export { }