diff --git a/guides/bidirectionality.md b/guides/bidirectionality.md index a0f711826ed3..b1d955b54730 100644 --- a/guides/bidirectionality.md +++ b/guides/bidirectionality.md @@ -31,7 +31,7 @@ export class MyCustomComponent { this.dir = directionality.value; directionality.change.subscribe(() => { - this.dir = directionality.value; + this.dir = directionality.value; }); } } diff --git a/src/cdk-experimental/dialog/dialog-container.ts b/src/cdk-experimental/dialog/dialog-container.ts index a1182acfdf4e..1d3fd9247cc9 100644 --- a/src/cdk-experimental/dialog/dialog-container.ts +++ b/src/cdk-experimental/dialog/dialog-container.ts @@ -104,19 +104,19 @@ export class CdkDialogContainer extends BasePortalOutlet implements OnDestroy { @ViewChild(CdkPortalOutlet, {static: true}) _portalHost: CdkPortalOutlet; /** A subject emitting before the dialog enters the view. */ - _beforeEnter: Subject = new Subject(); + readonly _beforeEnter = new Subject(); /** A subject emitting after the dialog enters the view. */ - _afterEnter: Subject = new Subject(); + readonly _afterEnter = new Subject(); /** A subject emitting before the dialog exits the view. */ - _beforeExit: Subject = new Subject(); + readonly _beforeExit = new Subject(); /** A subject emitting after the dialog exits the view. */ - _afterExit: Subject = new Subject(); + readonly _afterExit = new Subject(); /** Stream of animation `done` events. */ - _animationDone = new Subject(); + readonly _animationDone = new Subject(); constructor( private _elementRef: ElementRef, diff --git a/src/cdk-experimental/dialog/dialog.ts b/src/cdk-experimental/dialog/dialog.ts index 63bd6bb52d09..3e01749e200a 100644 --- a/src/cdk-experimental/dialog/dialog.ts +++ b/src/cdk-experimental/dialog/dialog.ts @@ -54,7 +54,7 @@ export class Dialog implements OnDestroy { _getAfterAllClosed(): Observable { return this._parentDialog ? this._parentDialog.afterAllClosed : this._afterAllClosedBase; } - _afterAllClosedBase = new Subject(); + readonly _afterAllClosedBase = new Subject(); // TODO(jelbourn): tighten the type on the right-hand side of this expression. afterAllClosed: Observable = defer(() => this.openDialogs.length ? @@ -64,7 +64,7 @@ export class Dialog implements OnDestroy { get afterOpened(): Subject> { return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened; } - _afterOpened: Subject> = new Subject(); + readonly _afterOpened = new Subject>(); /** Stream that emits when a dialog is opened. */ get openDialogs(): DialogRef[] { diff --git a/src/cdk-experimental/listbox/listbox.ts b/src/cdk-experimental/listbox/listbox.ts index 9228d5b6c9d3..aab60456e99c 100644 --- a/src/cdk-experimental/listbox/listbox.ts +++ b/src/cdk-experimental/listbox/listbox.ts @@ -93,7 +93,7 @@ export class CdkOption implements ListKeyManagerOption, Highlightab this._value = value; } - @Output() readonly selectionChange: EventEmitter> = + @Output() readonly selectionChange = new EventEmitter>(); constructor(private readonly _elementRef: ElementRef, @@ -243,7 +243,7 @@ export class CdkListbox implements AfterContentInit, OnDestroy, OnInit, Contr @ContentChildren(CdkOption, {descendants: true}) _options: QueryList>; - @Output() readonly selectionChange: EventEmitter> = + @Output() readonly selectionChange = new EventEmitter>(); @Input() id = `cdk-listbox-${listboxId++}`; diff --git a/src/cdk-experimental/menu/context-menu.ts b/src/cdk-experimental/menu/context-menu.ts index 9c60a5618c27..461b664ab93d 100644 --- a/src/cdk-experimental/menu/context-menu.ts +++ b/src/cdk-experimental/menu/context-menu.ts @@ -129,7 +129,7 @@ export class CdkContextMenuTrigger implements OnDestroy { private _panelContent: TemplatePortal; /** Emits when the element is destroyed. */ - private readonly _destroyed: Subject = new Subject(); + private readonly _destroyed = new Subject(); /** The menu stack for this trigger and its associated menus. */ private readonly _menuStack = new MenuStack(); diff --git a/src/cdk-experimental/menu/menu-item-selectable.ts b/src/cdk-experimental/menu/menu-item-selectable.ts index 971c3dd62d57..10d50ace28da 100644 --- a/src/cdk-experimental/menu/menu-item-selectable.ts +++ b/src/cdk-experimental/menu/menu-item-selectable.ts @@ -20,7 +20,8 @@ let nextId = 0; @Directive() export abstract class CdkMenuItemSelectable extends CdkMenuItem { /** Event emitted when the selectable item is clicked */ - @Output('cdkMenuItemToggled') toggled: EventEmitter = new EventEmitter(); + @Output('cdkMenuItemToggled') readonly toggled: EventEmitter = + new EventEmitter(); /** Whether the element is checked */ @Input() diff --git a/src/cdk-experimental/menu/menu-item.ts b/src/cdk-experimental/menu/menu-item.ts index 8961186a99bf..ea6e067931fd 100644 --- a/src/cdk-experimental/menu/menu-item.ts +++ b/src/cdk-experimental/menu/menu-item.ts @@ -70,7 +70,7 @@ export class CdkMenuItem implements FocusableOption, FocusableElement, Toggler, * If this MenuItem is a regular MenuItem, outputs when it is triggered by a keyboard or mouse * event. */ - @Output('cdkMenuItemTriggered') triggered: EventEmitter = new EventEmitter(); + @Output('cdkMenuItemTriggered') readonly triggered: EventEmitter = new EventEmitter(); /** * The tabindex for this menu item managed internally and used for implementing roving a @@ -79,7 +79,7 @@ export class CdkMenuItem implements FocusableOption, FocusableElement, Toggler, _tabindex: 0 | -1 = -1; /** Emits when the menu item is destroyed. */ - private readonly _destroyed: Subject = new Subject(); + private readonly _destroyed = new Subject(); constructor( readonly _elementRef: ElementRef, diff --git a/src/cdk-experimental/popover-edit/focus-escape-notifier.ts b/src/cdk-experimental/popover-edit/focus-escape-notifier.ts index c9b1703ff623..a1c42c659642 100644 --- a/src/cdk-experimental/popover-edit/focus-escape-notifier.ts +++ b/src/cdk-experimental/popover-edit/focus-escape-notifier.ts @@ -22,7 +22,7 @@ export const enum FocusEscapeNotifierDirection { * focus leaves the region. */ export class FocusEscapeNotifier extends FocusTrap { - private _escapeSubject = new Subject(); + private readonly _escapeSubject = new Subject(); constructor( element: HTMLElement, diff --git a/src/cdk-experimental/popover-edit/lens-directives.ts b/src/cdk-experimental/popover-edit/lens-directives.ts index 5772fdea78d3..29900659e928 100644 --- a/src/cdk-experimental/popover-edit/lens-directives.ts +++ b/src/cdk-experimental/popover-edit/lens-directives.ts @@ -84,7 +84,7 @@ export class CdkEditControl implements OnDestroy, OnInit { // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete + // tslint:disable-next-line:no-host-decorator-in-concrete @HostListener('ngSubmit') handleFormSubmit(): void { if (this.ignoreSubmitUnlessValid && !this.editRef.isValid()) { return; } @@ -107,7 +107,7 @@ export class CdkEditControl implements OnDestroy, OnInit { // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete + // tslint:disable-next-line:no-host-decorator-in-concrete @HostListener('document:click', ['$event']) handlePossibleClickOut(evt: Event): void { if (closest(evt.target, EDIT_PANE_SELECTOR)) { return; } @@ -128,7 +128,7 @@ export class CdkEditControl implements OnDestroy, OnInit { // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete + // tslint:disable-next-line:no-host-decorator-in-concrete @HostListener('keydown', ['$event']) _handleKeydown(event: KeyboardEvent) { if (event.key === 'Escape' && !hasModifierKey(event)) { @@ -167,7 +167,7 @@ export class CdkEditRevert { // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete + // tslint:disable-next-line:no-host-decorator-in-concrete @HostListener('click') revertEdit(): void { this.editRef.reset(); @@ -192,10 +192,8 @@ export class CdkEditClose { // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete - @HostListener('click') - @HostListener('keydown.enter') - @HostListener('keydown.space') + // tslint:disable-next-line:no-host-decorator-in-concrete + @HostListener('click') @HostListener('keydown.enter') @HostListener('keydown.space') closeEdit(): void { // Note that we use `click` here, rather than a keyboard event, because some screen readers // will emit a fake click event instead of an enter keyboard event on buttons. For the keyboard diff --git a/src/cdk-experimental/popover-edit/table-directives.ts b/src/cdk-experimental/popover-edit/table-directives.ts index a50f17b01c94..3ee7af68d0cb 100644 --- a/src/cdk-experimental/popover-edit/table-directives.ts +++ b/src/cdk-experimental/popover-edit/table-directives.ts @@ -501,7 +501,7 @@ export class CdkEditOpen { // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete + // tslint:disable-next-line:no-host-decorator-in-concrete @HostListener('click', ['$event']) openEdit(evt: Event): void { this.editEventDispatcher.editing.next(closest(this.elementRef.nativeElement!, CELL_SELECTOR)); diff --git a/src/cdk-experimental/selection/selection.ts b/src/cdk-experimental/selection/selection.ts index 3c9a91bdfd25..f6ca11ff2ab3 100644 --- a/src/cdk-experimental/selection/selection.ts +++ b/src/cdk-experimental/selection/selection.ts @@ -60,7 +60,7 @@ export class CdkSelection implements OnInit, AfterContentChecked, CollectionV protected _multiple: boolean; /** Emits when selection changes. */ - @Output('cdkSelectionChange') change = new EventEmitter>(); + @Output('cdkSelectionChange') readonly change = new EventEmitter>(); /** Latest data provided by the data source. */ private _data: T[]|readonly T[]; diff --git a/src/cdk/a11y/focus-monitor/focus-monitor.ts b/src/cdk/a11y/focus-monitor/focus-monitor.ts index 96c118f8eb12..2fe97c6cf1f1 100644 --- a/src/cdk/a11y/focus-monitor/focus-monitor.ts +++ b/src/cdk/a11y/focus-monitor/focus-monitor.ts @@ -71,7 +71,7 @@ export const FOCUS_MONITOR_DEFAULT_OPTIONS = type MonitoredElementInfo = { checkChildren: boolean, - subject: Subject, + readonly subject: Subject, rootNode: HTMLElement|ShadowRoot|Document }; @@ -604,7 +604,7 @@ function getTarget(event: Event): HTMLElement|null { }) export class CdkMonitorFocus implements AfterViewInit, OnDestroy { private _monitorSubscription: Subscription; - @Output() cdkFocusChange = new EventEmitter(); + @Output() readonly cdkFocusChange = new EventEmitter(); constructor(private _elementRef: ElementRef, private _focusMonitor: FocusMonitor) {} diff --git a/src/cdk/a11y/key-manager/list-key-manager.ts b/src/cdk/a11y/key-manager/list-key-manager.ts index fcd27e27c7e0..fe47b4f72661 100644 --- a/src/cdk/a11y/key-manager/list-key-manager.ts +++ b/src/cdk/a11y/key-manager/list-key-manager.ts @@ -44,7 +44,7 @@ export class ListKeyManager { private _activeItemIndex = -1; private _activeItem: T | null = null; private _wrap = false; - private _letterKeyStream = new Subject(); + private readonly _letterKeyStream = new Subject(); private _typeaheadSubscription = Subscription.EMPTY; private _vertical = true; private _horizontal: 'ltr' | 'rtl' | null; @@ -82,10 +82,10 @@ export class ListKeyManager { * Stream that emits any time the TAB key is pressed, so components can react * when focus is shifted off of the list. */ - tabOut: Subject = new Subject(); + readonly tabOut = new Subject(); /** Stream that emits whenever the active item of the list manager changes. */ - change = new Subject(); + readonly change = new Subject(); /** * Sets the predicate function that determines which items should be skipped by the diff --git a/src/cdk/a11y/live-announcer/live-announcer.md b/src/cdk/a11y/live-announcer/live-announcer.md index 492b2b883653..c58adaa6f9f1 100644 --- a/src/cdk/a11y/live-announcer/live-announcer.md +++ b/src/cdk/a11y/live-announcer/live-announcer.md @@ -1,12 +1,12 @@ ### LiveAnnouncer `LiveAnnouncer` is used to announce messages for screen-reader users using an `aria-live` region. See [the W3C's WAI-ARIA](https://www.w3.org/TR/wai-aria/states_and_properties#aria-live) -for more information on aria-live regions. +for more information on aria-live regions. #### Methods ##### `announce(message: string, politeness?: 'off' | 'polite' | 'assertive'): void` -Announce the given message via aria-live region. The politeness argument determines the +Announce the given message via aria-live region. The politeness argument determines the `aria-live` attribute on the announcer element, defaulting to 'polite'. #### Examples @@ -18,9 +18,8 @@ The LiveAnnouncer is injected into a component: }) export class MyComponent { - constructor(liveAnnouncer: LiveAnnouncer) { - liveAnnouncer.announce("Hey Google"); - } - + constructor(liveAnnouncer: LiveAnnouncer) { + liveAnnouncer.announce("Hey Google"); + } } ``` diff --git a/src/cdk/accordion/accordion-item.ts b/src/cdk/accordion/accordion-item.ts index 48268ffeb740..c5f1bc8bc6ed 100644 --- a/src/cdk/accordion/accordion-item.ts +++ b/src/cdk/accordion/accordion-item.ts @@ -42,18 +42,18 @@ export class CdkAccordionItem implements OnDestroy { /** Subscription to openAll/closeAll events. */ private _openCloseAllSubscription = Subscription.EMPTY; /** Event emitted every time the AccordionItem is closed. */ - @Output() closed: EventEmitter = new EventEmitter(); + @Output() readonly closed: EventEmitter = new EventEmitter(); /** Event emitted every time the AccordionItem is opened. */ - @Output() opened: EventEmitter = new EventEmitter(); + @Output() readonly opened: EventEmitter = new EventEmitter(); /** Event emitted when the AccordionItem is destroyed. */ - @Output() destroyed: EventEmitter = new EventEmitter(); + @Output() readonly destroyed: EventEmitter = new EventEmitter(); /** * Emits whenever the expanded state of the accordion changes. * Primarily used to facilitate two-way binding. * @docs-private */ - @Output() expandedChange: EventEmitter = new EventEmitter(); + @Output() readonly expandedChange: EventEmitter = new EventEmitter(); /** The unique AccordionItem id. */ readonly id: string = `cdk-accordion-child-${nextId++}`; diff --git a/src/cdk/bidi/dir.ts b/src/cdk/bidi/dir.ts index 2244cea3c8bb..55e6d242d10b 100644 --- a/src/cdk/bidi/dir.ts +++ b/src/cdk/bidi/dir.ts @@ -40,7 +40,7 @@ export class Dir implements Directionality, AfterContentInit, OnDestroy { _rawDir: string; /** Event emitted when the direction changes. */ - @Output('dirChange') change = new EventEmitter(); + @Output('dirChange') readonly change = new EventEmitter(); /** @docs-private */ @Input() diff --git a/src/cdk/clipboard/copy-to-clipboard.ts b/src/cdk/clipboard/copy-to-clipboard.ts index 50457567e3f8..276963b34698 100644 --- a/src/cdk/clipboard/copy-to-clipboard.ts +++ b/src/cdk/clipboard/copy-to-clipboard.ts @@ -60,7 +60,7 @@ export class CdkCopyToClipboard implements OnDestroy { * Emits when some text is copied to the clipboard. The * emitted value indicates whether copying was successful. */ - @Output('cdkCopyToClipboardCopied') copied = new EventEmitter(); + @Output('cdkCopyToClipboardCopied') readonly copied = new EventEmitter(); /** Copies that are currently being attempted. */ private _pending = new Set(); diff --git a/src/cdk/collections/selection-model.ts b/src/cdk/collections/selection-model.ts index 17eca7ddf274..da39957d078f 100644 --- a/src/cdk/collections/selection-model.ts +++ b/src/cdk/collections/selection-model.ts @@ -34,7 +34,7 @@ export class SelectionModel { } /** Event emitted when the value has changed. */ - changed: Subject> = new Subject(); + readonly changed = new Subject>(); constructor( private _multiple = false, diff --git a/src/cdk/drag-drop/directives/drag-handle.ts b/src/cdk/drag-drop/directives/drag-handle.ts index e4b22c44bb45..d9ff06137988 100644 --- a/src/cdk/drag-drop/directives/drag-handle.ts +++ b/src/cdk/drag-drop/directives/drag-handle.ts @@ -41,7 +41,7 @@ export class CdkDragHandle implements OnDestroy { _parentDrag: {} | undefined; /** Emits when the state of the handle has changed. */ - _stateChanges = new Subject(); + readonly _stateChanges = new Subject(); /** Whether starting to drag through this handle is disabled. */ @Input('cdkDragHandleDisabled') diff --git a/src/cdk/drag-drop/directives/drag.ts b/src/cdk/drag-drop/directives/drag.ts index e00390f66696..799f132a1c0c 100644 --- a/src/cdk/drag-drop/directives/drag.ts +++ b/src/cdk/drag-drop/directives/drag.ts @@ -70,7 +70,7 @@ const DRAG_HOST_CLASS = 'cdk-drag'; providers: [{provide: CDK_DRAG_PARENT, useExisting: CdkDrag}] }) export class CdkDrag implements AfterViewInit, OnChanges, OnDestroy { - private _destroyed = new Subject(); + private readonly _destroyed = new Subject(); private static _dragInstances: CdkDrag[] = []; /** Reference to the underlying drag instance. */ @@ -156,32 +156,34 @@ export class CdkDrag implements AfterViewInit, OnChanges, OnDestroy { @Input('cdkDragPreviewContainer') previewContainer: PreviewContainer; /** Emits when the user starts dragging the item. */ - @Output('cdkDragStarted') started: EventEmitter = new EventEmitter(); + @Output('cdkDragStarted') readonly started: EventEmitter = + new EventEmitter(); /** Emits when the user has released a drag item, before any animations have started. */ - @Output('cdkDragReleased') released: EventEmitter = + @Output('cdkDragReleased') readonly released: EventEmitter = new EventEmitter(); /** Emits when the user stops dragging an item in the container. */ - @Output('cdkDragEnded') ended: EventEmitter = new EventEmitter(); + @Output('cdkDragEnded') readonly ended: EventEmitter = new EventEmitter(); /** Emits when the user has moved the item into a new container. */ - @Output('cdkDragEntered') entered: EventEmitter> = + @Output('cdkDragEntered') readonly entered: EventEmitter> = new EventEmitter>(); /** Emits when the user removes the item its container by dragging it into another container. */ - @Output('cdkDragExited') exited: EventEmitter> = + @Output('cdkDragExited') readonly exited: EventEmitter> = new EventEmitter>(); /** Emits when the user drops the item inside a container. */ - @Output('cdkDragDropped') dropped: EventEmitter> = + @Output('cdkDragDropped') readonly dropped: EventEmitter> = new EventEmitter>(); /** * Emits as the user is dragging the item. Use with caution, * because this event will fire for every pixel that the user has dragged. */ - @Output('cdkDragMoved') moved: Observable> = + @Output('cdkDragMoved') + readonly moved: Observable> = new Observable((observer: Observer>) => { const subscription = this._dragRef.moved.pipe(map(movedEvent => ({ source: this, diff --git a/src/cdk/drag-drop/directives/drop-list.ts b/src/cdk/drag-drop/directives/drop-list.ts index c209436ae33d..691b313e7584 100644 --- a/src/cdk/drag-drop/directives/drop-list.ts +++ b/src/cdk/drag-drop/directives/drop-list.ts @@ -75,7 +75,7 @@ export const CDK_DROP_LIST = new InjectionToken('CdkDropList'); }) export class CdkDropList implements OnDestroy { /** Emits when the list has been destroyed. */ - private _destroyed = new Subject(); + private readonly _destroyed = new Subject(); /** Whether the element's scrollable parents have been resolved. */ private _scrollableParentsResolved: boolean; @@ -148,24 +148,24 @@ export class CdkDropList implements OnDestroy { /** Emits when the user drops an item inside the container. */ @Output('cdkDropListDropped') - dropped: EventEmitter> = new EventEmitter>(); + readonly dropped: EventEmitter> = new EventEmitter>(); /** * Emits when the user has moved a new drag item into this container. */ @Output('cdkDropListEntered') - entered: EventEmitter> = new EventEmitter>(); + readonly entered: EventEmitter> = new EventEmitter>(); /** * Emits when the user removes an item from the container * by dragging it into another container. */ @Output('cdkDropListExited') - exited: EventEmitter> = new EventEmitter>(); + readonly exited: EventEmitter> = new EventEmitter>(); /** Emits as the user is swapping items while actively dragging. */ @Output('cdkDropListSorted') - sorted: EventEmitter> = new EventEmitter>(); + readonly sorted: EventEmitter> = new EventEmitter>(); /** * Keeps track of the items that are registered with this container. Historically we used to diff --git a/src/cdk/drag-drop/drag-ref.ts b/src/cdk/drag-drop/drag-ref.ts index 863c1aa88d8d..b1f99a5f55b9 100644 --- a/src/cdk/drag-drop/drag-ref.ts +++ b/src/cdk/drag-drop/drag-ref.ts @@ -161,7 +161,7 @@ export class DragRef { private _parentPositions: ParentPositionTracker; /** Emits when the item is being moved. */ - private _moveEvents = new Subject<{ + private readonly _moveEvents = new Subject<{ source: DragRef; pointerPosition: {x: number, y: number}; event: MouseEvent | TouchEvent; @@ -285,25 +285,25 @@ export class DragRef { private _disabled = false; /** Emits as the drag sequence is being prepared. */ - beforeStarted = new Subject(); + readonly beforeStarted = new Subject(); /** Emits when the user starts dragging the item. */ - started = new Subject<{source: DragRef}>(); + readonly started = new Subject<{source: DragRef}>(); /** Emits when the user has released a drag item, before any animations have started. */ - released = new Subject<{source: DragRef}>(); + readonly released = new Subject<{source: DragRef}>(); /** Emits when the user stops dragging an item in the container. */ - ended = new Subject<{source: DragRef, distance: Point, dropPoint: Point}>(); + readonly ended = new Subject<{source: DragRef, distance: Point, dropPoint: Point}>(); /** Emits when the user has moved the item into a new container. */ - entered = new Subject<{container: DropListRef, item: DragRef, currentIndex: number}>(); + readonly entered = new Subject<{container: DropListRef, item: DragRef, currentIndex: number}>(); /** Emits when the user removes the item its container by dragging it into another container. */ - exited = new Subject<{container: DropListRef, item: DragRef}>(); + readonly exited = new Subject<{container: DropListRef, item: DragRef}>(); /** Emits when the user drops the item inside a container. */ - dropped = new Subject<{ + readonly dropped = new Subject<{ previousIndex: number; currentIndex: number; item: DragRef; @@ -318,7 +318,7 @@ export class DragRef { * Emits as the user is dragging the item. Use with caution, * because this event will fire for every pixel that the user has dragged. */ - moved: Observable<{ + readonly moved: Observable<{ source: DragRef; pointerPosition: {x: number, y: number}; event: MouseEvent | TouchEvent; diff --git a/src/cdk/drag-drop/drop-list-ref.ts b/src/cdk/drag-drop/drop-list-ref.ts index dc5ca71b0da7..4828313d7148 100644 --- a/src/cdk/drag-drop/drop-list-ref.ts +++ b/src/cdk/drag-drop/drop-list-ref.ts @@ -98,21 +98,21 @@ export class DropListRef { sortPredicate: (index: number, drag: DragRef, drop: DropListRef) => boolean = () => true; /** Emits right before dragging has started. */ - beforeStarted = new Subject(); + readonly beforeStarted = new Subject(); /** * Emits when the user has moved a new drag item into this container. */ - entered = new Subject<{item: DragRef, container: DropListRef, currentIndex: number}>(); + readonly entered = new Subject<{item: DragRef, container: DropListRef, currentIndex: number}>(); /** * Emits when the user removes an item from the container * by dragging it into another container. */ - exited = new Subject<{item: DragRef, container: DropListRef}>(); + readonly exited = new Subject<{item: DragRef, container: DropListRef}>(); /** Emits when the user drops an item inside the container. */ - dropped = new Subject<{ + readonly dropped = new Subject<{ item: DragRef, currentIndex: number, previousIndex: number, @@ -124,7 +124,7 @@ export class DropListRef { }>(); /** Emits as the user is swapping items while actively dragging. */ - sorted = new Subject<{ + readonly sorted = new Subject<{ previousIndex: number, currentIndex: number, container: DropListRef, @@ -188,7 +188,7 @@ export class DropListRef { private _scrollNode: HTMLElement | Window; /** Used to signal to the current auto-scroll sequence when to stop. */ - private _stopScrollTimers = new Subject(); + private readonly _stopScrollTimers = new Subject(); /** Shadow root of the current element. Necessary for `elementFromPoint` to resolve correctly. */ private _cachedShadowRoot: DocumentOrShadowRoot | null = null; diff --git a/src/cdk/layout/breakpoints-observer.ts b/src/cdk/layout/breakpoints-observer.ts index e095053772f1..11e0e5fc1be2 100644 --- a/src/cdk/layout/breakpoints-observer.ts +++ b/src/cdk/layout/breakpoints-observer.ts @@ -45,7 +45,7 @@ export class BreakpointObserver implements OnDestroy { /** A map of all media queries currently being listened for. */ private _queries = new Map(); /** A subject for all other observables to takeUntil based on. */ - private _destroySubject = new Subject(); + private readonly _destroySubject = new Subject(); constructor(private _mediaMatcher: MediaMatcher, private _zone: NgZone) {} diff --git a/src/cdk/observers/observe-content.ts b/src/cdk/observers/observe-content.ts index 1b45092875bf..849d13894d5d 100644 --- a/src/cdk/observers/observe-content.ts +++ b/src/cdk/observers/observe-content.ts @@ -46,7 +46,7 @@ export class ContentObserver implements OnDestroy { /** Keeps track of the existing MutationObservers so they can be reused. */ private _observedElements = new Map, + readonly stream: Subject, count: number }>(); @@ -141,7 +141,7 @@ export class ContentObserver implements OnDestroy { }) export class CdkObserveContent implements AfterContentInit, OnDestroy { /** Event emitted for each change in the element's content. */ - @Output('cdkObserveContent') event = new EventEmitter(); + @Output('cdkObserveContent') readonly event = new EventEmitter(); /** * Whether observing content is disabled. This option can be used diff --git a/src/cdk/overlay/overlay-directives.ts b/src/cdk/overlay/overlay-directives.ts index 7120f009c92b..68fb20211c65 100644 --- a/src/cdk/overlay/overlay-directives.ts +++ b/src/cdk/overlay/overlay-directives.ts @@ -208,22 +208,22 @@ export class CdkConnectedOverlay implements OnDestroy, OnChanges { set push(value: boolean) { this._push = coerceBooleanProperty(value); } /** Event emitted when the backdrop is clicked. */ - @Output() backdropClick = new EventEmitter(); + @Output() readonly backdropClick = new EventEmitter(); /** Event emitted when the position has changed. */ - @Output() positionChange = new EventEmitter(); + @Output() readonly positionChange = new EventEmitter(); /** Event emitted when the overlay has been attached. */ - @Output() attach = new EventEmitter(); + @Output() readonly attach = new EventEmitter(); /** Event emitted when the overlay has been detached. */ - @Output() detach = new EventEmitter(); + @Output() readonly detach = new EventEmitter(); /** Emits when there are keyboard events that are targeted at the overlay. */ - @Output() overlayKeydown = new EventEmitter(); + @Output() readonly overlayKeydown = new EventEmitter(); /** Emits when there are mouse outside click events that are targeted at the overlay. */ - @Output() overlayOutsideClick = new EventEmitter(); + @Output() readonly overlayOutsideClick = new EventEmitter(); // TODO(jelbourn): inputs for size, scroll behavior, animation, etc. diff --git a/src/cdk/overlay/overlay-ref.ts b/src/cdk/overlay/overlay-ref.ts index d91a7b43ec9f..5a604b93698a 100644 --- a/src/cdk/overlay/overlay-ref.ts +++ b/src/cdk/overlay/overlay-ref.ts @@ -32,9 +32,9 @@ export type ImmutableObject = { */ export class OverlayRef implements PortalOutlet, OverlayReference { private _backdropElement: HTMLElement | null = null; - private _backdropClick: Subject = new Subject(); - private _attachments = new Subject(); - private _detachments = new Subject(); + private readonly _backdropClick = new Subject(); + private readonly _attachments = new Subject(); + private readonly _detachments = new Subject(); private _positionStrategy: PositionStrategy | undefined; private _scrollStrategy: ScrollStrategy | undefined; private _locationChanges: SubscriptionLike = Subscription.EMPTY; @@ -47,10 +47,10 @@ export class OverlayRef implements PortalOutlet, OverlayReference { private _previousHostParent: HTMLElement; /** Stream of keydown events dispatched to this overlay. */ - _keydownEvents = new Subject(); + readonly _keydownEvents = new Subject(); /** Stream of mouse outside events dispatched to this overlay. */ - _outsidePointerEvents = new Subject(); + readonly _outsidePointerEvents = new Subject(); constructor( private _portalOutlet: PortalOutlet, diff --git a/src/cdk/overlay/overlay-reference.ts b/src/cdk/overlay/overlay-reference.ts index e40e9527d3cd..95b4d0f4d5fe 100644 --- a/src/cdk/overlay/overlay-reference.ts +++ b/src/cdk/overlay/overlay-reference.ts @@ -27,6 +27,6 @@ export interface OverlayReference { updatePosition: () => void; getDirection: () => Direction; setDirection: (dir: Direction | Directionality) => void; - _outsidePointerEvents: Subject; - _keydownEvents: Subject; + readonly _outsidePointerEvents: Subject; + readonly _keydownEvents: Subject; } diff --git a/src/cdk/overlay/position/flexible-connected-position-strategy.ts b/src/cdk/overlay/position/flexible-connected-position-strategy.ts index 133827d8f413..f7fc206ddd07 100644 --- a/src/cdk/overlay/position/flexible-connected-position-strategy.ts +++ b/src/cdk/overlay/position/flexible-connected-position-strategy.ts @@ -107,7 +107,7 @@ export class FlexibleConnectedPositionStrategy implements PositionStrategy { private _lastPosition: ConnectedPosition | null; /** Subject that emits whenever the position changes. */ - private _positionChanges = new Subject(); + private readonly _positionChanges = new Subject(); /** Subscription to viewport size changes. */ private _resizeSubscription = Subscription.EMPTY; diff --git a/src/cdk/portal/portal-directives.ts b/src/cdk/portal/portal-directives.ts index 9808e9fb68f9..d257451d8939 100644 --- a/src/cdk/portal/portal-directives.ts +++ b/src/cdk/portal/portal-directives.ts @@ -118,7 +118,7 @@ export class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestr } /** Emits when a portal is attached to the outlet. */ - @Output() attached: EventEmitter = + @Output() readonly attached: EventEmitter = new EventEmitter(); /** Component or view reference that is attached to the portal. */ diff --git a/src/cdk/scrolling/fixed-size-virtual-scroll.ts b/src/cdk/scrolling/fixed-size-virtual-scroll.ts index f19f10ad3f66..eeb7480d65b9 100644 --- a/src/cdk/scrolling/fixed-size-virtual-scroll.ts +++ b/src/cdk/scrolling/fixed-size-virtual-scroll.ts @@ -16,7 +16,7 @@ import {CdkVirtualScrollViewport} from './virtual-scroll-viewport'; /** Virtual scrolling strategy for lists with items of known fixed size. */ export class FixedSizeVirtualScrollStrategy implements VirtualScrollStrategy { - private _scrolledIndexChange = new Subject(); + private readonly _scrolledIndexChange = new Subject(); /** @docs-private Implemented as part of VirtualScrollStrategy. */ scrolledIndexChange: Observable = this._scrolledIndexChange.pipe(distinctUntilChanged()); diff --git a/src/cdk/scrolling/scroll-dispatcher.ts b/src/cdk/scrolling/scroll-dispatcher.ts index 7da1485f3740..07664a462879 100644 --- a/src/cdk/scrolling/scroll-dispatcher.ts +++ b/src/cdk/scrolling/scroll-dispatcher.ts @@ -33,7 +33,7 @@ export class ScrollDispatcher implements OnDestroy { } /** Subject for notifying that a registered scrollable reference element has been scrolled. */ - private _scrolled = new Subject(); + private readonly _scrolled = new Subject(); /** Keeps track of the global `scroll` and `resize` subscriptions. */ _globalSubscription: Subscription | null = null; diff --git a/src/cdk/scrolling/scrollable.ts b/src/cdk/scrolling/scrollable.ts index c9b33029ef2b..279aaf7fe6cc 100644 --- a/src/cdk/scrolling/scrollable.ts +++ b/src/cdk/scrolling/scrollable.ts @@ -45,7 +45,7 @@ export type ExtendedScrollToOptions = _XAxis & _YAxis & ScrollOptions; selector: '[cdk-scrollable], [cdkScrollable]' }) export class CdkScrollable implements OnInit, OnDestroy { - private _destroyed = new Subject(); + private readonly _destroyed = new Subject(); private _elementScrolled: Observable = new Observable((observer: Observer) => this.ngZone.runOutsideAngular(() => diff --git a/src/cdk/scrolling/viewport-ruler.ts b/src/cdk/scrolling/viewport-ruler.ts index 693189378483..fb4ff22bc036 100644 --- a/src/cdk/scrolling/viewport-ruler.ts +++ b/src/cdk/scrolling/viewport-ruler.ts @@ -31,7 +31,7 @@ export class ViewportRuler implements OnDestroy { private _viewportSize: {width: number; height: number}; /** Stream of viewport change events. */ - private _change = new Subject(); + private readonly _change = new Subject(); /** Event listener that will be used to handle the viewport change events. */ private _changeListener = (event: Event) => { diff --git a/src/cdk/scrolling/virtual-for-of.ts b/src/cdk/scrolling/virtual-for-of.ts index 94dbf1c1e69b..e42026694aa8 100644 --- a/src/cdk/scrolling/virtual-for-of.ts +++ b/src/cdk/scrolling/virtual-for-of.ts @@ -90,10 +90,10 @@ function getOffset(orientation: 'horizontal' | 'vertical', direction: 'start' | export class CdkVirtualForOf implements CdkVirtualScrollRepeater, CollectionViewer, DoCheck, OnDestroy { /** Emits when the rendered view of the data changes. */ - viewChange = new Subject(); + readonly viewChange = new Subject(); /** Subject that emits when a new DataSource instance is given. */ - private _dataSourceChanges = new Subject>(); + private readonly _dataSourceChanges = new Subject>(); /** The DataSource to display. */ @Input() @@ -151,7 +151,7 @@ export class CdkVirtualForOf implements } /** Emits whenever the data in the current DataSource changes. */ - dataStream: Observable = this._dataSourceChanges + readonly dataStream: Observable = this._dataSourceChanges .pipe( // Start off with null `DataSource`. startWith(null), @@ -179,7 +179,7 @@ export class CdkVirtualForOf implements /** Whether the rendered data should be updated during the next ngDoCheck cycle. */ private _needsUpdate = false; - private _destroyed = new Subject(); + private readonly _destroyed = new Subject(); constructor( /** The view container to add items to. */ diff --git a/src/cdk/scrolling/virtual-scroll-repeater.ts b/src/cdk/scrolling/virtual-scroll-repeater.ts index dfbbe8b267d8..48ca4db32b60 100644 --- a/src/cdk/scrolling/virtual-scroll-repeater.ts +++ b/src/cdk/scrolling/virtual-scroll-repeater.ts @@ -13,6 +13,6 @@ import {ListRange} from '@angular/cdk/collections'; * An item to be repeated by the VirtualScrollViewport */ export interface CdkVirtualScrollRepeater { - dataStream: Observable; + readonly dataStream: Observable; measureRangeSize(range: ListRange, orientation: 'horizontal' | 'vertical'): number; } diff --git a/src/cdk/scrolling/virtual-scroll-viewport.ts b/src/cdk/scrolling/virtual-scroll-viewport.ts index 086e8d9e4a73..5eae4fd7bc6c 100644 --- a/src/cdk/scrolling/virtual-scroll-viewport.ts +++ b/src/cdk/scrolling/virtual-scroll-viewport.ts @@ -71,10 +71,10 @@ const SCROLL_SCHEDULER = }) export class CdkVirtualScrollViewport extends CdkScrollable implements OnInit, OnDestroy { /** Emits when the viewport is detached from a CdkVirtualForOf. */ - private _detachedSubject = new Subject(); + private readonly _detachedSubject = new Subject(); /** Emits when the rendered range changes. */ - private _renderedRangeSubject = new Subject(); + private readonly _renderedRangeSubject = new Subject(); /** The direction the viewport scrolls. */ @Input() @@ -94,16 +94,16 @@ export class CdkVirtualScrollViewport extends CdkScrollable implements OnInit, O // depending on how the strategy calculates the scrolled index, it may come at a cost to // performance. /** Emits when the index of the first element visible in the viewport changes. */ - @Output() scrolledIndexChange: Observable = - new Observable((observer: Observer) => - this._scrollStrategy.scrolledIndexChange.subscribe(index => - Promise.resolve().then(() => this.ngZone.run(() => observer.next(index))))); + @Output() + readonly scrolledIndexChange: Observable = new Observable( + (observer: Observer) => this._scrollStrategy.scrolledIndexChange.subscribe( + index => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index))))); /** The element that wraps the rendered content. */ @ViewChild('contentWrapper', {static: true}) _contentWrapper: ElementRef; /** A stream that emits whenever the rendered range changes. */ - renderedRangeStream: Observable = this._renderedRangeSubject; + readonly renderedRangeStream: Observable = this._renderedRangeSubject; /** * The total size of all content (in pixels), including content that is not currently rendered. diff --git a/src/cdk/stepper/stepper.ts b/src/cdk/stepper/stepper.ts index 83841e032c27..11da582e11bd 100644 --- a/src/cdk/stepper/stepper.ts +++ b/src/cdk/stepper/stepper.ts @@ -241,7 +241,7 @@ export class CdkStep implements OnChanges { }) export class CdkStepper implements AfterContentInit, AfterViewInit, OnDestroy { /** Emits when the component is destroyed. */ - protected _destroyed = new Subject(); + protected readonly _destroyed = new Subject(); /** Used for managing keyboard focus. */ private _keyManager: FocusKeyManager; @@ -309,8 +309,7 @@ export class CdkStepper implements AfterContentInit, AfterViewInit, OnDestroy { } /** Event emitted when the selected step has changed. */ - @Output() - selectionChange: EventEmitter = new EventEmitter(); + @Output() readonly selectionChange = new EventEmitter(); /** Used to track unique ID for each stepper component. */ _groupId: number; @@ -560,14 +559,14 @@ interface AbstractControlLike { pristine: boolean; root: AbstractControlLike; status: string; - statusChanges: Observable; + readonly statusChanges: Observable; touched: boolean; untouched: boolean; updateOn: any; valid: boolean; validator: ((control: any) => any) | null; value: any; - valueChanges: Observable; + readonly valueChanges: Observable; clearAsyncValidators(): void; clearValidators(): void; disable(opts?: any): void; diff --git a/src/cdk/table/table.ts b/src/cdk/table/table.ts index c0401b38a268..610c81b83dcd 100644 --- a/src/cdk/table/table.ts +++ b/src/cdk/table/table.ts @@ -230,7 +230,7 @@ export class CdkTable implements AfterContentChecked, CollectionViewer, OnDes protected _data: readonly T[]; /** Subject that emits when the component has been destroyed. */ - private _onDestroy = new Subject(); + private readonly _onDestroy = new Subject(); /** List of the rendered rows as identified by their `RenderRow` object. */ private _renderRows: RenderRow[]; @@ -463,7 +463,7 @@ export class CdkTable implements AfterContentChecked, CollectionViewer, OnDes * * @docs-private */ - viewChange: BehaviorSubject<{start: number, end: number}> = + readonly viewChange = new BehaviorSubject<{start: number, end: number}>({start: 0, end: Number.MAX_VALUE}); // Outlets in the table's template where the header, data rows, and footer will be inserted. diff --git a/src/cdk/testing/private/mock-ng-zone.ts b/src/cdk/testing/private/mock-ng-zone.ts index d8224512d10e..558563758f9f 100644 --- a/src/cdk/testing/private/mock-ng-zone.ts +++ b/src/cdk/testing/private/mock-ng-zone.ts @@ -18,7 +18,7 @@ import {EventEmitter, Injectable, NgZone} from '@angular/core'; */ @Injectable() export class MockNgZone extends NgZone { - onStable: EventEmitter = new EventEmitter(false); + readonly onStable = new EventEmitter(false); constructor() { super({enableLongStackTrace: false}); diff --git a/src/cdk/testing/testbed/task-state-zone-interceptor.ts b/src/cdk/testing/testbed/task-state-zone-interceptor.ts index 8a4ded589808..e1eb66068f35 100644 --- a/src/cdk/testing/testbed/task-state-zone-interceptor.ts +++ b/src/cdk/testing/testbed/task-state-zone-interceptor.ts @@ -31,7 +31,7 @@ type PatchedProxyZone = ProxyZone & { */ export class TaskStateZoneInterceptor { /** Subject that can be used to emit a new state change. */ - private _stateSubject: BehaviorSubject = new BehaviorSubject( + private readonly _stateSubject = new BehaviorSubject( this._lastState ? this._getTaskStateFromInternalZoneState(this._lastState) : {stable: true}); /** Public observable that emits whenever the task state changes. */ diff --git a/src/cdk/text-field/autofill.ts b/src/cdk/text-field/autofill.ts index 6d02f8f5dd4e..5d317c985281 100644 --- a/src/cdk/text-field/autofill.ts +++ b/src/cdk/text-field/autofill.ts @@ -32,7 +32,7 @@ export type AutofillEvent = { /** Used to track info about currently monitored elements. */ type MonitoredElementInfo = { - subject: Subject; + readonly subject: Subject; unlisten: () => void; }; @@ -147,7 +147,7 @@ export class AutofillMonitor implements OnDestroy { }) export class CdkAutofill implements OnDestroy, OnInit { /** Emits when the autofill state of the element changes. */ - @Output() cdkAutofill: EventEmitter = new EventEmitter(); + @Output() readonly cdkAutofill = new EventEmitter(); constructor(private _elementRef: ElementRef, private _autofillMonitor: AutofillMonitor) {} diff --git a/src/cdk/tree/padding.ts b/src/cdk/tree/padding.ts index 798d65bf8c3f..9c0e483694da 100644 --- a/src/cdk/tree/padding.ts +++ b/src/cdk/tree/padding.ts @@ -28,7 +28,7 @@ export class CdkTreeNodePadding implements OnDestroy { private _currentPadding: string|null; /** Subject that emits when the component has been destroyed. */ - private _destroyed = new Subject(); + private readonly _destroyed = new Subject(); /** CSS units used for the indentation value. */ indentUnits = 'px'; diff --git a/src/cdk/tree/tree.spec.ts b/src/cdk/tree/tree.spec.ts index 7d2d8341431e..f0c0dcdd6d30 100644 --- a/src/cdk/tree/tree.spec.ts +++ b/src/cdk/tree/tree.spec.ts @@ -37,7 +37,7 @@ describe('CdkTree', () => { let dataSource: FakeDataSource; let treeElement: HTMLElement; let tree: CdkTree; - let dir: {value: Direction, change: EventEmitter}; + let dir: {value: Direction, readonly change: EventEmitter}; function configureCdkTreeTestingModule(declarations: Type[]) { TestBed.configureTestingModule({ @@ -1066,7 +1066,7 @@ export class TestData { pizzaBase: string; level: number; children: TestData[]; - observableChildren: BehaviorSubject; + readonly observableChildren: BehaviorSubject; constructor(pizzaTopping: string, pizzaCheese: string, pizzaBase: string, level: number = 1) { this.pizzaTopping = pizzaTopping; diff --git a/src/cdk/tree/tree.ts b/src/cdk/tree/tree.ts index 20f3e4de5728..9bbcf2e51565 100644 --- a/src/cdk/tree/tree.ts +++ b/src/cdk/tree/tree.ts @@ -71,7 +71,7 @@ import {coerceNumberProperty} from '@angular/cdk/coercion'; }) export class CdkTree implements AfterContentChecked, CollectionViewer, OnDestroy, OnInit { /** Subject that emits when the component has been destroyed. */ - private _onDestroy = new Subject(); + private readonly _onDestroy = new Subject(); /** Differ used to find the changes in the data provided by the data source. */ private _dataDiffer: IterableDiffer; @@ -126,7 +126,7 @@ export class CdkTree implements AfterContentChecked, CollectionViewer, * 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 = + readonly viewChange = new BehaviorSubject<{start: number, end: number}>({start: 0, end: Number.MAX_VALUE}); constructor(private _differs: IterableDiffers, @@ -324,10 +324,10 @@ export class CdkTreeNode implements DoCheck, FocusableOption, OnDestro static mostRecentTreeNode: CdkTreeNode | null = null; /** Subject that emits when the component has been destroyed. */ - protected _destroyed = new Subject(); + protected readonly _destroyed = new Subject(); /** Emits when the node's data has changed. */ - _dataChanges = new Subject(); + readonly _dataChanges = new Subject(); private _parentNodeAriaLevel: number; diff --git a/src/components-examples/cdk/scrolling/cdk-virtual-scroll-data-source/cdk-virtual-scroll-data-source-example.ts b/src/components-examples/cdk/scrolling/cdk-virtual-scroll-data-source/cdk-virtual-scroll-data-source-example.ts index e53cac202053..88d9bef61b4d 100644 --- a/src/components-examples/cdk/scrolling/cdk-virtual-scroll-data-source/cdk-virtual-scroll-data-source-example.ts +++ b/src/components-examples/cdk/scrolling/cdk-virtual-scroll-data-source/cdk-virtual-scroll-data-source-example.ts @@ -18,8 +18,8 @@ export class MyDataSource extends DataSource { private _pageSize = 100; private _cachedData = Array.from({length: this._length}); private _fetchedPages = new Set(); - private _dataStream = new BehaviorSubject<(string | undefined)[]>(this._cachedData); - private _subscription = new Subscription(); + private readonly _dataStream = new BehaviorSubject<(string | undefined)[]>(this._cachedData); + private readonly _subscription = new Subscription(); connect(collectionViewer: CollectionViewer): Observable<(string | undefined)[]> { this._subscription.add(collectionViewer.viewChange.subscribe(range => { diff --git a/src/dev-app/datepicker/datepicker-demo.ts b/src/dev-app/datepicker/datepicker-demo.ts index 35e79276cb28..5d29ecb5b01e 100644 --- a/src/dev-app/datepicker/datepicker-demo.ts +++ b/src/dev-app/datepicker/datepicker-demo.ts @@ -149,7 +149,7 @@ export class CustomRangeStrategy {} changeDetection: ChangeDetectionStrategy.OnPush, }) export class CustomHeader implements OnDestroy { - private _destroyed = new Subject(); + private readonly _destroyed = new Subject(); constructor( private _calendar: MatCalendar, private _dateAdapter: DateAdapter, diff --git a/src/dev-app/virtual-scroll/virtual-scroll-demo.ts b/src/dev-app/virtual-scroll/virtual-scroll-demo.ts index a5ef87c28d1b..c05cf69fbe6b 100644 --- a/src/dev-app/virtual-scroll/virtual-scroll-demo.ts +++ b/src/dev-app/virtual-scroll/virtual-scroll-demo.ts @@ -34,7 +34,7 @@ export class VirtualScrollDemo implements OnDestroy { decreasingSizeData = Array(10000).fill(0) .map((_, i) => (1 + Math.floor((10000 - i) / 1000)) * 20); randomData = Array(10000).fill(0).map(() => Math.round(Math.random() * 100)); - observableData = new BehaviorSubject([]); + readonly observableData = new BehaviorSubject([]); states = [ {name: 'Alabama', capital: 'Montgomery'}, {name: 'Alaska', capital: 'Juneau'}, diff --git a/src/google-maps/google-map/google-map.ts b/src/google-maps/google-map/google-map.ts index d4d1ba9f9fec..a881b2dcac41 100644 --- a/src/google-maps/google-map/google-map.ts +++ b/src/google-maps/google-map/google-map.ts @@ -105,127 +105,129 @@ export class GoogleMap implements OnChanges, OnInit, OnDestroy { * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.bounds_changed */ - @Output() - boundsChanged: Observable = this._eventManager.getLazyEmitter('bounds_changed'); + @Output() readonly boundsChanged: Observable = + this._eventManager.getLazyEmitter('bounds_changed'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.center_changed */ - @Output() - centerChanged: Observable = this._eventManager.getLazyEmitter('center_changed'); + @Output() readonly centerChanged: Observable = + this._eventManager.getLazyEmitter('center_changed'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.click */ - @Output() - mapClick: Observable = this._eventManager - .getLazyEmitter('click'); + @Output() readonly mapClick: Observable = + this._eventManager + .getLazyEmitter('click'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dblclick */ - @Output() - mapDblclick: Observable = + @Output() readonly mapDblclick: Observable = this._eventManager.getLazyEmitter('dblclick'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.drag */ - @Output() mapDrag: Observable = this._eventManager.getLazyEmitter('drag'); + @Output() readonly mapDrag: Observable = + this._eventManager.getLazyEmitter('drag'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dragend */ - @Output() mapDragend: Observable = this._eventManager.getLazyEmitter('dragend'); + @Output() readonly mapDragend: Observable = + this._eventManager.getLazyEmitter('dragend'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dragstart */ - @Output() mapDragstart: Observable = this._eventManager.getLazyEmitter('dragstart'); + @Output() readonly mapDragstart: Observable = + this._eventManager.getLazyEmitter('dragstart'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.heading_changed */ - @Output() - headingChanged: Observable = this._eventManager.getLazyEmitter('heading_changed'); + @Output() readonly headingChanged: Observable = + this._eventManager.getLazyEmitter('heading_changed'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.idle */ - @Output() idle: Observable = this._eventManager.getLazyEmitter('idle'); + @Output() readonly idle: Observable = + this._eventManager.getLazyEmitter('idle'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.maptypeid_changed */ - @Output() - maptypeidChanged: Observable = this._eventManager.getLazyEmitter('maptypeid_changed'); + @Output() readonly maptypeidChanged: Observable = + this._eventManager.getLazyEmitter('maptypeid_changed'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mousemove */ @Output() - mapMousemove: Observable = + readonly mapMousemove: Observable = this._eventManager.getLazyEmitter('mousemove'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mouseout */ - @Output() - mapMouseout: Observable = + @Output() readonly mapMouseout: Observable = this._eventManager.getLazyEmitter('mouseout'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mouseover */ - @Output() - mapMouseover: Observable = + @Output() readonly mapMouseover: Observable = this._eventManager.getLazyEmitter('mouseover'); /** * See * developers.google.com/maps/documentation/javascript/reference/map#Map.projection_changed */ - @Output() - projectionChanged: Observable = + @Output() readonly projectionChanged: Observable = this._eventManager.getLazyEmitter('projection_changed'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.rightclick */ - @Output() - mapRightclick: Observable = + @Output() readonly mapRightclick: Observable = this._eventManager.getLazyEmitter('rightclick'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.tilesloaded */ - @Output() tilesloaded: Observable = this._eventManager.getLazyEmitter('tilesloaded'); + @Output() readonly tilesloaded: Observable = + this._eventManager.getLazyEmitter('tilesloaded'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.tilt_changed */ - @Output() tiltChanged: Observable = this._eventManager.getLazyEmitter('tilt_changed'); + @Output() readonly tiltChanged: Observable = + this._eventManager.getLazyEmitter('tilt_changed'); /** * See * https://developers.google.com/maps/documentation/javascript/reference/map#Map.zoom_changed */ - @Output() zoomChanged: Observable = this._eventManager.getLazyEmitter('zoom_changed'); + @Output() readonly zoomChanged: Observable = + this._eventManager.getLazyEmitter('zoom_changed'); constructor( private readonly _elementRef: ElementRef, diff --git a/src/google-maps/map-circle/map-circle.ts b/src/google-maps/map-circle/map-circle.ts index 97ec21df04be..78a3de30f423 100644 --- a/src/google-maps/map-circle/map-circle.ts +++ b/src/google-maps/map-circle/map-circle.ts @@ -59,102 +59,91 @@ export class MapCircle implements OnInit, OnDestroy { * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.center_changed */ - @Output() - centerChanged: Observable = this._eventManager.getLazyEmitter('center_changed'); + @Output() readonly centerChanged: Observable = + this._eventManager.getLazyEmitter('center_changed'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.click */ - @Output() - circleClick: Observable = + @Output() readonly circleClick: Observable = this._eventManager.getLazyEmitter('click'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dblclick */ - @Output() - circleDblclick: Observable = + @Output() readonly circleDblclick: Observable = this._eventManager.getLazyEmitter('dblclick'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.drag */ - @Output() - circleDrag: Observable = + @Output() readonly circleDrag: Observable = this._eventManager.getLazyEmitter('drag'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dragend */ - @Output() - circleDragend: Observable = + @Output() readonly circleDragend: Observable = this._eventManager.getLazyEmitter('dragend'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dragstart */ - @Output() - circleDragstart: Observable = + @Output() readonly circleDragstart: Observable = this._eventManager.getLazyEmitter('dragstart'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mousedown */ - @Output() - circleMousedown: Observable = + @Output() readonly circleMousedown: Observable = this._eventManager.getLazyEmitter('mousedown'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mousemove */ - @Output() - circleMousemove: Observable = + @Output() readonly circleMousemove: Observable = this._eventManager.getLazyEmitter('mousemove'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseout */ - @Output() - circleMouseout: Observable = + @Output() readonly circleMouseout: Observable = this._eventManager.getLazyEmitter('mouseout'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseover */ - @Output() - circleMouseover: Observable = + @Output() readonly circleMouseover: Observable = this._eventManager.getLazyEmitter('mouseover'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseup */ - @Output() - circleMouseup: Observable = + @Output() readonly circleMouseup: Observable = this._eventManager.getLazyEmitter('mouseup'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.radius_changed */ - @Output() - radiusChanged: Observable = this._eventManager.getLazyEmitter('radius_changed'); + @Output() readonly radiusChanged: Observable = + this._eventManager.getLazyEmitter('radius_changed'); /** * @see * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.rightclick */ - @Output() - circleRightclick: Observable = + @Output() readonly circleRightclick: Observable = this._eventManager.getLazyEmitter('rightclick'); constructor(private readonly _map: GoogleMap, private readonly _ngZone: NgZone) {} diff --git a/src/google-maps/map-directions-renderer/map-directions-renderer.ts b/src/google-maps/map-directions-renderer/map-directions-renderer.ts index 0501118ce0ec..99111b3486d0 100644 --- a/src/google-maps/map-directions-renderer/map-directions-renderer.ts +++ b/src/google-maps/map-directions-renderer/map-directions-renderer.ts @@ -61,7 +61,7 @@ export class MapDirectionsRenderer implements OnInit, OnChanges, OnDestroy { * #DirectionsRenderer.directions_changed */ @Output() - directionsChanged: Observable = + readonly directionsChanged: Observable = this._eventManager.getLazyEmitter('directions_changed'); /** The underlying google.maps.DirectionsRenderer object. */ diff --git a/src/google-maps/map-ground-overlay/map-ground-overlay.ts b/src/google-maps/map-ground-overlay/map-ground-overlay.ts index 9cfbe20cfcbd..5c8afcb79843 100644 --- a/src/google-maps/map-ground-overlay/map-ground-overlay.ts +++ b/src/google-maps/map-ground-overlay/map-ground-overlay.ts @@ -70,8 +70,7 @@ export class MapGroundOverlay implements OnInit, OnDestroy { * See * developers.google.com/maps/documentation/javascript/reference/image-overlay#GroundOverlay.click */ - @Output() - mapClick: Observable = + @Output() readonly mapClick: Observable = this._eventManager.getLazyEmitter('click'); /** @@ -79,8 +78,7 @@ export class MapGroundOverlay implements OnInit, OnDestroy { * developers.google.com/maps/documentation/javascript/reference/image-overlay * #GroundOverlay.dblclick */ - @Output() - mapDblclick: Observable = + @Output() readonly mapDblclick: Observable = this._eventManager.getLazyEmitter('dblclick'); constructor(private readonly _map: GoogleMap, private readonly _ngZone: NgZone) {} diff --git a/src/google-maps/map-info-window/map-info-window.ts b/src/google-maps/map-info-window/map-info-window.ts index 50bd4397c7ce..b69ffba2d83f 100644 --- a/src/google-maps/map-info-window/map-info-window.ts +++ b/src/google-maps/map-info-window/map-info-window.ts @@ -63,37 +63,39 @@ export class MapInfoWindow implements OnInit, OnDestroy { * See * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.closeclick */ - @Output() closeclick: Observable = this._eventManager.getLazyEmitter('closeclick'); + @Output() readonly closeclick: Observable = + this._eventManager.getLazyEmitter('closeclick'); /** * See * developers.google.com/maps/documentation/javascript/reference/info-window * #InfoWindow.content_changed */ - @Output() - contentChanged: Observable = this._eventManager.getLazyEmitter('content_changed'); + @Output() readonly contentChanged: Observable = + this._eventManager.getLazyEmitter('content_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.domready */ - @Output() domready: Observable = this._eventManager.getLazyEmitter('domready'); + @Output() readonly domready: Observable = + this._eventManager.getLazyEmitter('domready'); /** * See * developers.google.com/maps/documentation/javascript/reference/info-window * #InfoWindow.position_changed */ - @Output() - positionChanged: Observable = this._eventManager.getLazyEmitter('position_changed'); + @Output() readonly positionChanged: Observable = + this._eventManager.getLazyEmitter('position_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/info-window * #InfoWindow.zindex_changed */ - @Output() - zindexChanged: Observable = this._eventManager.getLazyEmitter('zindex_changed'); + @Output() readonly zindexChanged: Observable = + this._eventManager.getLazyEmitter('zindex_changed'); constructor(private readonly _googleMap: GoogleMap, private _elementRef: ElementRef, diff --git a/src/google-maps/map-kml-layer/map-kml-layer.ts b/src/google-maps/map-kml-layer/map-kml-layer.ts index 32cf1c820924..4b01a831e178 100644 --- a/src/google-maps/map-kml-layer/map-kml-layer.ts +++ b/src/google-maps/map-kml-layer/map-kml-layer.ts @@ -59,8 +59,7 @@ export class MapKmlLayer implements OnInit, OnDestroy { /** * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.click */ - @Output() - kmlClick: Observable = + @Output() readonly kmlClick: Observable = this._eventManager.getLazyEmitter('click'); /** @@ -68,15 +67,14 @@ export class MapKmlLayer implements OnInit, OnDestroy { * developers.google.com/maps/documentation/javascript/reference/kml * #KmlLayer.defaultviewport_changed */ - @Output() - defaultviewportChanged: Observable = + @Output() readonly defaultviewportChanged: Observable = this._eventManager.getLazyEmitter('defaultviewport_changed'); /** * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.status_changed */ - @Output() - statusChanged: Observable = this._eventManager.getLazyEmitter('status_changed'); + @Output() readonly statusChanged: Observable = + this._eventManager.getLazyEmitter('status_changed'); constructor(private readonly _map: GoogleMap, private _ngZone: NgZone) {} diff --git a/src/google-maps/map-marker-clusterer/map-marker-clusterer.ts b/src/google-maps/map-marker-clusterer/map-marker-clusterer.ts index 98498bec79dd..f8f8d85bee49 100644 --- a/src/google-maps/map-marker-clusterer/map-marker-clusterer.ts +++ b/src/google-maps/map-marker-clusterer/map-marker-clusterer.ts @@ -167,19 +167,19 @@ export class MapMarkerClusterer implements OnInit, AfterContentInit, OnChanges, * googlemaps.github.io/v3-utility-library/modules/ * _google_markerclustererplus.html#clusteringbegin */ - @Output() - clusteringbegin: Observable = this._eventManager.getLazyEmitter('clusteringbegin'); + @Output() readonly clusteringbegin: Observable = + this._eventManager.getLazyEmitter('clusteringbegin'); /** * See * googlemaps.github.io/v3-utility-library/modules/_google_markerclustererplus.html#clusteringend */ - @Output() - clusteringend: Observable = this._eventManager.getLazyEmitter('clusteringend'); + @Output() readonly clusteringend: Observable = + this._eventManager.getLazyEmitter('clusteringend'); /** Emits when a cluster has been clicked. */ @Output() - clusterClick: Observable = this._eventManager.getLazyEmitter('click'); + readonly clusterClick: Observable = this._eventManager.getLazyEmitter('click'); @ContentChildren(MapMarker, {descendants: true}) _markers: QueryList; diff --git a/src/google-maps/map-marker/map-marker.ts b/src/google-maps/map-marker/map-marker.ts index 80e61ef58ae3..cc63a2befc4a 100644 --- a/src/google-maps/map-marker/map-marker.ts +++ b/src/google-maps/map-marker/map-marker.ts @@ -109,156 +109,148 @@ export class MapMarker implements OnInit, OnChanges, OnDestroy, MapAnchorPoint { * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.animation_changed */ - @Output() - animationChanged: Observable = this._eventManager.getLazyEmitter('animation_changed'); + @Output() readonly animationChanged: Observable = + this._eventManager.getLazyEmitter('animation_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.click */ - @Output() - mapClick: Observable = + @Output() readonly mapClick: Observable = this._eventManager.getLazyEmitter('click'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.clickable_changed */ - @Output() - clickableChanged: Observable = this._eventManager.getLazyEmitter('clickable_changed'); + @Output() readonly clickableChanged: Observable = + this._eventManager.getLazyEmitter('clickable_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.cursor_changed */ - @Output() - cursorChanged: Observable = this._eventManager.getLazyEmitter('cursor_changed'); + @Output() readonly cursorChanged: Observable = + this._eventManager.getLazyEmitter('cursor_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dblclick */ - @Output() - mapDblclick: Observable = + @Output() readonly mapDblclick: Observable = this._eventManager.getLazyEmitter('dblclick'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.drag */ - @Output() - mapDrag: Observable = + @Output() readonly mapDrag: Observable = this._eventManager.getLazyEmitter('drag'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dragend */ - @Output() - mapDragend: Observable = + @Output() readonly mapDragend: Observable = this._eventManager.getLazyEmitter('dragend'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.draggable_changed */ - @Output() - draggableChanged: Observable = this._eventManager.getLazyEmitter('draggable_changed'); + @Output() readonly draggableChanged: Observable = + this._eventManager.getLazyEmitter('draggable_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dragstart */ - @Output() - mapDragstart: Observable = + @Output() readonly mapDragstart: Observable = this._eventManager.getLazyEmitter('dragstart'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.flat_changed */ - @Output() flatChanged: Observable = this._eventManager.getLazyEmitter('flat_changed'); + @Output() readonly flatChanged: Observable = + this._eventManager.getLazyEmitter('flat_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.icon_changed */ - @Output() iconChanged: Observable = this._eventManager.getLazyEmitter('icon_changed'); + @Output() readonly iconChanged: Observable = + this._eventManager.getLazyEmitter('icon_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mousedown */ - @Output() - mapMousedown: Observable = + @Output() readonly mapMousedown: Observable = this._eventManager.getLazyEmitter('mousedown'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseout */ - @Output() - mapMouseout: Observable = + @Output() readonly mapMouseout: Observable = this._eventManager.getLazyEmitter('mouseout'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseover */ - @Output() - mapMouseover: Observable = + @Output() readonly mapMouseover: Observable = this._eventManager.getLazyEmitter('mouseover'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseup */ - @Output() - mapMouseup: Observable = + @Output() readonly mapMouseup: Observable = this._eventManager.getLazyEmitter('mouseup'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.position_changed */ - @Output() - positionChanged: Observable = this._eventManager.getLazyEmitter('position_changed'); + @Output() readonly positionChanged: Observable = + this._eventManager.getLazyEmitter('position_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.rightclick */ - @Output() - mapRightclick: Observable = + @Output() readonly mapRightclick: Observable = this._eventManager.getLazyEmitter('rightclick'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.shape_changed */ - @Output() shapeChanged: - Observable = this._eventManager.getLazyEmitter('shape_changed'); + @Output() readonly shapeChanged: Observable = + this._eventManager.getLazyEmitter('shape_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.title_changed */ - @Output() - titleChanged: Observable = this._eventManager.getLazyEmitter('title_changed'); + @Output() readonly titleChanged: Observable = + this._eventManager.getLazyEmitter('title_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.visible_changed */ - @Output() - visibleChanged: Observable = this._eventManager.getLazyEmitter('visible_changed'); + @Output() readonly visibleChanged: Observable = + this._eventManager.getLazyEmitter('visible_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/marker#Marker.zindex_changed */ - @Output() - zindexChanged: Observable = this._eventManager.getLazyEmitter('zindex_changed'); + @Output() readonly zindexChanged: Observable = + this._eventManager.getLazyEmitter('zindex_changed'); /** * The underlying google.maps.Marker object. diff --git a/src/google-maps/map-polygon/map-polygon.ts b/src/google-maps/map-polygon/map-polygon.ts index 9e92ac267923..47d09fb7dd96 100644 --- a/src/google-maps/map-polygon/map-polygon.ts +++ b/src/google-maps/map-polygon/map-polygon.ts @@ -64,78 +64,67 @@ export class MapPolygon implements OnInit, OnDestroy { /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.click */ - @Output() - polygonClick: Observable = + @Output() readonly polygonClick: Observable = this._eventManager.getLazyEmitter('click'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dblclick */ - @Output() - polygonDblclick: Observable = + @Output() readonly polygonDblclick: Observable = this._eventManager.getLazyEmitter('dblclick'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.drag */ - @Output() - polygonDrag: Observable = + @Output() readonly polygonDrag: Observable = this._eventManager.getLazyEmitter('drag'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dragend */ - @Output() - polygonDragend: Observable = + @Output() readonly polygonDragend: Observable = this._eventManager.getLazyEmitter('dragend'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dragstart */ - @Output() - polygonDragstart: Observable = + @Output() readonly polygonDragstart: Observable = this._eventManager.getLazyEmitter('dragstart'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mousedown */ - @Output() - polygonMousedown: Observable = + @Output() readonly polygonMousedown: Observable = this._eventManager.getLazyEmitter('mousedown'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mousemove */ - @Output() - polygonMousemove: Observable = + @Output() readonly polygonMousemove: Observable = this._eventManager.getLazyEmitter('mousemove'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseout */ - @Output() - polygonMouseout: Observable = + @Output() readonly polygonMouseout: Observable = this._eventManager.getLazyEmitter('mouseout'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseover */ - @Output() - polygonMouseover: Observable = + @Output() readonly polygonMouseover: Observable = this._eventManager.getLazyEmitter('mouseover'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseup */ - @Output() - polygonMouseup: Observable = + @Output() readonly polygonMouseup: Observable = this._eventManager.getLazyEmitter('mouseup'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.rightclick */ - @Output() - polygonRightclick: Observable = + @Output() readonly polygonRightclick: Observable = this._eventManager.getLazyEmitter('rightclick'); constructor(private readonly _map: GoogleMap, private readonly _ngZone: NgZone) {} diff --git a/src/google-maps/map-polyline/map-polyline.ts b/src/google-maps/map-polyline/map-polyline.ts index a8ad619f1300..ed4d6a0196fc 100644 --- a/src/google-maps/map-polyline/map-polyline.ts +++ b/src/google-maps/map-polyline/map-polyline.ts @@ -62,78 +62,67 @@ export class MapPolyline implements OnInit, OnDestroy { /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.click */ - @Output() - polylineClick: Observable = + @Output() readonly polylineClick: Observable = this._eventManager.getLazyEmitter('click'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dblclick */ - @Output() - polylineDblclick: Observable = + @Output() readonly polylineDblclick: Observable = this._eventManager.getLazyEmitter('dblclick'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.drag */ - @Output() - polylineDrag: Observable = + @Output() readonly polylineDrag: Observable = this._eventManager.getLazyEmitter('drag'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dragend */ - @Output() - polylineDragend: Observable = + @Output() readonly polylineDragend: Observable = this._eventManager.getLazyEmitter('dragend'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dragstart */ - @Output() - polylineDragstart: Observable = + @Output() readonly polylineDragstart: Observable = this._eventManager.getLazyEmitter('dragstart'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mousedown */ - @Output() - polylineMousedown: Observable = + @Output() readonly polylineMousedown: Observable = this._eventManager.getLazyEmitter('mousedown'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mousemove */ - @Output() - polylineMousemove: Observable = + @Output() readonly polylineMousemove: Observable = this._eventManager.getLazyEmitter('mousemove'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseout */ - @Output() - polylineMouseout: Observable = + @Output() readonly polylineMouseout: Observable = this._eventManager.getLazyEmitter('mouseout'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseover */ - @Output() - polylineMouseover: Observable = + @Output() readonly polylineMouseover: Observable = this._eventManager.getLazyEmitter('mouseover'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseup */ - @Output() - polylineMouseup: Observable = + @Output() readonly polylineMouseup: Observable = this._eventManager.getLazyEmitter('mouseup'); /** * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.rightclick */ - @Output() - polylineRightclick: Observable = + @Output() readonly polylineRightclick: Observable = this._eventManager.getLazyEmitter('rightclick'); constructor( diff --git a/src/google-maps/map-rectangle/map-rectangle.ts b/src/google-maps/map-rectangle/map-rectangle.ts index 5638f19cdac0..48b9bdc858b9 100644 --- a/src/google-maps/map-rectangle/map-rectangle.ts +++ b/src/google-maps/map-rectangle/map-rectangle.ts @@ -54,96 +54,84 @@ export class MapRectangle implements OnInit, OnDestroy { /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.boundsChanged - */ - @Output() - boundsChanged: Observable = this._eventManager.getLazyEmitter('bounds_changed'); + */ @Output() readonly boundsChanged: Observable = + this._eventManager.getLazyEmitter('bounds_changed'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.click */ - @Output() - rectangleClick: Observable = + @Output() readonly rectangleClick: Observable = this._eventManager.getLazyEmitter('click'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dblclick */ - @Output() - rectangleDblclick: Observable = + @Output() readonly rectangleDblclick: Observable = this._eventManager.getLazyEmitter('dblclick'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.drag */ - @Output() - rectangleDrag: Observable = + @Output() readonly rectangleDrag: Observable = this._eventManager.getLazyEmitter('drag'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dragend */ - @Output() - rectangleDragend: Observable = + @Output() readonly rectangleDragend: Observable = this._eventManager.getLazyEmitter('dragend'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dragstart */ - @Output() - rectangleDragstart: Observable = + @Output() readonly rectangleDragstart: Observable = this._eventManager.getLazyEmitter('dragstart'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mousedown */ - @Output() - rectangleMousedown: Observable = + @Output() readonly rectangleMousedown: Observable = this._eventManager.getLazyEmitter('mousedown'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mousemove */ - @Output() - rectangleMousemove: Observable = + @Output() readonly rectangleMousemove: Observable = this._eventManager.getLazyEmitter('mousemove'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseout */ - @Output() - rectangleMouseout: Observable = + @Output() readonly rectangleMouseout: Observable = this._eventManager.getLazyEmitter('mouseout'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseover */ - @Output() - rectangleMouseover: Observable = + @Output() readonly rectangleMouseover: Observable = this._eventManager.getLazyEmitter('mouseover'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseup */ - @Output() - rectangleMouseup: Observable = + @Output() readonly rectangleMouseup: Observable = this._eventManager.getLazyEmitter('mouseup'); /** * See * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.rightclick */ - @Output() - rectangleRightclick: Observable = + @Output() readonly rectangleRightclick: Observable = this._eventManager.getLazyEmitter('rightclick'); constructor(private readonly _map: GoogleMap, private readonly _ngZone: NgZone) {} diff --git a/src/material-experimental/mdc-chips/chip-icons.ts b/src/material-experimental/mdc-chips/chip-icons.ts index 029f67a5c521..03475292719c 100644 --- a/src/material-experimental/mdc-chips/chip-icons.ts +++ b/src/material-experimental/mdc-chips/chip-icons.ts @@ -185,7 +185,7 @@ export class MatChipRemove extends _MatChipRemoveMixinBase implements CanDisable * Emits when the user interacts with the icon. * @docs-private */ - interaction: Subject = new Subject(); + readonly interaction = new Subject(); constructor(elementRef: ElementRef) { super(elementRef); diff --git a/src/material-experimental/mdc-chips/chip-input.ts b/src/material-experimental/mdc-chips/chip-input.ts index 489ec4e85dca..652f926f0714 100644 --- a/src/material-experimental/mdc-chips/chip-input.ts +++ b/src/material-experimental/mdc-chips/chip-input.ts @@ -105,7 +105,7 @@ export class MatChipInput implements MatChipTextControl, AfterContentInit, OnCha /** Emitted when a chip is to be added. */ @Output('matChipInputTokenEnd') - chipEnd: EventEmitter = new EventEmitter(); + readonly chipEnd: EventEmitter = new EventEmitter(); /** The input's placeholder text. */ @Input() placeholder: string = ''; diff --git a/src/material-experimental/mdc-chips/chip.ts b/src/material-experimental/mdc-chips/chip.ts index 74c5e78e9920..7286127981eb 100644 --- a/src/material-experimental/mdc-chips/chip.ts +++ b/src/material-experimental/mdc-chips/chip.ts @@ -214,7 +214,7 @@ export class MatChip extends _MatChipMixinBase implements AfterContentInit, Afte protected _highlighted: boolean = false; /** Emitted when the user interacts with the chip. */ - @Output() interaction = new EventEmitter(); + @Output() readonly interaction = new EventEmitter(); /** Emitted when the chip is destroyed. */ @Output() readonly destroyed: EventEmitter = new EventEmitter(); diff --git a/src/material-experimental/mdc-menu/menu.spec.ts b/src/material-experimental/mdc-menu/menu.spec.ts index 6705bfbc63b9..2a6aa5200c3a 100644 --- a/src/material-experimental/mdc-menu/menu.spec.ts +++ b/src/material-experimental/mdc-menu/menu.spec.ts @@ -2402,7 +2402,7 @@ class CustomMenuPanel implements MatMenuPanel { parentMenu: MatMenuPanel; @ViewChild(TemplateRef) templateRef: TemplateRef; - @Output() close = new EventEmitter(); + @Output() readonly close = new EventEmitter(); focusFirstItem = () => {}; resetActiveItem = () => {}; setPositionClasses = () => {}; diff --git a/src/material-experimental/mdc-progress-bar/progress-bar.ts b/src/material-experimental/mdc-progress-bar/progress-bar.ts index 8d3aafa00666..4cb1fe20b0bc 100644 --- a/src/material-experimental/mdc-progress-bar/progress-bar.ts +++ b/src/material-experimental/mdc-progress-bar/progress-bar.ts @@ -153,7 +153,7 @@ export class MatProgressBar extends _MatProgressBarMixinBase implements AfterVie * be emitted when animations are disabled, nor will it be emitted for modes with continuous * animations (indeterminate and query). */ - @Output() animationEnd = new EventEmitter(); + @Output() readonly animationEnd = new EventEmitter(); /** Reference to animation end subscription to be unsubscribed on destroy. */ private _animationEndSubscription = Subscription.EMPTY; diff --git a/src/material-experimental/mdc-slider/slider.spec.ts b/src/material-experimental/mdc-slider/slider.spec.ts index 7eff9b5783bf..0d0398232c4a 100644 --- a/src/material-experimental/mdc-slider/slider.spec.ts +++ b/src/material-experimental/mdc-slider/slider.spec.ts @@ -79,7 +79,7 @@ xdescribe('MDC-based MatSlider', () => { }); // TODO(devversion): MDC slider updates values with right mouse button. - // tslint:disable-next-line + // tslint:disable-next-line:ban xit('should not update when pressing the right mouse button', () => { expect(sliderInstance.value).toBe(0); @@ -386,7 +386,7 @@ xdescribe('MDC-based MatSlider', () => { }); // TODO(devversion): MDC slider does not support decimal steps. - // tslint:disable-next-line + // tslint:disable-next-line:ban xit('should truncate long decimal values when using a decimal step and the arrow keys', () => { fixture.componentInstance.step = 0.1; fixture.detectChanges(); @@ -514,7 +514,7 @@ xdescribe('MDC-based MatSlider', () => { }); // TODO(devversion): MDC does not refresh value pin if value changes programmatically. - // tslint:disable-next-line + // tslint:disable-next-line:ban xit('should format the thumb label based on the passed-in `displayWith` function if value ' + 'is updated through binding', () => { fixture.componentInstance.value = 200000; @@ -675,7 +675,7 @@ xdescribe('MDC-based MatSlider', () => { // TODO(devversion): MDC slider always emits change event on mouseup (regardless of value) // Bug tracked with: https://github.com/material-components/material-components-web/issues/5018 - // tslint:disable-next-line + // tslint:disable-next-line:ban xit('should not emit multiple changes for same value', () => { expect(testComponent.onChange).not.toHaveBeenCalled(); @@ -928,7 +928,7 @@ xdescribe('MDC-based MatSlider', () => { }); // TODO: MDC slider does not respect modifier keys. - // tslint:disable-next-line + // tslint:disable-next-line:ban xit('should ignore events modifier keys', () => { sliderInstance.value = 0; diff --git a/src/material-experimental/selection/selection.ts b/src/material-experimental/selection/selection.ts index 0f8375d901e7..c0faac0aac79 100644 --- a/src/material-experimental/selection/selection.ts +++ b/src/material-experimental/selection/selection.ts @@ -30,7 +30,7 @@ export class MatSelection extends CdkSelection { set multiple(multiple: boolean) { this._multiple = coerceBooleanProperty(multiple); } /** Emits when selection changes. */ - @Output('matSelectionChange') change = new EventEmitter>(); + @Output('matSelectionChange') readonly change = new EventEmitter>(); } /** diff --git a/src/material/chips/chip-input.ts b/src/material/chips/chip-input.ts index 61b42772e313..a11feab6eb95 100644 --- a/src/material/chips/chip-input.ts +++ b/src/material/chips/chip-input.ts @@ -101,8 +101,7 @@ export class MatChipInput implements MatChipTextControl, OnChanges, OnDestroy, A this._defaultOptions.separatorKeyCodes; /** Emitted when a chip is to be added. */ - @Output('matChipInputTokenEnd') - chipEnd: EventEmitter = new EventEmitter(); + @Output('matChipInputTokenEnd') readonly chipEnd = new EventEmitter(); /** The input's placeholder text. */ @Input() placeholder: string = ''; diff --git a/src/material/chips/chip-list.ts b/src/material/chips/chip-list.ts index ed88cf512121..33ef855907c5 100644 --- a/src/material/chips/chip-list.ts +++ b/src/material/chips/chip-list.ts @@ -112,7 +112,7 @@ export class MatChipList extends _MatChipListMixinBase implements MatFormFieldCo private _lastDestroyedChipIndex: number | null = null; /** Subject that emits when the component has been destroyed. */ - private _destroyed = new Subject(); + private readonly _destroyed = new Subject(); /** Subscription to focus changes in the chips. */ private _chipFocusSubscription: Subscription | null; @@ -313,15 +313,14 @@ export class MatChipList extends _MatChipListMixinBase implements MatFormFieldCo } /** Event emitted when the selected chip list value has been changed by the user. */ - @Output() readonly change: EventEmitter = - new EventEmitter(); + @Output() readonly change = new EventEmitter(); /** * Event that emits whenever the raw value of the chip-list changes. This is here primarily * to facilitate the two-way binding for the `value` input. * @docs-private */ - @Output() readonly valueChange: EventEmitter = new EventEmitter(); + @Output() readonly valueChange = new EventEmitter(); /** The chip components contained within this chip list. */ @ContentChildren(MatChip, { diff --git a/src/material/core/datetime/date-adapter.ts b/src/material/core/datetime/date-adapter.ts index cba0e71ba6ed..995cb9a7a34b 100644 --- a/src/material/core/datetime/date-adapter.ts +++ b/src/material/core/datetime/date-adapter.ts @@ -24,7 +24,7 @@ export function MAT_DATE_LOCALE_FACTORY(): string { export abstract class DateAdapter { /** The locale to use for all dates. */ protected locale: any; - protected _localeChanges = new Subject(); + protected readonly _localeChanges = new Subject(); /** A stream that emits when the locale changes. */ readonly localeChanges: Observable = this._localeChanges; diff --git a/src/material/datepicker/calendar-body.ts b/src/material/datepicker/calendar-body.ts index bcf7de3651cd..df7ce929666d 100644 --- a/src/material/datepicker/calendar-body.ts +++ b/src/material/datepicker/calendar-body.ts @@ -118,11 +118,11 @@ export class MatCalendarBody implements OnChanges, OnDestroy { @Input() previewEnd: number | null = null; /** Emits when a new value is selected. */ - @Output() readonly selectedValueChange: EventEmitter> = - new EventEmitter>(); + @Output() readonly selectedValueChange = new EventEmitter>(); /** Emits when the preview has changed as a result of a user action. */ - @Output() previewChange = new EventEmitter>(); + @Output() readonly previewChange = + new EventEmitter>(); /** The number of blank cells to put at the beginning for the first row. */ _firstRowOffset: number; diff --git a/src/material/datepicker/calendar.ts b/src/material/datepicker/calendar.ts index 2724cfabe834..31aba8d88cfc 100644 --- a/src/material/datepicker/calendar.ts +++ b/src/material/datepicker/calendar.ts @@ -320,7 +320,7 @@ export class MatCalendar implements AfterContentInit, AfterViewChecked, OnDes /** * Emits whenever there is a state change that the header may need to respond to. */ - stateChanges = new Subject(); + readonly stateChanges = new Subject(); constructor(_intl: MatDatepickerIntl, @Optional() private _dateAdapter: DateAdapter, diff --git a/src/material/datepicker/date-range-input.ts b/src/material/datepicker/date-range-input.ts index 75fac3df4bef..559a9251f58c 100644 --- a/src/material/datepicker/date-range-input.ts +++ b/src/material/datepicker/date-range-input.ts @@ -230,7 +230,7 @@ export class MatDateRangeInput implements MatFormFieldControl>, ngControl: NgControl | null; /** Emits when the input's state has changed. */ - stateChanges = new Subject(); + readonly stateChanges = new Subject(); constructor( private _changeDetectorRef: ChangeDetectorRef, diff --git a/src/material/datepicker/date-selection-model.ts b/src/material/datepicker/date-selection-model.ts index 4b4937b7fa42..637213b10d99 100644 --- a/src/material/datepicker/date-selection-model.ts +++ b/src/material/datepicker/date-selection-model.ts @@ -51,7 +51,7 @@ export interface DateSelectionModelChange { @Injectable() export abstract class MatDateSelectionModel> implements OnDestroy { - private _selectionChanged = new Subject>(); + private readonly _selectionChanged = new Subject>(); /** Emits when the selection has changed. */ selectionChanged: Observable> = this._selectionChanged; diff --git a/src/material/datepicker/datepicker-base.ts b/src/material/datepicker/datepicker-base.ts index 61e2c3002bc0..012101e95b41 100644 --- a/src/material/datepicker/datepicker-base.ts +++ b/src/material/datepicker/datepicker-base.ts @@ -150,7 +150,7 @@ export class MatDatepickerContent> _animationState: 'enter' | 'void' = 'enter'; /** Emits when an animation has finished. */ - _animationDone = new Subject(); + readonly _animationDone = new Subject(); /** Text for the close button. */ _closeButtonText: string; @@ -377,10 +377,10 @@ export abstract class MatDatepickerBase, S, @Input() dateClass: MatCalendarCellClassFunction; /** Emits when the datepicker has been opened. */ - @Output('opened') openedStream: EventEmitter = new EventEmitter(); + @Output('opened') readonly openedStream = new EventEmitter(); /** Emits when the datepicker has been closed. */ - @Output('closed') closedStream: EventEmitter = new EventEmitter(); + @Output('closed') readonly closedStream = new EventEmitter(); /** * Classes to be passed to the date picker panel. diff --git a/src/material/datepicker/datepicker-input-base.ts b/src/material/datepicker/datepicker-input-base.ts index 818f42b51eaf..915afbd6713b 100644 --- a/src/material/datepicker/datepicker-input-base.ts +++ b/src/material/datepicker/datepicker-input-base.ts @@ -114,7 +114,7 @@ export abstract class MatDatepickerInputBase>(); /** Emits when the internal state has changed */ - stateChanges = new Subject(); + readonly stateChanges = new Subject(); _onTouched = () => {}; _validatorOnChange = () => {}; diff --git a/src/material/expansion/expansion-panel.ts b/src/material/expansion/expansion-panel.ts index 430946d46813..0e71ec9ef257 100644 --- a/src/material/expansion/expansion-panel.ts +++ b/src/material/expansion/expansion-panel.ts @@ -120,10 +120,10 @@ export class MatExpansionPanel extends CdkAccordionItem implements AfterContentI } /** An event emitted after the body's expansion animation happens. */ - @Output() afterExpand = new EventEmitter(); + @Output() readonly afterExpand = new EventEmitter(); /** An event emitted after the body's collapse animation happens. */ - @Output() afterCollapse = new EventEmitter(); + @Output() readonly afterCollapse = new EventEmitter(); /** Stream that emits for changes in `@Input` properties. */ readonly _inputChanges = new Subject(); @@ -144,7 +144,7 @@ export class MatExpansionPanel extends CdkAccordionItem implements AfterContentI _headerId = `mat-expansion-panel-header-${uniqueId++}`; /** Stream of body animation done events. */ - _bodyAnimationDone = new Subject(); + readonly _bodyAnimationDone = new Subject(); constructor(@Optional() @SkipSelf() @Inject(MAT_ACCORDION) accordion: MatAccordionBase, _changeDetectorRef: ChangeDetectorRef, diff --git a/src/material/form-field/form-field.ts b/src/material/form-field/form-field.ts index 9b2eae680bbe..126a92a400a2 100644 --- a/src/material/form-field/form-field.ts +++ b/src/material/form-field/form-field.ts @@ -168,7 +168,7 @@ export class MatFormField extends _MatFormFieldMixinBase /** Whether the outline gap needs to be calculated next time the zone has stabilized. */ private _outlineGapCalculationNeededOnStable = false; - private _destroyed = new Subject(); + private readonly _destroyed = new Subject(); /** The form-field appearance style. */ @Input() diff --git a/src/material/list/list.ts b/src/material/list/list.ts index 45bd8538687e..244772eba225 100644 --- a/src/material/list/list.ts +++ b/src/material/list/list.ts @@ -81,7 +81,7 @@ export const MAT_NAV_LIST = new InjectionToken('MatNavList'); export class MatNavList extends _MatListMixinBase implements CanDisable, CanDisableRipple, OnChanges, OnDestroy { /** Emits when the state of the list changes. */ - _stateChanges = new Subject(); + readonly _stateChanges = new Subject(); ngOnChanges() { this._stateChanges.next(); @@ -111,7 +111,7 @@ export class MatNavList extends _MatListMixinBase implements CanDisable, CanDisa export class MatList extends _MatListMixinBase implements CanDisable, CanDisableRipple, OnChanges, OnDestroy { /** Emits when the state of the list changes. */ - _stateChanges = new Subject(); + readonly _stateChanges = new Subject(); constructor(private _elementRef: ElementRef) { super(); @@ -197,7 +197,7 @@ export class MatListItem extends _MatListItemMixinBase implements AfterContentIn CanDisableRipple, OnDestroy { private _isInteractiveList: boolean = false; private _list?: MatNavList | MatList; - private _destroyed = new Subject(); + private readonly _destroyed = new Subject(); @ContentChildren(MatLine, {descendants: true}) _lines: QueryList; @ContentChild(MatListAvatarCssMatStyler) _avatar: MatListAvatarCssMatStyler; diff --git a/src/material/list/selection-list.ts b/src/material/list/selection-list.ts index 58fd6dae486f..e01d15ae6c1b 100644 --- a/src/material/list/selection-list.ts +++ b/src/material/list/selection-list.ts @@ -418,7 +418,7 @@ export class MatSelectionList extends _MatSelectionListMixinBase implements CanD _value: string[]|null; /** Emits when the list has been destroyed. */ - private _destroyed = new Subject(); + private readonly _destroyed = new Subject(); /** View to model callback that should be called if the list or its options lost focus. */ _onTouched: () => void = () => {}; diff --git a/src/material/menu/menu-content.ts b/src/material/menu/menu-content.ts index be4281eee281..00b97edde7cf 100644 --- a/src/material/menu/menu-content.ts +++ b/src/material/menu/menu-content.ts @@ -41,7 +41,7 @@ export class MatMenuContent implements OnDestroy { private _outlet: DomPortalOutlet; /** Emits when the menu content has been attached. */ - _attached = new Subject(); + readonly _attached = new Subject(); constructor( private _template: TemplateRef, diff --git a/src/material/menu/menu-panel.ts b/src/material/menu/menu-panel.ts index a5f0f1732a46..6fe48f2e0f96 100644 --- a/src/material/menu/menu-panel.ts +++ b/src/material/menu/menu-panel.ts @@ -27,7 +27,7 @@ export interface MatMenuPanel { yPosition: MenuPositionY; overlapTrigger: boolean; templateRef: TemplateRef; - close: EventEmitter; + readonly close: EventEmitter; parentMenu?: MatMenuPanel | undefined; direction?: Direction; focusFirstItem: (origin?: FocusOrigin) => void; diff --git a/src/material/menu/menu.spec.ts b/src/material/menu/menu.spec.ts index 72eb5c62abcc..b368ccbcb984 100644 --- a/src/material/menu/menu.spec.ts +++ b/src/material/menu/menu.spec.ts @@ -2473,7 +2473,7 @@ class CustomMenuPanel implements MatMenuPanel { parentMenu: MatMenuPanel; @ViewChild(TemplateRef) templateRef: TemplateRef; - @Output() close = new EventEmitter(); + @Output() readonly close = new EventEmitter(); focusFirstItem = () => {}; resetActiveItem = () => {}; setPositionClasses = () => {}; diff --git a/src/material/menu/menu.ts b/src/material/menu/menu.ts index 99c3f7ec935f..285c13cf2584 100644 --- a/src/material/menu/menu.ts +++ b/src/material/menu/menu.ts @@ -123,7 +123,7 @@ export class _MatMenuBase implements AfterContentInit, MatMenuPanel _panelAnimationState: 'void' | 'enter' = 'void'; /** Emits whenever an animation on the menu completes. */ - _animationDone = new Subject(); + readonly _animationDone = new Subject(); /** Whether the menu is animating. */ _isAnimating: boolean; @@ -251,7 +251,7 @@ export class _MatMenuBase implements AfterContentInit, MatMenuPanel * @deprecated Switch to `closed` instead * @breaking-change 8.0.0 */ - @Output() close: EventEmitter = this.closed; + @Output() readonly close: EventEmitter = this.closed; readonly panelId = `mat-menu-panel-${menuPanelUid++}`; diff --git a/src/material/progress-bar/progress-bar.ts b/src/material/progress-bar/progress-bar.ts index dbe7e4059fac..f7d59f6ae7fa 100644 --- a/src/material/progress-bar/progress-bar.ts +++ b/src/material/progress-bar/progress-bar.ts @@ -153,7 +153,7 @@ export class MatProgressBar extends _MatProgressBarMixinBase implements CanColor * be emitted when animations are disabled, nor will it be emitted for modes with continuous * animations (indeterminate and query). */ - @Output() animationEnd = new EventEmitter(); + @Output() readonly animationEnd = new EventEmitter(); /** Reference to animation end subscription to be unsubscribed on destroy. */ private _animationEndSubscription: Subscription = Subscription.EMPTY; diff --git a/src/material/select/select.ts b/src/material/select/select.ts index 1d1cb7601500..26d5aba70c43 100644 --- a/src/material/select/select.ts +++ b/src/material/select/select.ts @@ -287,7 +287,7 @@ export abstract class _MatSelectBase extends _MatSelectMixinBase implements A _valueId = `mat-select-value-${nextUniqueId++}`; /** Emits when the panel element is finished transforming in. */ - _panelDoneAnimatingStream = new Subject(); + readonly _panelDoneAnimatingStream = new Subject(); /** Strategy that will be used to handle scrolling while the select panel is open. */ _scrollStrategy: ScrollStrategy; diff --git a/src/material/sidenav/drawer.ts b/src/material/sidenav/drawer.ts index 171a486d81c1..17804b88a89d 100644 --- a/src/material/sidenav/drawer.ts +++ b/src/material/sidenav/drawer.ts @@ -204,16 +204,16 @@ export class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestr private _openedVia: FocusOrigin | null; /** Emits whenever the drawer has started animating. */ - _animationStarted = new Subject(); + readonly _animationStarted = new Subject(); /** Emits whenever the drawer is done animating. */ - _animationEnd = new Subject(); + readonly _animationEnd = new Subject(); /** Current state of the sidenav animation. */ // @HostBinding is used in the class as it is expected to be extended. Since @Component decorator // metadata is not inherited by child classes, instead the host binding data is defined in a way // that can be inherited. - // tslint:disable:no-host-decorator-in-concrete + // tslint:disable-next-line:no-host-decorator-in-concrete @HostBinding('@transform') _animationState: 'open-instant' | 'open' | 'void' = 'void'; @@ -224,7 +224,7 @@ export class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestr /** Event emitted when the drawer has been opened. */ @Output('opened') - _openedStream = this.openedChange.pipe(filter(o => o), map(() => {})); + readonly _openedStream = this.openedChange.pipe(filter(o => o), map(() => {})); /** Event emitted when the drawer has started opening. */ @Output() @@ -235,7 +235,7 @@ export class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestr /** Event emitted when the drawer has been closed. */ @Output('closed') - _closedStream = this.openedChange.pipe(filter(o => !o), map(() => {})); + readonly _closedStream = this.openedChange.pipe(filter(o => !o), map(() => {})); /** Event emitted when the drawer has started closing. */ @Output() @@ -249,7 +249,7 @@ export class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestr /** Event emitted when the drawer's position changes. */ // tslint:disable-next-line:no-output-on-prefix - @Output('positionChanged') onPositionChanged: EventEmitter = new EventEmitter(); + @Output('positionChanged') readonly onPositionChanged = new EventEmitter(); /** * An observable that emits when the drawer mode changes. This is used by the drawer container to diff --git a/src/material/snack-bar/snack-bar-container.ts b/src/material/snack-bar/snack-bar-container.ts index d0b3112940b7..18e772f79216 100644 --- a/src/material/snack-bar/snack-bar-container.ts +++ b/src/material/snack-bar/snack-bar-container.ts @@ -39,9 +39,9 @@ import {MatSnackBarConfig} from './snack-bar-config'; */ export interface _SnackBarContainer { snackBarConfig: MatSnackBarConfig; - _onAnnounce: Subject; - _onExit: Subject; - _onEnter: Subject; + readonly _onAnnounce: Subject; + readonly _onExit: Subject; + readonly _onEnter: Subject; enter: () => void; exit: () => Observable; attachTemplatePortal: (portal: TemplatePortal) => EmbeddedViewRef; diff --git a/src/material/stepper/stepper.spec.ts b/src/material/stepper/stepper.spec.ts index 981abc46e8c5..ed6632b13c88 100644 --- a/src/material/stepper/stepper.spec.ts +++ b/src/material/stepper/stepper.spec.ts @@ -56,7 +56,7 @@ import {MatInputModule} from '../input/input-module'; const VALID_REGEX = /valid/; -let dir: {value: Direction, change: EventEmitter}; +let dir: {value: Direction, readonly change: EventEmitter}; describe('MatStepper', () => { beforeEach(() => { diff --git a/src/material/stepper/stepper.ts b/src/material/stepper/stepper.ts index 6699f9463e0c..087b69bccf06 100644 --- a/src/material/stepper/stepper.ts +++ b/src/material/stepper/stepper.ts @@ -207,7 +207,7 @@ export class MatStepper extends CdkStepper implements AfterContentInit { _iconOverrides: Record> = {}; /** Stream of animation `done` events when the body expands/collapses. */ - _animationDone = new Subject(); + readonly _animationDone = new Subject(); constructor( @Optional() dir: Directionality, diff --git a/src/material/tabs/tab-body.ts b/src/material/tabs/tab-body.ts index 01529d8dc3f7..fc04af2bbe0c 100644 --- a/src/material/tabs/tab-body.ts +++ b/src/material/tabs/tab-body.ts @@ -116,7 +116,7 @@ export abstract class _MatTabBodyBase implements OnInit, OnDestroy { _position: MatTabBodyPositionState; /** Emits when an animation on the tab is complete. */ - _translateTabComplete = new Subject(); + readonly _translateTabComplete = new Subject(); /** Event emitted when the tab begins to animate towards the center as the active tab. */ @Output() readonly _onCentering: EventEmitter = new EventEmitter(); diff --git a/src/material/tree/data-source/flat-data-source.ts b/src/material/tree/data-source/flat-data-source.ts index 6a5c56a42440..c766adf87c2e 100644 --- a/src/material/tree/data-source/flat-data-source.ts +++ b/src/material/tree/data-source/flat-data-source.ts @@ -127,11 +127,11 @@ export class MatTreeFlattener { * to type `F` for `MatTree` to consume. */ export class MatTreeFlatDataSource extends DataSource { - _flattenedData = new BehaviorSubject([]); + readonly _flattenedData = new BehaviorSubject([]); - _expandedData = new BehaviorSubject([]); + readonly _expandedData = new BehaviorSubject([]); - _data: BehaviorSubject; + readonly _data: BehaviorSubject; get data() { return this._data.value; } set data(value: T[]) { this._data.next(value); diff --git a/src/material/tree/data-source/nested-data-source.ts b/src/material/tree/data-source/nested-data-source.ts index c6e578c69d91..85a17e6608d0 100644 --- a/src/material/tree/data-source/nested-data-source.ts +++ b/src/material/tree/data-source/nested-data-source.ts @@ -18,7 +18,7 @@ import {map} from 'rxjs/operators'; * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node. */ export class MatTreeNestedDataSource extends DataSource { - _data = new BehaviorSubject([]); + readonly _data = new BehaviorSubject([]); /** * Data for the nested tree diff --git a/src/youtube-player/youtube-player.ts b/src/youtube-player/youtube-player.ts index f11b45d2b310..d403b0940be5 100644 --- a/src/youtube-player/youtube-player.ts +++ b/src/youtube-player/youtube-player.ts @@ -106,12 +106,12 @@ interface PendingPlayerState { export class YouTubePlayer implements AfterViewInit, OnDestroy, OnInit { /** Whether we're currently rendering inside a browser. */ private _isBrowser: boolean; - private _youtubeContainer = new Subject(); - private _destroyed = new Subject(); + private readonly _youtubeContainer = new Subject(); + private readonly _destroyed = new Subject(); private _player: Player | undefined; private _existingApiReadyCallback: (() => void) | undefined; private _pendingPlayerState: PendingPlayerState | undefined; - private _playerChanges = new BehaviorSubject(undefined); + private readonly _playerChanges = new BehaviorSubject(undefined); /** YouTube Video ID to view */ @Input() @@ -119,7 +119,7 @@ export class YouTubePlayer implements AfterViewInit, OnDestroy, OnInit { set videoId(videoId: string | undefined) { this._videoId.next(videoId); } - private _videoId = new BehaviorSubject(undefined); + private readonly _videoId = new BehaviorSubject(undefined); /** Height of video player */ @Input() @@ -127,7 +127,7 @@ export class YouTubePlayer implements AfterViewInit, OnDestroy, OnInit { set height(height: number | undefined) { this._height.next(height || DEFAULT_PLAYER_HEIGHT); } - private _height = new BehaviorSubject(DEFAULT_PLAYER_HEIGHT); + private readonly _height = new BehaviorSubject(DEFAULT_PLAYER_HEIGHT); /** Width of video player */ @Input() @@ -135,28 +135,29 @@ export class YouTubePlayer implements AfterViewInit, OnDestroy, OnInit { set width(width: number | undefined) { this._width.next(width || DEFAULT_PLAYER_WIDTH); } - private _width = new BehaviorSubject(DEFAULT_PLAYER_WIDTH); + private readonly _width = new BehaviorSubject(DEFAULT_PLAYER_WIDTH); /** The moment when the player is supposed to start playing */ @Input() set startSeconds(startSeconds: number | undefined) { this._startSeconds.next(startSeconds); } - private _startSeconds = new BehaviorSubject(undefined); + private readonly _startSeconds = new BehaviorSubject(undefined); /** The moment when the player is supposed to stop playing */ @Input() set endSeconds(endSeconds: number | undefined) { this._endSeconds.next(endSeconds); } - private _endSeconds = new BehaviorSubject(undefined); + private readonly _endSeconds = new BehaviorSubject(undefined); /** The suggested quality of the player */ @Input() set suggestedQuality(suggestedQuality: YT.SuggestedVideoQuality | undefined) { this._suggestedQuality.next(suggestedQuality); } - private _suggestedQuality = new BehaviorSubject(undefined); + private readonly _suggestedQuality = + new BehaviorSubject(undefined); /** * Extra parameters used to configure the player. See: @@ -177,22 +178,22 @@ export class YouTubePlayer implements AfterViewInit, OnDestroy, OnInit { @Input() showBeforeIframeApiLoads: boolean | undefined; /** Outputs are direct proxies from the player itself. */ - @Output() ready: Observable = + @Output() readonly ready: Observable = this._getLazyEmitter('onReady'); - @Output() stateChange: Observable = + @Output() readonly stateChange: Observable = this._getLazyEmitter('onStateChange'); - @Output() error: Observable = + @Output() readonly error: Observable = this._getLazyEmitter('onError'); - @Output() apiChange: Observable = + @Output() readonly apiChange: Observable = this._getLazyEmitter('onApiChange'); - @Output() playbackQualityChange: Observable = + @Output() readonly playbackQualityChange: Observable = this._getLazyEmitter('onPlaybackQualityChange'); - @Output() playbackRateChange: Observable = + @Output() readonly playbackRateChange: Observable = this._getLazyEmitter('onPlaybackRateChange'); /** The element that will be replaced by the iframe. */ diff --git a/tools/package-tools/inline-resources.ts b/tools/package-tools/inline-resources.ts index d7b8f98298fa..3eb5f19fb3de 100644 --- a/tools/package-tools/inline-resources.ts +++ b/tools/package-tools/inline-resources.ts @@ -1,5 +1,3 @@ -// tslint:disable:no-eval - import {dirname, join} from 'path'; import {readFileSync, writeFileSync} from 'fs'; import {sync as glob} from 'glob'; @@ -34,6 +32,7 @@ function inlineStyles(fileContent: string, filePath: string) { return fileContent.replace(/styleUrls:\s*(\[[\s\S]*?])/gm, (_match, styleUrlsValue) => { // The RegExp matches the array of external style files. This is a string right now and // can to be parsed using the `eval` method. The value looks like "['AAA.css', 'BBB.css']" + // tslint:disable-next-line:no-eval const styleUrls = eval(styleUrlsValue) as string[]; const styleContents = styleUrls diff --git a/tools/public_api_guard/cdk/a11y.d.ts b/tools/public_api_guard/cdk/a11y.d.ts index cc933a7fa512..a0a3fb03d7b9 100644 --- a/tools/public_api_guard/cdk/a11y.d.ts +++ b/tools/public_api_guard/cdk/a11y.d.ts @@ -37,7 +37,7 @@ export declare class CdkAriaLive implements OnDestroy { } export declare class CdkMonitorFocus implements AfterViewInit, OnDestroy { - cdkFocusChange: EventEmitter; + readonly cdkFocusChange: EventEmitter; constructor(_elementRef: ElementRef, _focusMonitor: FocusMonitor); ngAfterViewInit(): void; ngOnDestroy(): void; @@ -207,8 +207,8 @@ export declare class IsFocusableConfig { export declare class ListKeyManager { get activeItem(): T | null; get activeItemIndex(): number | null; - change: Subject; - tabOut: Subject; + readonly change: Subject; + readonly tabOut: Subject; constructor(_items: QueryList | T[]); isTyping(): boolean; onKeydown(event: KeyboardEvent): void; diff --git a/tools/public_api_guard/cdk/accordion.d.ts b/tools/public_api_guard/cdk/accordion.d.ts index a14175b381d5..ab95be95b870 100644 --- a/tools/public_api_guard/cdk/accordion.d.ts +++ b/tools/public_api_guard/cdk/accordion.d.ts @@ -16,15 +16,15 @@ export declare class CdkAccordion implements OnDestroy, OnChanges { export declare class CdkAccordionItem implements OnDestroy { protected _expansionDispatcher: UniqueSelectionDispatcher; accordion: CdkAccordion; - closed: EventEmitter; - destroyed: EventEmitter; + readonly closed: EventEmitter; + readonly destroyed: EventEmitter; get disabled(): boolean; set disabled(disabled: boolean); get expanded(): boolean; set expanded(expanded: boolean); - expandedChange: EventEmitter; + readonly expandedChange: EventEmitter; readonly id: string; - opened: EventEmitter; + readonly opened: EventEmitter; constructor(accordion: CdkAccordion, _changeDetectorRef: ChangeDetectorRef, _expansionDispatcher: UniqueSelectionDispatcher); close(): void; ngOnDestroy(): void; diff --git a/tools/public_api_guard/cdk/bidi.d.ts b/tools/public_api_guard/cdk/bidi.d.ts index cabd83e3676e..a83c328a802f 100644 --- a/tools/public_api_guard/cdk/bidi.d.ts +++ b/tools/public_api_guard/cdk/bidi.d.ts @@ -6,7 +6,7 @@ export declare class BidiModule { export declare class Dir implements Directionality, AfterContentInit, OnDestroy { _rawDir: string; - change: EventEmitter; + readonly change: EventEmitter; get dir(): Direction; set dir(value: Direction); get value(): Direction; diff --git a/tools/public_api_guard/cdk/clipboard.d.ts b/tools/public_api_guard/cdk/clipboard.d.ts index d935cc6465cc..770a939ee635 100644 --- a/tools/public_api_guard/cdk/clipboard.d.ts +++ b/tools/public_api_guard/cdk/clipboard.d.ts @@ -2,7 +2,7 @@ export declare const CDK_COPY_TO_CLIPBOARD_CONFIG: InjectionToken; + readonly copied: EventEmitter; text: string; constructor(_clipboard: Clipboard, _ngZone: NgZone, config?: CdkCopyToClipboardConfig); copy(attempts?: number): void; diff --git a/tools/public_api_guard/cdk/collections.d.ts b/tools/public_api_guard/cdk/collections.d.ts index 193e63f3038e..6a4e24eb0314 100644 --- a/tools/public_api_guard/cdk/collections.d.ts +++ b/tools/public_api_guard/cdk/collections.d.ts @@ -76,7 +76,7 @@ export interface SelectionChange { } export declare class SelectionModel { - changed: Subject>; + readonly changed: Subject>; get selected(): T[]; constructor(_multiple?: boolean, initiallySelectedValues?: T[], _emitChanges?: boolean); clear(): void; diff --git a/tools/public_api_guard/cdk/drag-drop.d.ts b/tools/public_api_guard/cdk/drag-drop.d.ts index f134e79208b0..8bbae08f47db 100644 --- a/tools/public_api_guard/cdk/drag-drop.d.ts +++ b/tools/public_api_guard/cdk/drag-drop.d.ts @@ -24,22 +24,22 @@ export declare class CdkDrag implements AfterViewInit, OnChanges, OnDes set disabled(value: boolean); dragStartDelay: DragStartDelay; dropContainer: CdkDropList; - dropped: EventEmitter>; + readonly dropped: EventEmitter>; element: ElementRef; - ended: EventEmitter; - entered: EventEmitter>; - exited: EventEmitter>; + readonly ended: EventEmitter; + readonly entered: EventEmitter>; + readonly exited: EventEmitter>; freeDragPosition: { x: number; y: number; }; lockAxis: DragAxis; - moved: Observable>; + readonly moved: Observable>; previewClass: string | string[]; previewContainer: PreviewContainer; - released: EventEmitter; + readonly released: EventEmitter; rootElementSelector: string; - started: EventEmitter; + readonly started: EventEmitter; constructor( element: ElementRef, dropContainer: CdkDropList, @@ -101,7 +101,7 @@ export interface CdkDragExit { export declare class CdkDragHandle implements OnDestroy { _parentDrag: {} | undefined; - _stateChanges: Subject; + readonly _stateChanges: Subject; get disabled(): boolean; set disabled(value: boolean); element: ElementRef; @@ -171,16 +171,16 @@ export declare class CdkDropList implements OnDestroy { data: T; get disabled(): boolean; set disabled(value: boolean); - dropped: EventEmitter>; + readonly dropped: EventEmitter>; element: ElementRef; enterPredicate: (drag: CdkDrag, drop: CdkDropList) => boolean; - entered: EventEmitter>; - exited: EventEmitter>; + readonly entered: EventEmitter>; + readonly exited: EventEmitter>; id: string; lockAxis: DragAxis; orientation: DropListOrientation; sortPredicate: (index: number, drag: CdkDrag, drop: CdkDropList) => boolean; - sorted: EventEmitter>; + readonly sorted: EventEmitter>; sortingDisabled: boolean; constructor( element: ElementRef, dragDrop: DragDrop, _changeDetectorRef: ChangeDetectorRef, _scrollDispatcher: ScrollDispatcher, _dir?: Directionality | undefined, _group?: CdkDropListGroup> | undefined, config?: DragDropConfig); @@ -261,7 +261,7 @@ export declare class DragDropRegistry { - beforeStarted: Subject; + readonly beforeStarted: Subject; constrainPosition?: (point: Point, dragRef: DragRef) => Point; data: T; get disabled(): boolean; @@ -270,7 +270,7 @@ export declare class DragRef { touch: number; mouse: number; }; - dropped: Subject<{ + readonly dropped: Subject<{ previousIndex: number; currentIndex: number; item: DragRef; @@ -280,22 +280,22 @@ export declare class DragRef { dropPoint: Point; isPointerOverContainer: boolean; }>; - ended: Subject<{ + readonly ended: Subject<{ source: DragRef; distance: Point; dropPoint: Point; }>; - entered: Subject<{ + readonly entered: Subject<{ container: DropListRef; item: DragRef; currentIndex: number; }>; - exited: Subject<{ + readonly exited: Subject<{ container: DropListRef; item: DragRef; }>; lockAxis: 'x' | 'y'; - moved: Observable<{ + readonly moved: Observable<{ source: DragRef; pointerPosition: { x: number; @@ -309,10 +309,10 @@ export declare class DragRef { }; }>; previewClass: string | string[] | undefined; - released: Subject<{ + readonly released: Subject<{ source: DragRef; }>; - started: Subject<{ + readonly started: Subject<{ source: DragRef; }>; constructor(element: ElementRef | HTMLElement, _config: DragRefConfig, _document: Document, _ngZone: NgZone, _viewportRuler: ViewportRuler, _dragDropRegistry: DragDropRegistry); @@ -355,10 +355,10 @@ export declare type DropListOrientation = 'horizontal' | 'vertical'; export declare class DropListRef { autoScrollDisabled: boolean; autoScrollStep: number; - beforeStarted: Subject; + readonly beforeStarted: Subject; data: T; disabled: boolean; - dropped: Subject<{ + readonly dropped: Subject<{ item: DragRef; currentIndex: number; previousIndex: number; @@ -370,18 +370,18 @@ export declare class DropListRef { }>; element: HTMLElement | ElementRef; enterPredicate: (drag: DragRef, drop: DropListRef) => boolean; - entered: Subject<{ + readonly entered: Subject<{ item: DragRef; container: DropListRef; currentIndex: number; }>; - exited: Subject<{ + readonly exited: Subject<{ item: DragRef; container: DropListRef; }>; lockAxis: 'x' | 'y'; sortPredicate: (index: number, drag: DragRef, drop: DropListRef) => boolean; - sorted: Subject<{ + readonly sorted: Subject<{ previousIndex: number; currentIndex: number; container: DropListRef; diff --git a/tools/public_api_guard/cdk/observers.d.ts b/tools/public_api_guard/cdk/observers.d.ts index 9e431f1239e3..94d914a85c63 100644 --- a/tools/public_api_guard/cdk/observers.d.ts +++ b/tools/public_api_guard/cdk/observers.d.ts @@ -3,7 +3,7 @@ export declare class CdkObserveContent implements AfterContentInit, OnDestroy { set debounce(value: number); get disabled(): any; set disabled(value: any); - event: EventEmitter; + readonly event: EventEmitter; constructor(_contentObserver: ContentObserver, _elementRef: ElementRef, _ngZone: NgZone); ngAfterContentInit(): void; ngOnDestroy(): void; diff --git a/tools/public_api_guard/cdk/overlay.d.ts b/tools/public_api_guard/cdk/overlay.d.ts index 1c81f6734217..def4dde5d175 100644 --- a/tools/public_api_guard/cdk/overlay.d.ts +++ b/tools/public_api_guard/cdk/overlay.d.ts @@ -6,10 +6,10 @@ export declare class BlockScrollStrategy implements ScrollStrategy { } export declare class CdkConnectedOverlay implements OnDestroy, OnChanges { - attach: EventEmitter; + readonly attach: EventEmitter; backdropClass: string; - backdropClick: EventEmitter; - detach: EventEmitter; + readonly backdropClick: EventEmitter; + readonly detach: EventEmitter; get dir(): Direction; disableClose: boolean; get flexibleDimensions(): boolean; @@ -29,11 +29,11 @@ export declare class CdkConnectedOverlay implements OnDestroy, OnChanges { set offsetY(offsetY: number); open: boolean; origin: CdkOverlayOrigin; - overlayKeydown: EventEmitter; - overlayOutsideClick: EventEmitter; + readonly overlayKeydown: EventEmitter; + readonly overlayOutsideClick: EventEmitter; get overlayRef(): OverlayRef; panelClass: string | string[]; - positionChange: EventEmitter; + readonly positionChange: EventEmitter; positionStrategy: FlexibleConnectedPositionStrategy; positions: ConnectedPosition[]; get push(): boolean; @@ -264,8 +264,8 @@ export declare class OverlayPositionBuilder { } export declare class OverlayRef implements PortalOutlet, OverlayReference { - _keydownEvents: Subject; - _outsidePointerEvents: Subject; + readonly _keydownEvents: Subject; + readonly _outsidePointerEvents: Subject; get backdropElement(): HTMLElement | null; get hostElement(): HTMLElement; get overlayElement(): HTMLElement; diff --git a/tools/public_api_guard/cdk/portal.d.ts b/tools/public_api_guard/cdk/portal.d.ts index 615686531334..887f73971a0f 100644 --- a/tools/public_api_guard/cdk/portal.d.ts +++ b/tools/public_api_guard/cdk/portal.d.ts @@ -23,7 +23,7 @@ export declare class CdkPortal extends TemplatePortal { export declare class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy { attachDomPortal: (portal: DomPortal) => void; - attached: EventEmitter; + readonly attached: EventEmitter; get attachedRef(): CdkPortalOutletAttachedRef; get portal(): Portal | null; set portal(portal: Portal | null); diff --git a/tools/public_api_guard/cdk/scrolling.d.ts b/tools/public_api_guard/cdk/scrolling.d.ts index 632b64daeb0b..c58a8fd6b605 100644 --- a/tools/public_api_guard/cdk/scrolling.d.ts +++ b/tools/public_api_guard/cdk/scrolling.d.ts @@ -84,8 +84,8 @@ export declare class CdkVirtualForOf implements CdkVirtualScrollRepeater, set cdkVirtualForTemplateCacheSize(size: number); get cdkVirtualForTrackBy(): TrackByFunction | undefined; set cdkVirtualForTrackBy(fn: TrackByFunction | undefined); - dataStream: Observable; - viewChange: Subject; + readonly dataStream: Observable; + readonly viewChange: Subject; constructor( _viewContainerRef: ViewContainerRef, _template: TemplateRef>, @@ -112,7 +112,7 @@ export declare type CdkVirtualForOfContext = { }; export interface CdkVirtualScrollRepeater { - dataStream: Observable; + readonly dataStream: Observable; measureRangeSize(range: ListRange, orientation: 'horizontal' | 'vertical'): number; } @@ -123,8 +123,8 @@ export declare class CdkVirtualScrollViewport extends CdkScrollable implements O elementRef: ElementRef; get orientation(): 'horizontal' | 'vertical'; set orientation(orientation: 'horizontal' | 'vertical'); - renderedRangeStream: Observable; - scrolledIndexChange: Observable; + readonly renderedRangeStream: Observable; + readonly scrolledIndexChange: Observable; constructor(elementRef: ElementRef, _changeDetectorRef: ChangeDetectorRef, ngZone: NgZone, _scrollStrategy: VirtualScrollStrategy, dir: Directionality, scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler); attach(forOf: CdkVirtualScrollRepeater): void; checkViewportSize(): void; diff --git a/tools/public_api_guard/cdk/stepper.d.ts b/tools/public_api_guard/cdk/stepper.d.ts index 414c8461b916..d82ee98a04ec 100644 --- a/tools/public_api_guard/cdk/stepper.d.ts +++ b/tools/public_api_guard/cdk/stepper.d.ts @@ -48,7 +48,7 @@ export declare class CdkStepLabel { } export declare class CdkStepper implements AfterContentInit, AfterViewInit, OnDestroy { - protected _destroyed: Subject; + protected readonly _destroyed: Subject; _groupId: number; protected _orientation: StepperOrientation; _stepHeader: QueryList; @@ -61,7 +61,7 @@ export declare class CdkStepper implements AfterContentInit, AfterViewInit, OnDe set selected(step: CdkStep | undefined); get selectedIndex(): number; set selectedIndex(index: number); - selectionChange: EventEmitter; + readonly selectionChange: EventEmitter; readonly steps: QueryList; constructor(_dir: Directionality, _changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef, _document: any); _getAnimationDirection(index: number): StepContentPositionState; diff --git a/tools/public_api_guard/cdk/table.d.ts b/tools/public_api_guard/cdk/table.d.ts index b2f45ff0a0de..cea82453eef1 100644 --- a/tools/public_api_guard/cdk/table.d.ts +++ b/tools/public_api_guard/cdk/table.d.ts @@ -221,7 +221,7 @@ export declare class CdkTable implements AfterContentChecked, CollectionViewe protected stickyCssClass: string; get trackBy(): TrackByFunction; set trackBy(fn: TrackByFunction); - viewChange: BehaviorSubject<{ + readonly viewChange: BehaviorSubject<{ start: number; end: number; }>; diff --git a/tools/public_api_guard/cdk/text-field.d.ts b/tools/public_api_guard/cdk/text-field.d.ts index 069cfbdd389c..59273122677d 100644 --- a/tools/public_api_guard/cdk/text-field.d.ts +++ b/tools/public_api_guard/cdk/text-field.d.ts @@ -15,7 +15,7 @@ export declare class AutofillMonitor implements OnDestroy { } export declare class CdkAutofill implements OnDestroy, OnInit { - cdkAutofill: EventEmitter; + readonly cdkAutofill: EventEmitter; constructor(_elementRef: ElementRef, _autofillMonitor: AutofillMonitor); ngOnDestroy(): void; ngOnInit(): void; diff --git a/tools/public_api_guard/cdk/tree.d.ts b/tools/public_api_guard/cdk/tree.d.ts index 0c57e902e52a..b5d564c00eb1 100644 --- a/tools/public_api_guard/cdk/tree.d.ts +++ b/tools/public_api_guard/cdk/tree.d.ts @@ -44,7 +44,7 @@ export declare class CdkTree implements AfterContentChecked, Collectio set dataSource(dataSource: DataSource | Observable | T[]); trackBy: TrackByFunction; treeControl: TreeControl; - viewChange: BehaviorSubject<{ + readonly viewChange: BehaviorSubject<{ start: number; end: number; }>; @@ -67,8 +67,8 @@ export declare class CdkTreeModule { export declare class CdkTreeNode implements DoCheck, FocusableOption, OnDestroy, OnInit { protected _data: T; - _dataChanges: Subject; - protected _destroyed: Subject; + readonly _dataChanges: Subject; + protected readonly _destroyed: Subject; protected _elementRef: ElementRef; protected _isAriaExpanded: boolean; protected _tree: CdkTree; diff --git a/tools/public_api_guard/google-maps/google-maps.d.ts b/tools/public_api_guard/google-maps/google-maps.d.ts index af7dc713285e..29080a5c78d8 100644 --- a/tools/public_api_guard/google-maps/google-maps.d.ts +++ b/tools/public_api_guard/google-maps/google-maps.d.ts @@ -1,34 +1,34 @@ export declare class GoogleMap implements OnChanges, OnInit, OnDestroy { _isBrowser: boolean; - boundsChanged: Observable; + readonly boundsChanged: Observable; set center(center: google.maps.LatLngLiteral | google.maps.LatLng); - centerChanged: Observable; + readonly centerChanged: Observable; get controls(): google.maps.MVCArray[]; get data(): google.maps.Data; googleMap?: google.maps.Map; - headingChanged: Observable; + readonly headingChanged: Observable; height: string | number | null; - idle: Observable; - mapClick: Observable; - mapDblclick: Observable; - mapDrag: Observable; - mapDragend: Observable; - mapDragstart: Observable; - mapMousemove: Observable; - mapMouseout: Observable; - mapMouseover: Observable; - mapRightclick: Observable; + readonly idle: Observable; + readonly mapClick: Observable; + readonly mapDblclick: Observable; + readonly mapDrag: Observable; + readonly mapDragend: Observable; + readonly mapDragstart: Observable; + readonly mapMousemove: Observable; + readonly mapMouseout: Observable; + readonly mapMouseover: Observable; + readonly mapRightclick: Observable; mapTypeId: google.maps.MapTypeId | undefined; get mapTypes(): google.maps.MapTypeRegistry; - maptypeidChanged: Observable; + readonly maptypeidChanged: Observable; set options(options: google.maps.MapOptions); get overlayMapTypes(): google.maps.MVCArray; - projectionChanged: Observable; - tilesloaded: Observable; - tiltChanged: Observable; + readonly projectionChanged: Observable; + readonly tilesloaded: Observable; + readonly tiltChanged: Observable; width: string | number | null; set zoom(zoom: number); - zoomChanged: Observable; + readonly zoomChanged: Observable; constructor(_elementRef: ElementRef, _ngZone: NgZone, platformId: Object); fitBounds(bounds: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral, padding?: number | google.maps.Padding): void; getBounds(): google.maps.LatLngBounds | null; @@ -86,22 +86,22 @@ export declare class MapBicyclingLayer extends MapBaseLayer { export declare class MapCircle implements OnInit, OnDestroy { set center(center: google.maps.LatLng | google.maps.LatLngLiteral); - centerChanged: Observable; + readonly centerChanged: Observable; circle?: google.maps.Circle; - circleClick: Observable; - circleDblclick: Observable; - circleDrag: Observable; - circleDragend: Observable; - circleDragstart: Observable; - circleMousedown: Observable; - circleMousemove: Observable; - circleMouseout: Observable; - circleMouseover: Observable; - circleMouseup: Observable; - circleRightclick: Observable; + readonly circleClick: Observable; + readonly circleDblclick: Observable; + readonly circleDrag: Observable; + readonly circleDragend: Observable; + readonly circleDragstart: Observable; + readonly circleMousedown: Observable; + readonly circleMousemove: Observable; + readonly circleMouseout: Observable; + readonly circleMouseover: Observable; + readonly circleMouseup: Observable; + readonly circleRightclick: Observable; set options(options: google.maps.CircleOptions); set radius(radius: number); - radiusChanged: Observable; + readonly radiusChanged: Observable; constructor(_map: GoogleMap, _ngZone: NgZone); getBounds(): google.maps.LatLngBounds; getCenter(): google.maps.LatLng; @@ -117,7 +117,7 @@ export declare class MapCircle implements OnInit, OnDestroy { export declare class MapDirectionsRenderer implements OnInit, OnChanges, OnDestroy { set directions(directions: google.maps.DirectionsResult); - directionsChanged: Observable; + readonly directionsChanged: Observable; directionsRenderer?: google.maps.DirectionsRenderer; set options(options: google.maps.DirectionsRendererOptions); constructor(_googleMap: GoogleMap, _ngZone: NgZone); @@ -160,8 +160,8 @@ export declare class MapGroundOverlay implements OnInit, OnDestroy { set bounds(bounds: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral); clickable: boolean; groundOverlay?: google.maps.GroundOverlay; - mapClick: Observable; - mapDblclick: Observable; + readonly mapClick: Observable; + readonly mapDblclick: Observable; set opacity(opacity: number); set url(url: string); constructor(_map: GoogleMap, _ngZone: NgZone); @@ -188,14 +188,14 @@ export declare class MapHeatmapLayer implements OnInit, OnChanges, OnDestroy { } export declare class MapInfoWindow implements OnInit, OnDestroy { - closeclick: Observable; - contentChanged: Observable; - domready: Observable; + readonly closeclick: Observable; + readonly contentChanged: Observable; + readonly domready: Observable; infoWindow?: google.maps.InfoWindow; set options(options: google.maps.InfoWindowOptions); set position(position: google.maps.LatLngLiteral | google.maps.LatLng); - positionChanged: Observable; - zindexChanged: Observable; + readonly positionChanged: Observable; + readonly zindexChanged: Observable; constructor(_googleMap: GoogleMap, _elementRef: ElementRef, _ngZone: NgZone); close(): void; getContent(): string | Node; @@ -209,11 +209,11 @@ export declare class MapInfoWindow implements OnInit, OnDestroy { } export declare class MapKmlLayer implements OnInit, OnDestroy { - defaultviewportChanged: Observable; - kmlClick: Observable; + readonly defaultviewportChanged: Observable; + readonly kmlClick: Observable; kmlLayer?: google.maps.KmlLayer; set options(options: google.maps.KmlLayerOptions); - statusChanged: Observable; + readonly statusChanged: Observable; set url(url: string); constructor(_map: GoogleMap, _ngZone: NgZone); getDefaultViewport(): google.maps.LatLngBounds; @@ -228,34 +228,34 @@ export declare class MapKmlLayer implements OnInit, OnDestroy { } export declare class MapMarker implements OnInit, OnChanges, OnDestroy, MapAnchorPoint { - animationChanged: Observable; + readonly animationChanged: Observable; set clickable(clickable: boolean); - clickableChanged: Observable; - cursorChanged: Observable; - draggableChanged: Observable; - flatChanged: Observable; + readonly clickableChanged: Observable; + readonly cursorChanged: Observable; + readonly draggableChanged: Observable; + readonly flatChanged: Observable; set icon(icon: string | google.maps.Icon | google.maps.Symbol); - iconChanged: Observable; + readonly iconChanged: Observable; set label(label: string | google.maps.MarkerLabel); - mapClick: Observable; - mapDblclick: Observable; - mapDrag: Observable; - mapDragend: Observable; - mapDragstart: Observable; - mapMousedown: Observable; - mapMouseout: Observable; - mapMouseover: Observable; - mapMouseup: Observable; - mapRightclick: Observable; + readonly mapClick: Observable; + readonly mapDblclick: Observable; + readonly mapDrag: Observable; + readonly mapDragend: Observable; + readonly mapDragstart: Observable; + readonly mapMousedown: Observable; + readonly mapMouseout: Observable; + readonly mapMouseover: Observable; + readonly mapMouseup: Observable; + readonly mapRightclick: Observable; marker?: google.maps.Marker; set options(options: google.maps.MarkerOptions); set position(position: google.maps.LatLngLiteral | google.maps.LatLng); - positionChanged: Observable; - shapeChanged: Observable; + readonly positionChanged: Observable; + readonly shapeChanged: Observable; set title(title: string); - titleChanged: Observable; - visibleChanged: Observable; - zindexChanged: Observable; + readonly titleChanged: Observable; + readonly visibleChanged: Observable; + readonly zindexChanged: Observable; constructor(_googleMap: GoogleMap, _ngZone: NgZone); getAnchor(): google.maps.MVCObject; getAnimation(): google.maps.Animation | null; @@ -285,9 +285,9 @@ export declare class MapMarkerClusterer implements OnInit, AfterContentInit, OnC set batchSizeIE(batchSizeIE: number); set calculator(calculator: Calculator); set clusterClass(clusterClass: string); - clusterClick: Observable; - clusteringbegin: Observable; - clusteringend: Observable; + readonly clusterClick: Observable; + readonly clusteringbegin: Observable; + readonly clusteringend: Observable; set enableRetinaIcons(enableRetinaIcons: boolean); set gridSize(gridSize: number); set ignoreHidden(ignoreHidden: boolean); @@ -335,17 +335,17 @@ export declare class MapPolygon implements OnInit, OnDestroy { set options(options: google.maps.PolygonOptions); set paths(paths: google.maps.MVCArray> | google.maps.MVCArray | google.maps.LatLng[] | google.maps.LatLngLiteral[]); polygon?: google.maps.Polygon; - polygonClick: Observable; - polygonDblclick: Observable; - polygonDrag: Observable; - polygonDragend: Observable; - polygonDragstart: Observable; - polygonMousedown: Observable; - polygonMousemove: Observable; - polygonMouseout: Observable; - polygonMouseover: Observable; - polygonMouseup: Observable; - polygonRightclick: Observable; + readonly polygonClick: Observable; + readonly polygonDblclick: Observable; + readonly polygonDrag: Observable; + readonly polygonDragend: Observable; + readonly polygonDragstart: Observable; + readonly polygonMousedown: Observable; + readonly polygonMousemove: Observable; + readonly polygonMouseout: Observable; + readonly polygonMouseover: Observable; + readonly polygonMouseup: Observable; + readonly polygonRightclick: Observable; constructor(_map: GoogleMap, _ngZone: NgZone); getDraggable(): boolean; getEditable(): boolean; @@ -362,17 +362,17 @@ export declare class MapPolyline implements OnInit, OnDestroy { set options(options: google.maps.PolylineOptions); set path(path: google.maps.MVCArray | google.maps.LatLng[] | google.maps.LatLngLiteral[]); polyline?: google.maps.Polyline; - polylineClick: Observable; - polylineDblclick: Observable; - polylineDrag: Observable; - polylineDragend: Observable; - polylineDragstart: Observable; - polylineMousedown: Observable; - polylineMousemove: Observable; - polylineMouseout: Observable; - polylineMouseover: Observable; - polylineMouseup: Observable; - polylineRightclick: Observable; + readonly polylineClick: Observable; + readonly polylineDblclick: Observable; + readonly polylineDrag: Observable; + readonly polylineDragend: Observable; + readonly polylineDragstart: Observable; + readonly polylineMousedown: Observable; + readonly polylineMousemove: Observable; + readonly polylineMouseout: Observable; + readonly polylineMouseover: Observable; + readonly polylineMouseup: Observable; + readonly polylineRightclick: Observable; constructor(_map: GoogleMap, _ngZone: NgZone); getDraggable(): boolean; getEditable(): boolean; @@ -385,21 +385,20 @@ export declare class MapPolyline implements OnInit, OnDestroy { } export declare class MapRectangle implements OnInit, OnDestroy { - set bounds(bounds: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral); - boundsChanged: Observable; + set bounds(bounds: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral); readonly boundsChanged: Observable; set options(options: google.maps.RectangleOptions); rectangle?: google.maps.Rectangle; - rectangleClick: Observable; - rectangleDblclick: Observable; - rectangleDrag: Observable; - rectangleDragend: Observable; - rectangleDragstart: Observable; - rectangleMousedown: Observable; - rectangleMousemove: Observable; - rectangleMouseout: Observable; - rectangleMouseover: Observable; - rectangleMouseup: Observable; - rectangleRightclick: Observable; + readonly rectangleClick: Observable; + readonly rectangleDblclick: Observable; + readonly rectangleDrag: Observable; + readonly rectangleDragend: Observable; + readonly rectangleDragstart: Observable; + readonly rectangleMousedown: Observable; + readonly rectangleMousemove: Observable; + readonly rectangleMouseout: Observable; + readonly rectangleMouseover: Observable; + readonly rectangleMouseup: Observable; + readonly rectangleRightclick: Observable; constructor(_map: GoogleMap, _ngZone: NgZone); getBounds(): google.maps.LatLngBounds; getDraggable(): boolean; diff --git a/tools/public_api_guard/material/chips.d.ts b/tools/public_api_guard/material/chips.d.ts index a16fcaab933c..7aaa48f60efe 100644 --- a/tools/public_api_guard/material/chips.d.ts +++ b/tools/public_api_guard/material/chips.d.ts @@ -76,7 +76,7 @@ export declare class MatChipInput implements MatChipTextControl, OnChanges, OnDe protected _elementRef: ElementRef; get addOnBlur(): boolean; set addOnBlur(value: boolean); - chipEnd: EventEmitter; + readonly chipEnd: EventEmitter; set chipList(value: MatChipList); get disabled(): boolean; set disabled(value: boolean); diff --git a/tools/public_api_guard/material/core.d.ts b/tools/public_api_guard/material/core.d.ts index 946ad2717f76..563e8df321aa 100644 --- a/tools/public_api_guard/material/core.d.ts +++ b/tools/public_api_guard/material/core.d.ts @@ -86,7 +86,7 @@ export interface CanUpdateErrorState { export declare type CanUpdateErrorStateCtor = Constructor; export declare abstract class DateAdapter { - protected _localeChanges: Subject; + protected readonly _localeChanges: Subject; protected locale: any; readonly localeChanges: Observable; abstract addCalendarDays(date: D, days: number): D; diff --git a/tools/public_api_guard/material/datepicker.d.ts b/tools/public_api_guard/material/datepicker.d.ts index aa11d7b450f3..852bd5865761 100644 --- a/tools/public_api_guard/material/datepicker.d.ts +++ b/tools/public_api_guard/material/datepicker.d.ts @@ -76,7 +76,7 @@ export declare class MatCalendar implements AfterContentInit, AfterViewChecke get startAt(): D | null; set startAt(value: D | null); startView: MatCalendarView; - stateChanges: Subject; + readonly stateChanges: Subject; readonly viewChanged: EventEmitter; readonly yearSelected: EventEmitter; yearView: MatYearView; @@ -108,7 +108,7 @@ export declare class MatCalendarBody implements OnChanges, OnDestroy { label: string; labelMinRequiredCells: number; numCols: number; - previewChange: EventEmitter | null>>; + readonly previewChange: EventEmitter | null>>; previewEnd: number | null; previewStart: number | null; rows: MatCalendarCell[][]; @@ -214,7 +214,7 @@ export declare class MatDatepickerCancel { export declare class MatDatepickerContent> extends _MatDatepickerContentMixinBase implements OnInit, AfterViewInit, OnDestroy, CanColor { _actionsPortal: TemplatePortal | null; - _animationDone: Subject; + readonly _animationDone: Subject; _animationState: 'enter' | 'void'; _calendar: MatCalendar; _closeButtonFocused: boolean; @@ -348,7 +348,7 @@ export declare class MatDateRangeInput implements MatFormFieldControl; + readonly stateChanges: Subject; get value(): DateRange | null; constructor(_changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef, control: ControlContainer, _dateAdapter: DateAdapter, _formField?: MatFormField | undefined); _getAriaLabelledby(): string | null; diff --git a/tools/public_api_guard/material/expansion.d.ts b/tools/public_api_guard/material/expansion.d.ts index a7da048bf8c5..8fc37a6a4d55 100644 --- a/tools/public_api_guard/material/expansion.d.ts +++ b/tools/public_api_guard/material/expansion.d.ts @@ -45,14 +45,14 @@ export declare class MatExpansionModule { export declare class MatExpansionPanel extends CdkAccordionItem implements AfterContentInit, OnChanges, OnDestroy { _animationMode: string; _body: ElementRef; - _bodyAnimationDone: Subject; + readonly _bodyAnimationDone: Subject; _headerId: string; readonly _inputChanges: Subject; _lazyContent: MatExpansionPanelContent; _portal: TemplatePortal; accordion: MatAccordionBase; - afterCollapse: EventEmitter; - afterExpand: EventEmitter; + readonly afterCollapse: EventEmitter; + readonly afterExpand: EventEmitter; get hideToggle(): boolean; set hideToggle(value: boolean); get togglePosition(): MatAccordionTogglePosition; diff --git a/tools/public_api_guard/material/list.d.ts b/tools/public_api_guard/material/list.d.ts index 78d29d3bc87e..f1f066901ffc 100644 --- a/tools/public_api_guard/material/list.d.ts +++ b/tools/public_api_guard/material/list.d.ts @@ -5,7 +5,7 @@ export declare const MAT_NAV_LIST: InjectionToken; export declare const MAT_SELECTION_LIST_VALUE_ACCESSOR: any; export declare class MatList extends _MatListMixinBase implements CanDisable, CanDisableRipple, OnChanges, OnDestroy { - _stateChanges: Subject; + readonly _stateChanges: Subject; constructor(_elementRef: ElementRef); _getListType(): 'list' | 'action-list' | null; ngOnChanges(): void; @@ -94,7 +94,7 @@ export declare class MatListSubheaderCssMatStyler { } export declare class MatNavList extends _MatListMixinBase implements CanDisable, CanDisableRipple, OnChanges, OnDestroy { - _stateChanges: Subject; + readonly _stateChanges: Subject; ngOnChanges(): void; ngOnDestroy(): void; static ngAcceptInputType_disableRipple: BooleanInput; diff --git a/tools/public_api_guard/material/menu.d.ts b/tools/public_api_guard/material/menu.d.ts index 20799e3c1f1d..f02e9aeb22ce 100644 --- a/tools/public_api_guard/material/menu.d.ts +++ b/tools/public_api_guard/material/menu.d.ts @@ -1,6 +1,6 @@ export declare class _MatMenuBase implements AfterContentInit, MatMenuPanel, OnInit, OnDestroy { _allItems: QueryList; - _animationDone: Subject; + readonly _animationDone: Subject; _classList: { [key: string]: boolean; }; @@ -12,7 +12,7 @@ export declare class _MatMenuBase implements AfterContentInit, MatMenuPanel; + readonly close: EventEmitter; readonly closed: EventEmitter; direction: Direction; get hasBackdrop(): boolean | undefined; @@ -80,7 +80,7 @@ export declare const matMenuAnimations: { }; export declare class MatMenuContent implements OnDestroy { - _attached: Subject; + readonly _attached: Subject; constructor(_template: TemplateRef, _componentFactoryResolver: ComponentFactoryResolver, _appRef: ApplicationRef, _injector: Injector, _viewContainerRef: ViewContainerRef, _document: any, _changeDetectorRef?: ChangeDetectorRef | undefined); attach(context?: any): void; detach(): void; @@ -130,7 +130,7 @@ export declare class MatMenuModule { export interface MatMenuPanel { addItem?: (item: T) => void; backdropClass?: string; - close: EventEmitter; + readonly close: EventEmitter; direction?: Direction; focusFirstItem: (origin?: FocusOrigin) => void; hasBackdrop?: boolean; diff --git a/tools/public_api_guard/material/progress-bar.d.ts b/tools/public_api_guard/material/progress-bar.d.ts index 7d5f70043ccd..34999c4837ad 100644 --- a/tools/public_api_guard/material/progress-bar.d.ts +++ b/tools/public_api_guard/material/progress-bar.d.ts @@ -8,7 +8,7 @@ export declare class MatProgressBar extends _MatProgressBarMixinBase implements _isNoopAnimation: boolean; _primaryValueBar: ElementRef; _rectangleFillValue: string; - animationEnd: EventEmitter; + readonly animationEnd: EventEmitter; get bufferValue(): number; set bufferValue(v: number); mode: ProgressBarMode; diff --git a/tools/public_api_guard/material/select.d.ts b/tools/public_api_guard/material/select.d.ts index 7891e6f6a22c..43df3cedd4cd 100644 --- a/tools/public_api_guard/material/select.d.ts +++ b/tools/public_api_guard/material/select.d.ts @@ -10,7 +10,7 @@ export declare abstract class _MatSelectBase extends _MatSelectMixinBase impl readonly _openedStream: Observable; protected _overlayDir: CdkConnectedOverlay; _overlayPanelClass: string | string[]; - _panelDoneAnimatingStream: Subject; + readonly _panelDoneAnimatingStream: Subject; protected _parentFormField: MatFormField; abstract _positions: ConnectedPosition[]; _scrollStrategy: ScrollStrategy; diff --git a/tools/public_api_guard/material/sidenav.d.ts b/tools/public_api_guard/material/sidenav.d.ts index ec2bec85b5cb..dfa4945d4eec 100644 --- a/tools/public_api_guard/material/sidenav.d.ts +++ b/tools/public_api_guard/material/sidenav.d.ts @@ -3,13 +3,13 @@ export declare const MAT_DRAWER_DEFAULT_AUTOSIZE: InjectionToken; export declare function MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY(): boolean; export declare class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestroy { - _animationEnd: Subject; - _animationStarted: Subject; + readonly _animationEnd: Subject; + readonly _animationStarted: Subject; _animationState: 'open-instant' | 'open' | 'void'; - _closedStream: Observable; + readonly _closedStream: Observable; _container?: MatDrawerContainer | undefined; readonly _modeChanged: Subject; - _openedStream: Observable; + readonly _openedStream: Observable; get autoFocus(): boolean; set autoFocus(value: boolean); readonly closedStart: Observable; @@ -17,7 +17,7 @@ export declare class MatDrawer implements AfterContentInit, AfterContentChecked, set disableClose(value: boolean); get mode(): MatDrawerMode; set mode(value: MatDrawerMode); - onPositionChanged: EventEmitter; + readonly onPositionChanged: EventEmitter; get opened(): boolean; set opened(value: boolean); readonly openedChange: EventEmitter; diff --git a/tools/public_api_guard/material/snack-bar.d.ts b/tools/public_api_guard/material/snack-bar.d.ts index 8dc6e77da419..12d982c3a64e 100644 --- a/tools/public_api_guard/material/snack-bar.d.ts +++ b/tools/public_api_guard/material/snack-bar.d.ts @@ -1,7 +1,7 @@ export interface _SnackBarContainer { - _onAnnounce: Subject; - _onEnter: Subject; - _onExit: Subject; + readonly _onAnnounce: Subject; + readonly _onEnter: Subject; + readonly _onExit: Subject; attachComponentPortal: (portal: ComponentPortal) => ComponentRef; attachTemplatePortal: (portal: TemplatePortal) => EmbeddedViewRef; enter: () => void; diff --git a/tools/public_api_guard/material/stepper.d.ts b/tools/public_api_guard/material/stepper.d.ts index 9ac07679ade8..f1d3e1bf8f25 100644 --- a/tools/public_api_guard/material/stepper.d.ts +++ b/tools/public_api_guard/material/stepper.d.ts @@ -63,7 +63,7 @@ export declare class MatStepLabel extends CdkStepLabel { } export declare class MatStepper extends CdkStepper implements AfterContentInit { - _animationDone: Subject; + readonly _animationDone: Subject; _iconOverrides: Record>; _icons: QueryList; _stepHeader: QueryList; diff --git a/tools/public_api_guard/material/tabs.d.ts b/tools/public_api_guard/material/tabs.d.ts index ac4ec693b509..54911b94e64f 100644 --- a/tools/public_api_guard/material/tabs.d.ts +++ b/tools/public_api_guard/material/tabs.d.ts @@ -15,7 +15,7 @@ export declare abstract class _MatTabBodyBase implements OnInit, OnDestroy { readonly _onCentering: EventEmitter; abstract _portalHost: CdkPortalOutlet; _position: MatTabBodyPositionState; - _translateTabComplete: Subject; + readonly _translateTabComplete: Subject; animationDuration: string; origin: number | null; set position(position: number); diff --git a/tools/public_api_guard/material/tree.d.ts b/tools/public_api_guard/material/tree.d.ts index bee59568641a..0436f8cc00ab 100644 --- a/tools/public_api_guard/material/tree.d.ts +++ b/tools/public_api_guard/material/tree.d.ts @@ -24,9 +24,9 @@ export declare class MatTree extends CdkTree { } export declare class MatTreeFlatDataSource extends DataSource { - _data: BehaviorSubject; - _expandedData: BehaviorSubject; - _flattenedData: BehaviorSubject; + readonly _data: BehaviorSubject; + readonly _expandedData: BehaviorSubject; + readonly _flattenedData: BehaviorSubject; get data(): T[]; set data(value: T[]); constructor(_treeControl: FlatTreeControl, _treeFlattener: MatTreeFlattener, initialData?: T[]); @@ -53,7 +53,7 @@ export declare class MatTreeModule { } export declare class MatTreeNestedDataSource extends DataSource { - _data: BehaviorSubject; + readonly _data: BehaviorSubject; get data(): T[]; set data(value: T[]); connect(collectionViewer: CollectionViewer): Observable; diff --git a/tools/public_api_guard/youtube-player/youtube-player.d.ts b/tools/public_api_guard/youtube-player/youtube-player.d.ts index 785a58aed048..fc4f1917743a 100644 --- a/tools/public_api_guard/youtube-player/youtube-player.d.ts +++ b/tools/public_api_guard/youtube-player/youtube-player.d.ts @@ -1,17 +1,17 @@ export declare class YouTubePlayer implements AfterViewInit, OnDestroy, OnInit { - apiChange: Observable; + readonly apiChange: Observable; set endSeconds(endSeconds: number | undefined); - error: Observable; + readonly error: Observable; get height(): number | undefined; set height(height: number | undefined); - playbackQualityChange: Observable; - playbackRateChange: Observable; + readonly playbackQualityChange: Observable; + readonly playbackRateChange: Observable; get playerVars(): YT.PlayerVars | undefined; set playerVars(playerVars: YT.PlayerVars | undefined); - ready: Observable; + readonly ready: Observable; showBeforeIframeApiLoads: boolean | undefined; set startSeconds(startSeconds: number | undefined); - stateChange: Observable; + readonly stateChange: Observable; set suggestedQuality(suggestedQuality: YT.SuggestedVideoQuality | undefined); get videoId(): string | undefined; set videoId(videoId: string | undefined); diff --git a/tslint.json b/tslint.json index a48d43c80a20..2a854c9d1924 100644 --- a/tslint.json +++ b/tslint.json @@ -115,6 +115,7 @@ "contextual-lifecycle": true, "contextual-decorator": true, "no-output-on-prefix": true, + "prefer-output-readonly": true, "template-no-negated-async": true, "use-lifecycle-interface": true,