From b071d64eec47081ccc2d390507c10b0ad7562238 Mon Sep 17 00:00:00 2001 From: Austin Date: Mon, 22 Jan 2018 11:51:34 -0600 Subject: [PATCH] chore(docs): add types to public and jsdoc cleanup (#7711) --- src/cdk/accordion/accordion-item.ts | 8 ++--- src/cdk/stepper/stepper.ts | 5 +-- src/cdk/table/table.ts | 2 +- src/lib/button-toggle/button-toggle.ts | 4 +-- src/lib/chips/chip-input.ts | 6 ++-- src/lib/chips/chip-list.ts | 19 ++++++---- src/lib/chips/chip.ts | 9 ++--- src/lib/datepicker/datepicker-input.ts | 11 +++--- src/lib/datepicker/datepicker.ts | 4 +-- src/lib/dialog/dialog-ref.ts | 2 +- src/lib/expansion/expansion-panel-header.ts | 8 ++--- src/lib/expansion/expansion-panel.ts | 6 ++-- src/lib/form-field/form-field.ts | 10 +++--- src/lib/grid-list/grid-list.ts | 8 ++--- src/lib/grid-list/grid-tile.ts | 4 +-- src/lib/input/autosize.ts | 4 +-- src/lib/input/input.ts | 40 ++++++++++++++------- src/lib/menu/menu-directive.ts | 9 ++--- src/lib/menu/menu-item.ts | 2 +- src/lib/menu/menu-trigger.ts | 8 ++--- src/lib/paginator/paginator-intl.ts | 6 ++-- src/lib/paginator/paginator.ts | 8 ++--- src/lib/progress-bar/progress-bar.ts | 4 +-- src/lib/select/select.ts | 29 +++++++++------ src/lib/sidenav/drawer.ts | 14 ++++---- src/lib/slide-toggle/slide-toggle.ts | 8 ++--- src/lib/slider/slider.ts | 22 ++++++------ src/lib/sort/sort.ts | 10 +++--- src/lib/stepper/step-header.ts | 16 ++++----- src/lib/stepper/stepper-intl.ts | 2 +- 30 files changed, 159 insertions(+), 129 deletions(-) diff --git a/src/cdk/accordion/accordion-item.ts b/src/cdk/accordion/accordion-item.ts index 65b6877046f..d6a8ff69b99 100644 --- a/src/cdk/accordion/accordion-item.ts +++ b/src/cdk/accordion/accordion-item.ts @@ -32,13 +32,13 @@ let nextId = 0; }) export class CdkAccordionItem implements OnDestroy { /** Event emitted every time the AccordionItem is closed. */ - @Output() closed = new EventEmitter(); + @Output() closed: EventEmitter = new EventEmitter(); /** Event emitted every time the AccordionItem is opened. */ - @Output() opened = new EventEmitter(); + @Output() opened: EventEmitter = new EventEmitter(); /** Event emitted when the AccordionItem is destroyed. */ - @Output() destroyed = new EventEmitter(); + @Output() destroyed: EventEmitter = new EventEmitter(); /** The unique AccordionItem id. */ - readonly id = `cdk-accordion-child-${nextId++}`; + readonly id: string = `cdk-accordion-child-${nextId++}`; /** Whether the AccordionItem is expanded. */ @Input() diff --git a/src/cdk/stepper/stepper.ts b/src/cdk/stepper/stepper.ts index 3d9a3f42905..f866477ae00 100644 --- a/src/cdk/stepper/stepper.ts +++ b/src/cdk/stepper/stepper.ts @@ -171,13 +171,14 @@ export class CdkStepper implements OnDestroy { /** The step that is selected. */ @Input() - get selected() { return this._steps.toArray()[this.selectedIndex]; } + get selected(): CdkStep { return this._steps.toArray()[this.selectedIndex]; } set selected(step: CdkStep) { this.selectedIndex = this._steps.toArray().indexOf(step); } /** Event emitted when the selected step has changed. */ - @Output() selectionChange = new EventEmitter(); + @Output() selectionChange: EventEmitter + = new EventEmitter(); /** The index of the step that the focus can be set. */ _focusIndex: number = 0; diff --git a/src/cdk/table/table.ts b/src/cdk/table/table.ts index 5ee7f516923..615fc917a29 100644 --- a/src/cdk/table/table.ts +++ b/src/cdk/table/table.ts @@ -171,7 +171,7 @@ export class CdkTable implements CollectionViewer, OnInit, AfterContentChecke * Stream containing the latest information on what rows are being displayed on screen. * Can be used by the data source to as a heuristic of what data should be provided. */ - viewChange = + viewChange: BehaviorSubject<{start: number, end: number}> = new BehaviorSubject<{start: number, end: number}>({start: 0, end: Number.MAX_VALUE}); // Placeholders within the table's template where the header and data rows will be inserted. diff --git a/src/lib/button-toggle/button-toggle.ts b/src/lib/button-toggle/button-toggle.ts index 61a57c240e0..e8d47cc97b4 100644 --- a/src/lib/button-toggle/button-toggle.ts +++ b/src/lib/button-toggle/button-toggle.ts @@ -115,7 +115,7 @@ export class MatButtonToggleGroup extends _MatButtonToggleGroupMixinBase return this._vertical; } - set vertical(value) { + set vertical(value: boolean) { this._vertical = coerceBooleanProperty(value); } @@ -141,7 +141,7 @@ export class MatButtonToggleGroup extends _MatButtonToggleGroupMixinBase /** Whether the toggle group is selected. */ @Input() - get selected() { + get selected(): MatButtonToggle | null { return this._selected; } diff --git a/src/lib/chips/chip-input.ts b/src/lib/chips/chip-input.ts index 7bd9cae2bd0..dd6062b796a 100644 --- a/src/lib/chips/chip-input.ts +++ b/src/lib/chips/chip-input.ts @@ -53,7 +53,7 @@ export class MatChipInput { * Whether or not the chipEnd event will be emitted when the input is blurred. */ @Input('matChipInputAddOnBlur') - get addOnBlur() { return this._addOnBlur; } + get addOnBlur(): boolean { return this._addOnBlur; } set addOnBlur(value: boolean) { this._addOnBlur = coerceBooleanProperty(value); } _addOnBlur: boolean = false; @@ -67,7 +67,7 @@ export class MatChipInput { /** Emitted when a chip is to be added. */ @Output('matChipInputTokenEnd') - chipEnd = new EventEmitter(); + chipEnd: EventEmitter = new EventEmitter(); /** The input's placeholder text. */ @Input() placeholder: string = ''; @@ -127,5 +127,5 @@ export class MatChipInput { this._chipList.stateChanges.next(); } - focus() { this._inputElement.focus(); } + focus(): void { this._inputElement.focus(); } } diff --git a/src/lib/chips/chip-list.ts b/src/lib/chips/chip-list.ts index 2f3b4cd8966..7dd69aff23e 100644 --- a/src/lib/chips/chip-list.ts +++ b/src/lib/chips/chip-list.ts @@ -227,15 +227,15 @@ export class MatChipList extends _MatChipListMixinBase implements MatFormFieldCo this._id = value; this.stateChanges.next(); } - get id() { return this._id || this._uid; } + get id(): string { return this._id || this._uid; } /** Required for FormFieldControl. Whether the chip list is required. */ @Input() - set required(value: any) { + set required(value: boolean) { this._required = coerceBooleanProperty(value); this.stateChanges.next(); } - get required() { + get required(): boolean { return this._required; } @@ -245,7 +245,7 @@ export class MatChipList extends _MatChipListMixinBase implements MatFormFieldCo this._placeholder = value; this.stateChanges.next(); } - get placeholder() { + get placeholder(): string { return this._chipInput ? this._chipInput.placeholder : this._placeholder; } @@ -260,6 +260,7 @@ export class MatChipList extends _MatChipListMixinBase implements MatFormFieldCo return (!this._chipInput || this._chipInput.empty) && this.chips.length === 0; } + /** @docs-private */ get shouldLabelFloat(): boolean { return !this.empty || this.focused; } @@ -315,7 +316,7 @@ export class MatChipList extends _MatChipListMixinBase implements MatFormFieldCo * to facilitate the two-way binding for the `value` input. * @docs-private */ - @Output() valueChange = new EventEmitter(); + @Output() valueChange: EventEmitter = new EventEmitter(); /** The chip components contained within this chip list. */ @ContentChildren(MatChip) chips: QueryList; @@ -389,7 +390,10 @@ export class MatChipList extends _MatChipListMixinBase implements MatFormFieldCo this._chipInput = inputElement; } - // Implemented as part of MatFormFieldControl. + /** + * Implemented as part of MatFormFieldControl. + * @docs-private + */ setDescribedByIds(ids: string[]) { this._ariaDescribedby = ids.join(' '); } // Implemented as part of ControlValueAccessor @@ -416,6 +420,7 @@ export class MatChipList extends _MatChipListMixinBase implements MatFormFieldCo this.stateChanges.next(); } + /** @docs-private */ onContainerClick() { this.focus(); } @@ -424,7 +429,7 @@ export class MatChipList extends _MatChipListMixinBase implements MatFormFieldCo * Focuses the the first non-disabled chip in this chip list, or the associated input when there * are no eligible chips. */ - focus() { + focus(): void { // TODO: ARIA says this should focus the first `selected` chip if any are selected. // Focus on first element if there's no chipInput inside chip-list if (this._chipInput && this._chipInput.focused) { diff --git a/src/lib/chips/chip.ts b/src/lib/chips/chip.ts index 76c73b3afb1..17714b702c5 100644 --- a/src/lib/chips/chip.ts +++ b/src/lib/chips/chip.ts @@ -151,7 +151,8 @@ export class MatChip extends _MatChipMixinBase implements FocusableOption, OnDes _onBlur = new Subject(); /** Emitted when the chip is selected or deselected. */ - @Output() selectionChange = new EventEmitter(); + @Output() selectionChange: EventEmitter + = new EventEmitter(); /** Emitted when the chip is destroyed. */ @Output() destroyed = new EventEmitter(); @@ -160,16 +161,16 @@ export class MatChip extends _MatChipMixinBase implements FocusableOption, OnDes * Emitted when the chip is destroyed. * @deprecated Use 'destroyed' instead. */ - @Output() destroy = this.destroyed; + @Output() destroy: EventEmitter = this.destroyed; /** Emitted when a chip is to be removed. */ - @Output() removed = new EventEmitter(); + @Output() removed: EventEmitter = new EventEmitter(); /** * Emitted when a chip is to be removed. * @deprecated Use `removed` instead. */ - @Output('remove') onRemove = this.removed; + @Output('remove') onRemove: EventEmitter = this.removed; get ariaSelected(): string | null { return this.selectable ? this.selected.toString() : null; diff --git a/src/lib/datepicker/datepicker-input.ts b/src/lib/datepicker/datepicker-input.ts index 4698a0d9b2c..3db81e2b8e3 100644 --- a/src/lib/datepicker/datepicker-input.ts +++ b/src/lib/datepicker/datepicker-input.ts @@ -155,8 +155,8 @@ export class MatDatepickerInput implements AfterContentInit, ControlValueAcce /** Whether the datepicker-input is disabled. */ @Input() - get disabled() { return !!this._disabled; } - set disabled(value: any) { + get disabled(): boolean { return !!this._disabled; } + set disabled(value: boolean) { const newValue = coerceBooleanProperty(value); if (this._disabled !== newValue) { @@ -167,10 +167,12 @@ export class MatDatepickerInput implements AfterContentInit, ControlValueAcce private _disabled: boolean; /** Emits when a `change` event is fired on this ``. */ - @Output() dateChange = new EventEmitter>(); + @Output() dateChange: EventEmitter> + = new EventEmitter>(); /** Emits when an `input` event is fired on this ``. */ - @Output() dateInput = new EventEmitter>(); + @Output() dateInput: EventEmitter> + = new EventEmitter>(); /** Emits when the value changes (either due to user input or programmatic change). */ _valueChange = new EventEmitter(); @@ -263,6 +265,7 @@ export class MatDatepickerInput implements AfterContentInit, ControlValueAcce this._disabledChange.complete(); } + /** @docs-private */ registerOnValidatorChange(fn: () => void): void { this._validatorOnChange = fn; } diff --git a/src/lib/datepicker/datepicker.ts b/src/lib/datepicker/datepicker.ts index bf98225b217..995f326bbc8 100644 --- a/src/lib/datepicker/datepicker.ts +++ b/src/lib/datepicker/datepicker.ts @@ -163,7 +163,7 @@ export class MatDatepicker implements OnDestroy { * Emits new selected date when selected date changes. * @deprecated Switch to the `dateChange` and `dateInput` binding on the input element. */ - @Output() selectedChanged = new EventEmitter(); + @Output() selectedChanged: EventEmitter = new EventEmitter(); /** Classes to be passed to the date picker panel. Supports the same syntax as `ngClass`. */ @Input() panelClass: string | string[]; @@ -181,7 +181,7 @@ export class MatDatepicker implements OnDestroy { private _opened = false; /** The id for the datepicker calendar. */ - id = `mat-datepicker-${datepickerUid++}`; + id: string = `mat-datepicker-${datepickerUid++}`; /** The currently selected date. */ get _selected(): D | null { return this._validSelected; } diff --git a/src/lib/dialog/dialog-ref.ts b/src/lib/dialog/dialog-ref.ts index b07addf2c72..2a54119369c 100644 --- a/src/lib/dialog/dialog-ref.ts +++ b/src/lib/dialog/dialog-ref.ts @@ -31,7 +31,7 @@ export class MatDialogRef { componentInstance: T; /** Whether the user is allowed to close the dialog. */ - disableClose = this._containerInstance._config.disableClose; + disableClose: boolean | undefined = this._containerInstance._config.disableClose; /** Subject for notifying the user that the dialog has finished opening. */ private _afterOpen = new Subject(); diff --git a/src/lib/expansion/expansion-panel-header.ts b/src/lib/expansion/expansion-panel-header.ts index b68cf534883..ffd5306dfeb 100644 --- a/src/lib/expansion/expansion-panel-header.ts +++ b/src/lib/expansion/expansion-panel-header.ts @@ -27,11 +27,9 @@ import {matExpansionAnimations} from './expansion-animations'; /** - * component. + * * * This component corresponds to the header element of an . - * - * Please refer to README.md for examples on how to use it. */ @Component({ moduleId: module.id, @@ -139,7 +137,7 @@ export class MatExpansionPanelHeader implements OnDestroy { } /** - * directive. + * * * This direction is to be used inside of the MatExpansionPanelHeader component. */ @@ -152,7 +150,7 @@ export class MatExpansionPanelHeader implements OnDestroy { export class MatExpansionPanelDescription {} /** - * directive. + * * * This direction is to be used inside of the MatExpansionPanelHeader component. */ diff --git a/src/lib/expansion/expansion-panel.ts b/src/lib/expansion/expansion-panel.ts index 502eb63d0d5..1a3f92f5bd5 100644 --- a/src/lib/expansion/expansion-panel.ts +++ b/src/lib/expansion/expansion-panel.ts @@ -58,12 +58,10 @@ export const _MatExpansionPanelMixinBase = mixinDisabled(MatExpansionPanelBase); export type MatExpansionPanelState = 'expanded' | 'collapsed'; /** - * component. + * * * This component can be used as a single element to show expandable content, or as one of - * multiple children of an element with the MatAccordion directive attached. - * - * Please refer to README.md for examples on how to use it. + * multiple children of an element with the MdAccordion directive attached. */ @Component({ moduleId: module.id, diff --git a/src/lib/form-field/form-field.ts b/src/lib/form-field/form-field.ts index 30b968d93ed..e84da2d09ad 100644 --- a/src/lib/form-field/form-field.ts +++ b/src/lib/form-field/form-field.ts @@ -96,8 +96,8 @@ export class MatFormField implements AfterViewInit, AfterContentInit, AfterConte /** Whether the required marker should be hidden. */ @Input() - get hideRequiredMarker() { return this._hideRequiredMarker; } - set hideRequiredMarker(value: any) { + get hideRequiredMarker(): boolean { return this._hideRequiredMarker; } + set hideRequiredMarker(value: boolean) { this._hideRequiredMarker = coerceBooleanProperty(value); } private _hideRequiredMarker: boolean; @@ -118,7 +118,7 @@ export class MatFormField implements AfterViewInit, AfterContentInit, AfterConte /** Text for the form field hint. */ @Input() - get hintLabel() { return this._hintLabel; } + get hintLabel(): string { return this._hintLabel; } set hintLabel(value: string) { this._hintLabel = value; this._processHints(); @@ -133,12 +133,12 @@ export class MatFormField implements AfterViewInit, AfterContentInit, AfterConte * @deprecated Use floatLabel instead. */ @Input() - get floatPlaceholder() { return this._floatLabel; } + get floatPlaceholder(): FloatLabelType { return this._floatLabel; } set floatPlaceholder(value: FloatLabelType) { this.floatLabel = value; } /** Whether the label should always float, never float or float as the user types. */ @Input() - get floatLabel() { return this._floatLabel; } + get floatLabel(): FloatLabelType { return this._floatLabel; } set floatLabel(value: FloatLabelType) { if (value !== this._floatLabel) { this._floatLabel = value || this._labelOptions.float || 'auto'; diff --git a/src/lib/grid-list/grid-list.ts b/src/lib/grid-list/grid-list.ts index e99d54ef621..1b609548ea7 100644 --- a/src/lib/grid-list/grid-list.ts +++ b/src/lib/grid-list/grid-list.ts @@ -72,13 +72,13 @@ export class MatGridList implements OnInit, AfterContentChecked { /** Amount of columns in the grid list. */ @Input() - get cols() { return this._cols; } - set cols(value: any) { this._cols = coerceToNumber(value); } + get cols(): number { return this._cols; } + set cols(value: number) { this._cols = coerceToNumber(value); } /** Size of the grid list's gutter in pixels. */ @Input() - get gutterSize() { return this._gutter; } - set gutterSize(value: any) { this._gutter = coerceToString(value); } + get gutterSize(): string { return this._gutter; } + set gutterSize(value: string) { this._gutter = coerceToString(value); } /** Set internal representation of row height from the user-provided value. */ @Input() diff --git a/src/lib/grid-list/grid-tile.ts b/src/lib/grid-list/grid-tile.ts index 6d79b5a177c..50add7a6278 100644 --- a/src/lib/grid-list/grid-tile.ts +++ b/src/lib/grid-list/grid-tile.ts @@ -42,12 +42,12 @@ export class MatGridTile { /** Amount of rows that the grid tile takes up. */ @Input() get rowspan(): number { return this._rowspan; } - set rowspan(value) { this._rowspan = coerceToNumber(value); } + set rowspan(value: number) { this._rowspan = coerceToNumber(value); } /** Amount of columns that the grid tile takes up. */ @Input() get colspan(): number { return this._colspan; } - set colspan(value) { this._colspan = coerceToNumber(value); } + set colspan(value: number) { this._colspan = coerceToNumber(value); } /** * Sets the style of the grid-tile element. Needs to be set manually to avoid diff --git a/src/lib/input/autosize.ts b/src/lib/input/autosize.ts index 0ff4581634c..8ae35e4337b 100644 --- a/src/lib/input/autosize.ts +++ b/src/lib/input/autosize.ts @@ -45,15 +45,15 @@ export class MatTextareaAutosize implements AfterViewInit, DoCheck, OnDestroy { /** Minimum amount of rows in the textarea. */ @Input('matAutosizeMinRows') - get minRows() { return this._minRows; } set minRows(value: number) { this._minRows = value; this._setMinHeight(); } + get minRows(): number { return this._minRows; } /** Maximum amount of rows in the textarea. */ @Input('matAutosizeMaxRows') - get maxRows() { return this._maxRows; } + get maxRows(): number { return this._maxRows; } set maxRows(value: number) { this._maxRows = value; this._setMaxHeight(); diff --git a/src/lib/input/input.ts b/src/lib/input/input.ts index c9febae9a78..f2c93ca23e0 100644 --- a/src/lib/input/input.ts +++ b/src/lib/input/input.ts @@ -107,8 +107,13 @@ export class MatInput extends _MatInputMixinBase implements MatFormFieldControl< /** Whether the element is disabled. */ @Input() - get disabled() { return this.ngControl ? this.ngControl.disabled : this._disabled; } - set disabled(value: any) { + get disabled(): boolean { + if (this.ngControl && this.ngControl.disabled !== null) { + return this.ngControl.disabled; + } + return this._disabled; + } + set disabled(value: boolean) { this._disabled = coerceBooleanProperty(value); // Browsers may not fire the blur event if the input is disabled too quickly. @@ -121,7 +126,7 @@ export class MatInput extends _MatInputMixinBase implements MatFormFieldControl< /** Unique id of the element. */ @Input() - get id() { return this._id; } + get id(): string { return this._id; } set id(value: string) { this._id = value || this._uid; } /** Placeholder attribute of the element. */ @@ -129,12 +134,12 @@ export class MatInput extends _MatInputMixinBase implements MatFormFieldControl< /** Whether the element is required. */ @Input() - get required() { return this._required; } - set required(value: any) { this._required = coerceBooleanProperty(value); } + get required(): boolean { return this._required; } + set required(value: boolean) { this._required = coerceBooleanProperty(value); } /** Input type of the element. */ @Input() - get type() { return this._type; } + get type(): string { return this._type; } set type(value: string) { this._type = value || 'text'; this._validateType(); @@ -152,8 +157,8 @@ export class MatInput extends _MatInputMixinBase implements MatFormFieldControl< /** The input element's value. */ @Input() - get value(): any { return this._inputValueAccessor.value; } - set value(value: any) { + get value(): string { return this._inputValueAccessor.value; } + set value(value: string) { if (value !== this.value) { this._inputValueAccessor.value = value; this.stateChanges.next(); @@ -162,8 +167,8 @@ export class MatInput extends _MatInputMixinBase implements MatFormFieldControl< /** Whether the element is readonly. */ @Input() - get readonly() { return this._readonly; } - set readonly(value: any) { this._readonly = coerceBooleanProperty(value); } + get readonly(): boolean { return this._readonly; } + set readonly(value: boolean) { this._readonly = coerceBooleanProperty(value); } protected _neverEmptyInputTypes = [ 'date', @@ -296,12 +301,21 @@ export class MatInput extends _MatInputMixinBase implements MatFormFieldControl< return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput(); } - // Implemented as part of MatFormFieldControl. + /** + * Implemented as part of MatFormFieldControl. + * @docs-private + */ get shouldLabelFloat(): boolean { return this.focused || !this.empty; } - // Implemented as part of MatFormFieldControl. + /** + * Implemented as part of MatFormFieldControl. + * @docs-private + */ setDescribedByIds(ids: string[]) { this._ariaDescribedby = ids.join(' '); } - // Implemented as part of MatFormFieldControl. + /** + * Implemented as part of MatFormFieldControl. + * @docs-private + */ onContainerClick() { this.focus(); } } diff --git a/src/lib/menu/menu-directive.ts b/src/lib/menu/menu-directive.ts index 8452087298e..d56823bd7de 100644 --- a/src/lib/menu/menu-directive.ts +++ b/src/lib/menu/menu-directive.ts @@ -102,7 +102,7 @@ export class MatMenu implements AfterContentInit, MatMenuPanel, OnDestroy { /** Position of the menu in the X axis. */ @Input() - get xPosition() { return this._xPosition; } + get xPosition(): MenuPositionX { return this._xPosition; } set xPosition(value: MenuPositionX) { if (value !== 'before' && value !== 'after') { throwMatMenuInvalidPositionX(); @@ -113,7 +113,7 @@ export class MatMenu implements AfterContentInit, MatMenuPanel, OnDestroy { /** Position of the menu in the Y axis. */ @Input() - get yPosition() { return this._yPosition; } + get yPosition(): MenuPositionY { return this._yPosition; } set yPosition(value: MenuPositionY) { if (value !== 'above' && value !== 'below') { throwMatMenuInvalidPositionY(); @@ -168,7 +168,8 @@ export class MatMenu implements AfterContentInit, MatMenuPanel, OnDestroy { get classList(): string { return this.panelClass; } /** Event emitted when the menu is closed. */ - @Output() closed = new EventEmitter(); + @Output() closed: EventEmitter + = new EventEmitter(); /** * Event emitted when the menu is closed. @@ -231,7 +232,7 @@ export class MatMenu implements AfterContentInit, MatMenuPanel, OnDestroy { * Focus the first item in the menu. This method is used by the menu trigger * to focus the first item when the menu is opened by the ENTER key. */ - focusFirstItem() { + focusFirstItem(): void { this._keyManager.setFirstItemActive(); } diff --git a/src/lib/menu/menu-item.ts b/src/lib/menu/menu-item.ts index 20ca05dd323..1049052772b 100644 --- a/src/lib/menu/menu-item.ts +++ b/src/lib/menu/menu-item.ts @@ -56,7 +56,7 @@ export class MatMenuItem extends _MatMenuItemMixinBase implements FocusableOption, CanDisable, CanDisableRipple, OnDestroy { /** Stream that emits when the menu item is hovered. */ - _hovered: Subject = new Subject(); + _hovered: Subject = new Subject(); /** Whether the menu item is highlighted. */ _highlighted: boolean = false; diff --git a/src/lib/menu/menu-trigger.ts b/src/lib/menu/menu-trigger.ts index 3a82acb7af4..e277b51cf77 100644 --- a/src/lib/menu/menu-trigger.ts +++ b/src/lib/menu/menu-trigger.ts @@ -107,22 +107,22 @@ export class MatMenuTrigger implements AfterContentInit, OnDestroy { @Input('matMenuTriggerFor') menu: MatMenuPanel; /** Event emitted when the associated menu is opened. */ - @Output() menuOpened = new EventEmitter(); + @Output() menuOpened: EventEmitter = new EventEmitter(); /** * Event emitted when the associated menu is opened. * @deprecated Switch to `menuOpened` instead */ - @Output() onMenuOpen = this.menuOpened; + @Output() onMenuOpen: EventEmitter = this.menuOpened; /** Event emitted when the associated menu is closed. */ - @Output() menuClosed = new EventEmitter(); + @Output() menuClosed: EventEmitter = new EventEmitter(); /** * Event emitted when the associated menu is closed. * @deprecated Switch to `menuClosed` instead */ - @Output() onMenuClose = this.menuClosed; + @Output() onMenuClose: EventEmitter = this.menuClosed; constructor(private _overlay: Overlay, private _element: ElementRef, diff --git a/src/lib/paginator/paginator-intl.ts b/src/lib/paginator/paginator-intl.ts index 60c46ddf89f..d3d15721219 100644 --- a/src/lib/paginator/paginator-intl.ts +++ b/src/lib/paginator/paginator-intl.ts @@ -22,13 +22,13 @@ export class MatPaginatorIntl { changes: Subject = new Subject(); /** A label for the page size selector. */ - itemsPerPageLabel = 'Items per page:'; + itemsPerPageLabel: string = 'Items per page:'; /** A label for the button that increments the current page. */ - nextPageLabel = 'Next page'; + nextPageLabel: string = 'Next page'; /** A label for the button that decrements the current page. */ - previousPageLabel = 'Previous page'; + previousPageLabel: string = 'Previous page'; /** A label for the range of items within the current page and the length of the whole list. */ getRangeLabel = (page: number, pageSize: number, length: number) => { diff --git a/src/lib/paginator/paginator.ts b/src/lib/paginator/paginator.ts index 3739a5614fa..a986e4112b7 100644 --- a/src/lib/paginator/paginator.ts +++ b/src/lib/paginator/paginator.ts @@ -118,26 +118,26 @@ export class MatPaginator implements OnInit, OnDestroy { } /** Advances to the next page if it exists. */ - nextPage() { + nextPage(): void { if (!this.hasNextPage()) { return; } this.pageIndex++; this._emitPageEvent(); } /** Move back to the previous page if it exists. */ - previousPage() { + previousPage(): void { if (!this.hasPreviousPage()) { return; } this.pageIndex--; this._emitPageEvent(); } /** Whether there is a previous page. */ - hasPreviousPage() { + hasPreviousPage(): boolean { return this.pageIndex >= 1 && this.pageSize != 0; } /** Whether there is a next page. */ - hasNextPage() { + hasNextPage(): boolean { const numberOfPages = Math.ceil(this.length / this.pageSize) - 1; return this.pageIndex < numberOfPages && this.pageSize != 0; } diff --git a/src/lib/progress-bar/progress-bar.ts b/src/lib/progress-bar/progress-bar.ts index 1f6d1e89ed6..f4530132621 100644 --- a/src/lib/progress-bar/progress-bar.ts +++ b/src/lib/progress-bar/progress-bar.ts @@ -44,14 +44,14 @@ export class MatProgressBar { /** Value of the progressbar. Defaults to zero. Mirrored to aria-valuenow. */ @Input() - get value() { return this._value; } + get value(): number { return this._value; } set value(v: number) { this._value = clamp(v || 0); } private _bufferValue: number = 0; /** Buffer value of the progress bar. Defaults to zero. */ @Input() - get bufferValue() { return this._bufferValue; } + get bufferValue(): number { return this._bufferValue; } set bufferValue(v: number) { this._bufferValue = clamp(v || 0); } /** diff --git a/src/lib/select/select.ts b/src/lib/select/select.ts index c67f17be4c9..10172d4cdc4 100644 --- a/src/lib/select/select.ts +++ b/src/lib/select/select.ts @@ -326,7 +326,7 @@ export class MatSelect extends _MatSelectMixinBase implements AfterContentInit, /** Placeholder to be shown if no value has been selected. */ @Input() - get placeholder() { return this._placeholder; } + get placeholder(): string { return this._placeholder; } set placeholder(value: string) { this._placeholder = value; this.stateChanges.next(); @@ -334,8 +334,8 @@ export class MatSelect extends _MatSelectMixinBase implements AfterContentInit, /** Whether the component is required. */ @Input() - get required() { return this._required; } - set required(value: any) { + get required(): boolean { return this._required; } + set required(value: boolean) { this._required = coerceBooleanProperty(value); this.stateChanges.next(); } @@ -371,7 +371,7 @@ export class MatSelect extends _MatSelectMixinBase implements AfterContentInit, /** Value of the select control. */ @Input() - get value() { return this._value; } + get value(): any { return this._value; } set value(newValue: any) { if (newValue !== this._value) { this.writeValue(newValue); @@ -391,7 +391,7 @@ export class MatSelect extends _MatSelectMixinBase implements AfterContentInit, /** Unique id of the element. */ @Input() - get id() { return this._id; } + get id(): string { return this._id; } set id(value: string) { this._id = value || this._uid; this.stateChanges.next(); @@ -450,7 +450,7 @@ export class MatSelect extends _MatSelectMixinBase implements AfterContentInit, * to facilitate the two-way binding for the `value` input. * @docs-private */ - @Output() valueChange = new EventEmitter(); + @Output() valueChange: EventEmitter = new EventEmitter(); constructor( private _viewportRuler: ViewportRuler, @@ -1201,19 +1201,28 @@ export class MatSelect extends _MatSelectMixinBase implements AfterContentInit, return this._triggerFontSize * SELECT_ITEM_HEIGHT_EM; } - // Implemented as part of MatFormFieldControl. + /** + * Implemented as part of MatFormFieldControl. + * @docs-private + */ setDescribedByIds(ids: string[]) { this._ariaDescribedby = ids.join(' '); } - // Implemented as part of MatFormFieldControl. + /** + * Implemented as part of MatFormFieldControl. + * @docs-private + */ onContainerClick() { this.focus(); this.open(); } - // Implemented as part of MatFormFieldControl. - get shouldLabelFloat(): boolean { + /** + * Implemented as part of MatFormFieldControl. + * @docs-private + */ + get shouldPlaceholderFloat(): boolean { return this._panelOpen || !this.empty; } } diff --git a/src/lib/sidenav/drawer.ts b/src/lib/sidenav/drawer.ts index ecc41553533..752b4d293f1 100644 --- a/src/lib/sidenav/drawer.ts +++ b/src/lib/sidenav/drawer.ts @@ -139,7 +139,7 @@ export class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestr /** The side that the drawer is attached to. */ @Input() get position(): 'start' | 'end' { return this._position; } - set position(value) { + set position(value: 'start' | 'end') { // Make sure we have a valid value. value = value === 'end' ? 'end' : 'start'; if (value != this._position) { @@ -153,12 +153,12 @@ export class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestr /** @deprecated */ @Input() get align(): 'start' | 'end' { return this.position; } - set align(value) { this.position = value; } + set align(value: 'start' | 'end') { this.position = value; } /** Mode of the drawer; one of 'over', 'push' or 'side'. */ @Input() get mode(): 'over' | 'push' | 'side' { return this._mode; } - set mode(value) { + set mode(value: 'over' | 'push' | 'side') { this._mode = value; this._modeChanged.next(); } @@ -221,19 +221,19 @@ export class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestr * Event emitted when the drawer is fully opened. * @deprecated Use `opened` instead. */ - @Output('open') onOpen = this._openedStream; + @Output('open') onOpen: Observable = this._openedStream; /** * Event emitted when the drawer is fully closed. * @deprecated Use `closed` instead. */ - @Output('close') onClose = this._closedStream; + @Output('close') onClose: Observable = this._closedStream; /** Event emitted when the drawer's position changes. */ - @Output('positionChanged') onPositionChanged = new EventEmitter(); + @Output('positionChanged') onPositionChanged: EventEmitter = new EventEmitter(); /** @deprecated */ - @Output('align-changed') onAlignChanged = new EventEmitter(); + @Output('align-changed') onAlignChanged: EventEmitter = new EventEmitter(); /** * An observable that emits when the drawer mode changes. This is used by the drawer container to diff --git a/src/lib/slide-toggle/slide-toggle.ts b/src/lib/slide-toggle/slide-toggle.ts index a661df7177a..4d2f6ee382d 100644 --- a/src/lib/slide-toggle/slide-toggle.ts +++ b/src/lib/slide-toggle/slide-toggle.ts @@ -221,12 +221,12 @@ export class MatSlideToggle extends _MatSlideToggleMixinBase implements OnDestro } /** Focuses the slide-toggle. */ - focus() { + focus(): void { this._focusMonitor.focusVia(this._inputElement.nativeElement, 'keyboard'); } /** Toggles the checked state of the slide-toggle. */ - toggle() { + toggle(): void { this.checked = !this.checked; } @@ -326,7 +326,7 @@ class SlideToggleRenderer { } /** Initializes the drag of the slide-toggle. */ - startThumbDrag(checked: boolean) { + startThumbDrag(checked: boolean): void { if (this.dragging) { return; } this._thumbBarWidth = this._thumbBarEl.clientWidth - this._thumbEl.clientWidth; @@ -350,7 +350,7 @@ class SlideToggleRenderer { } /** Updates the thumb containers position from the specified distance. */ - updateThumbPosition(distance: number) { + updateThumbPosition(distance: number): void { this.dragPercentage = this._getDragPercentage(distance); // Calculate the moved distance based on the thumb bar width. let dragX = (this.dragPercentage / 100) * this._thumbBarWidth; diff --git a/src/lib/slider/slider.ts b/src/lib/slider/slider.ts index 9f6f2825874..3fe3471b27a 100644 --- a/src/lib/slider/slider.ts +++ b/src/lib/slider/slider.ts @@ -138,15 +138,15 @@ export class MatSlider extends _MatSliderMixinBase implements ControlValueAccessor, OnDestroy, CanDisable, CanColor, OnInit, HasTabIndex { /** Whether the slider is inverted. */ @Input() - get invert() { return this._invert; } - set invert(value: any) { + get invert(): boolean { return this._invert; } + set invert(value: boolean) { this._invert = coerceBooleanProperty(value); } private _invert = false; /** The maximum value that the slider can have. */ @Input() - get max() { return this._max; } + get max(): number { return this._max; } set max(v: number) { this._max = coerceNumberProperty(v, this._max); this._percent = this._calculatePercentage(this._value); @@ -158,7 +158,7 @@ export class MatSlider extends _MatSliderMixinBase /** The minimum value that the slider can have. */ @Input() - get min() { return this._min; } + get min(): number { return this._min; } set min(v: number) { this._min = coerceNumberProperty(v, this._min); @@ -175,7 +175,7 @@ export class MatSlider extends _MatSliderMixinBase /** The values at which the thumb will snap. */ @Input() - get step() { return this._step; } + get step(): number { return this._step; } set step(v: number) { this._step = coerceNumberProperty(v, this._step); @@ -191,7 +191,7 @@ export class MatSlider extends _MatSliderMixinBase /** Whether or not to show the thumb label. */ @Input() get thumbLabel(): boolean { return this._thumbLabel; } - set thumbLabel(value) { this._thumbLabel = coerceBooleanProperty(value); } + set thumbLabel(value: boolean) { this._thumbLabel = coerceBooleanProperty(value); } private _thumbLabel: boolean = false; /** @deprecated */ @@ -223,7 +223,7 @@ export class MatSlider extends _MatSliderMixinBase /** Value of the slider. */ @Input() - get value() { + get value(): number | null { // If the value needs to be read and it is still uninitialized, initialize it to the min. if (this._value === null) { this.value = this._min; @@ -243,17 +243,17 @@ export class MatSlider extends _MatSliderMixinBase /** Whether the slider is vertical. */ @Input() - get vertical() { return this._vertical; } - set vertical(value: any) { + get vertical(): boolean { return this._vertical; } + set vertical(value: boolean) { this._vertical = coerceBooleanProperty(value); } private _vertical = false; /** Event emitted when the slider value has changed. */ - @Output() change = new EventEmitter(); + @Output() change: EventEmitter = new EventEmitter(); /** Event emitted when the slider thumb moves. */ - @Output() input = new EventEmitter(); + @Output() input: EventEmitter = new EventEmitter(); /** The value to be used for display purposes. */ get displayValue(): string | number { diff --git a/src/lib/sort/sort.ts b/src/lib/sort/sort.ts index 4ad410ff887..6de0dc6c534 100644 --- a/src/lib/sort/sort.ts +++ b/src/lib/sort/sort.ts @@ -89,18 +89,18 @@ export class MatSort extends _MatSortMixinBase implements CanDisable, OnChanges, * May be overriden by the MatSortable's disable clear input. */ @Input('matSortDisableClear') - get disableClear() { return this._disableClear; } + get disableClear(): boolean { return this._disableClear; } set disableClear(v: boolean) { this._disableClear = coerceBooleanProperty(v); } private _disableClear: boolean; /** Event emitted when the user changes either the active sort or sort direction. */ - @Output('matSortChange') readonly sortChange = new EventEmitter(); + @Output('matSortChange') readonly sortChange: EventEmitter = new EventEmitter(); /** * Register function to be used by the contained MatSortables. Adds the MatSortable to the * collection of MatSortables. */ - register(sortable: MatSortable) { + register(sortable: MatSortable): void { if (!sortable.id) { throw getSortHeaderMissingIdError(); } @@ -115,12 +115,12 @@ export class MatSort extends _MatSortMixinBase implements CanDisable, OnChanges, * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the * collection of contained MatSortables. */ - deregister(sortable: MatSortable) { + deregister(sortable: MatSortable): void { this.sortables.delete(sortable.id); } /** Sets the active sort id and determines the new sort direction. */ - sort(sortable: MatSortable) { + sort(sortable: MatSortable): void { if (this.active != sortable.id) { this.active = sortable.id; this.direction = sortable.start ? sortable.start : this.start; diff --git a/src/lib/stepper/step-header.ts b/src/lib/stepper/step-header.ts index 37e1f331e39..0648379a3ba 100644 --- a/src/lib/stepper/step-header.ts +++ b/src/lib/stepper/step-header.ts @@ -46,32 +46,32 @@ export class MatStepHeader implements OnDestroy { /** Index of the given step. */ @Input() - get index() { return this._index; } - set index(value: any) { + get index(): number { return this._index; } + set index(value: number) { this._index = coerceNumberProperty(value); } private _index: number; /** Whether the given step is selected. */ @Input() - get selected() { return this._selected; } - set selected(value: any) { + get selected(): boolean { return this._selected; } + set selected(value: boolean) { this._selected = coerceBooleanProperty(value); } private _selected: boolean; /** Whether the given step label is active. */ @Input() - get active() { return this._active; } - set active(value: any) { + get active(): boolean { return this._active; } + set active(value: boolean) { this._active = coerceBooleanProperty(value); } private _active: boolean; /** Whether the given step is optional. */ @Input() - get optional() { return this._optional; } - set optional(value: any) { + get optional(): boolean { return this._optional; } + set optional(value: boolean) { this._optional = coerceBooleanProperty(value); } private _optional: boolean; diff --git a/src/lib/stepper/stepper-intl.ts b/src/lib/stepper/stepper-intl.ts index df099d9a23b..0c947f51488 100644 --- a/src/lib/stepper/stepper-intl.ts +++ b/src/lib/stepper/stepper-intl.ts @@ -20,5 +20,5 @@ export class MatStepperIntl { changes: Subject = new Subject(); /** Label that is rendered below optional steps. */ - optionalLabel = 'Optional'; + optionalLabel: string = 'Optional'; }