diff --git a/src/material/core/common-behaviors/color.spec.ts b/src/material/core/common-behaviors/color.spec.ts deleted file mode 100644 index e81019c6cec2..000000000000 --- a/src/material/core/common-behaviors/color.spec.ts +++ /dev/null @@ -1,99 +0,0 @@ -import {mixinColor} from './color'; -import {ElementRef} from '@angular/core'; - -describe('MixinColor', () => { - it('should augment an existing class with a color property', () => { - const classWithColor = mixinColor(TestClass); - const instance = new classWithColor(); - - expect(instance.color) - .withContext('Expected the mixed-into class to have a color property') - .toBeFalsy(); - - instance.color = 'accent'; - - expect(instance.color) - .withContext('Expected the mixed-into class to have an updated color property') - .toBe('accent'); - }); - - it('should remove old color classes if new color is set', () => { - const classWithColor = mixinColor(TestClass); - const instance = new classWithColor(); - - expect(instance.testElement.classList.length) - .withContext('Expected the element to not have any classes at initialization') - .toBe(0); - - instance.color = 'primary'; - - expect(instance.testElement.classList) - .withContext('Expected the element to have the "mat-primary" class set') - .toContain('mat-primary'); - - instance.color = 'accent'; - - expect(instance.testElement.classList).not.toContain( - 'mat-primary', - 'Expected the element to no longer have "mat-primary" set.', - ); - expect(instance.testElement.classList) - .withContext('Expected the element to have the "mat-accent" class set') - .toContain('mat-accent'); - }); - - it('should allow having no color set', () => { - const classWithColor = mixinColor(TestClass); - const instance = new classWithColor(); - - expect(instance.testElement.classList.length) - .withContext('Expected the element to not have any classes at initialization') - .toBe(0); - - instance.color = 'primary'; - - expect(instance.testElement.classList) - .withContext('Expected the element to have the "mat-primary" class set') - .toContain('mat-primary'); - - instance.color = undefined; - - expect(instance.testElement.classList.length) - .withContext('Expected the element to have no color class set.') - .toBe(0); - }); - - it('should allow having a default color if specified', () => { - const classWithColor = mixinColor(TestClass, 'accent'); - const instance = new classWithColor(); - - expect(instance.testElement.classList) - .withContext('Expected the element to have the "mat-accent" class by default.') - .toContain('mat-accent'); - - instance.color = undefined; - - expect(instance.testElement.classList) - .withContext('Expected the default color "mat-accent" to be set.') - .toContain('mat-accent'); - }); - - it('should allow for the default color to change after init', () => { - const classWithColor = mixinColor(TestClass, 'accent'); - const instance = new classWithColor(); - - expect(instance.testElement.classList).toContain('mat-accent'); - - instance.defaultColor = 'warn'; - instance.color = undefined; - - expect(instance.testElement.classList).toContain('mat-warn'); - }); -}); - -class TestClass { - testElement: HTMLElement = document.createElement('div'); - - /** Fake instance of an ElementRef. */ - _elementRef = new ElementRef(this.testElement); -} diff --git a/src/material/core/common-behaviors/color.ts b/src/material/core/common-behaviors/color.ts deleted file mode 100644 index a4b657a27f71..000000000000 --- a/src/material/core/common-behaviors/color.ts +++ /dev/null @@ -1,77 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -import {AbstractConstructor, Constructor} from './constructor'; -import {ElementRef} from '@angular/core'; - -/** - * @docs-private - * @deprecated Will be removed together with `mixinColor`. - * @breaking-change 19.0.0 - */ -export interface CanColor { - /** Theme color palette for the component. */ - color: ThemePalette; - - /** Default color to fall back to if no value is set. */ - defaultColor: ThemePalette | undefined; -} - -type CanColorCtor = Constructor & AbstractConstructor; - -/** @docs-private */ -interface HasElementRef { - _elementRef: ElementRef; -} - -/** Possible color palette values. */ -export type ThemePalette = 'primary' | 'accent' | 'warn' | undefined; - -/** - * Mixin to augment a directive with a `color` property. - * @deprecated Use a plain input and host bindings instead. - * @breaking-change 19.0.0 - */ -export function mixinColor>( - base: T, - defaultColor?: ThemePalette, -): CanColorCtor & T; -export function mixinColor>( - base: T, - defaultColor?: ThemePalette, -): CanColorCtor & T { - return class extends base { - private _color: ThemePalette; - defaultColor = defaultColor; - - get color(): ThemePalette { - return this._color; - } - set color(value: ThemePalette) { - const colorPalette = value || this.defaultColor; - - if (colorPalette !== this._color) { - if (this._color) { - this._elementRef.nativeElement.classList.remove(`mat-${this._color}`); - } - if (colorPalette) { - this._elementRef.nativeElement.classList.add(`mat-${colorPalette}`); - } - - this._color = colorPalette; - } - } - - constructor(...args: any[]) { - super(...args); - - // Set the default color that can be specified from the mixin. - this.color = defaultColor; - } - }; -} diff --git a/src/material/core/common-behaviors/constructor.ts b/src/material/core/common-behaviors/constructor.ts deleted file mode 100644 index a43b48dd220d..000000000000 --- a/src/material/core/common-behaviors/constructor.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -/** @docs-private */ -export type Constructor = new (...args: any[]) => T; - -/** - * This is a permissive type for abstract class constructors. - * @docs-private - */ -export type AbstractConstructor = abstract new (...args: any[]) => T; diff --git a/src/material/core/common-behaviors/disable-ripple.spec.ts b/src/material/core/common-behaviors/disable-ripple.spec.ts deleted file mode 100644 index b60cb8dde8c2..000000000000 --- a/src/material/core/common-behaviors/disable-ripple.spec.ts +++ /dev/null @@ -1,37 +0,0 @@ -import {mixinDisableRipple} from './disable-ripple'; - -describe('mixinDisableRipple', () => { - it('should augment an existing class with a disableRipple property', () => { - const classWithMixin = mixinDisableRipple(TestClass); - const instance = new classWithMixin(); - - expect(instance.disableRipple) - .withContext('Expected the mixed-into class to have a disable-ripple property') - .toBe(false); - - instance.disableRipple = true; - - expect(instance.disableRipple) - .withContext('Expected the mixed-into class to have an updated disable-ripple property') - .toBe(true); - }); - - it('should coerce values being passed to the disableRipple property', () => { - const classWithMixin = mixinDisableRipple(TestClass); - const instance = new classWithMixin(); - - expect(instance.disableRipple) - .withContext('Expected disableRipple to be set to false initially') - .toBe(false); - - // Setting string values to the disableRipple property should be prevented by TypeScript's - // type checking, but developers can still set string values from their template bindings. - (instance as any).disableRipple = ''; - - expect(instance.disableRipple) - .withContext('Expected disableRipple to be set to true if an empty string is set as value') - .toBe(true); - }); -}); - -class TestClass {} diff --git a/src/material/core/common-behaviors/disable-ripple.ts b/src/material/core/common-behaviors/disable-ripple.ts deleted file mode 100644 index e53cdd8a8d49..000000000000 --- a/src/material/core/common-behaviors/disable-ripple.ts +++ /dev/null @@ -1,48 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -import {coerceBooleanProperty} from '@angular/cdk/coercion'; -import {AbstractConstructor, Constructor} from './constructor'; - -/** - * @docs-private - * @deprecated Will be removed together with `mixinDisableRipple`. - * @breaking-change 19.0.0 - */ -export interface CanDisableRipple { - /** Whether ripples are disabled. */ - disableRipple: boolean; -} - -type CanDisableRippleCtor = Constructor & AbstractConstructor; - -/** - * Mixin to augment a directive with a `disableRipple` property. - * @deprecated Use an input with a transform instead. - * @breaking-change 19.0.0 - */ -export function mixinDisableRipple>( - base: T, -): CanDisableRippleCtor & T; -export function mixinDisableRipple>(base: T): CanDisableRippleCtor & T { - return class extends base { - private _disableRipple: boolean = false; - - /** Whether the ripple effect is disabled or not. */ - get disableRipple(): boolean { - return this._disableRipple; - } - set disableRipple(value: any) { - this._disableRipple = coerceBooleanProperty(value); - } - - constructor(...args: any[]) { - super(...args); - } - }; -} diff --git a/src/material/core/common-behaviors/disabled.spec.ts b/src/material/core/common-behaviors/disabled.spec.ts deleted file mode 100644 index 70113214751e..000000000000 --- a/src/material/core/common-behaviors/disabled.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -import {mixinDisabled} from './disabled'; - -describe('MixinDisabled', () => { - it('should augment an existing class with a disabled property', () => { - class EmptyClass {} - - let classWithDisabled = mixinDisabled(EmptyClass); - let instance = new classWithDisabled(); - - expect(instance.disabled) - .withContext('Expected the mixed-into class to have a disabled property') - .toBe(false); - - instance.disabled = true; - expect(instance.disabled) - .withContext('Expected the mixed-into class to have an updated disabled property') - .toBe(true); - }); -}); diff --git a/src/material/core/common-behaviors/disabled.ts b/src/material/core/common-behaviors/disabled.ts deleted file mode 100644 index a60e8db83b81..000000000000 --- a/src/material/core/common-behaviors/disabled.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -import {coerceBooleanProperty} from '@angular/cdk/coercion'; -import {AbstractConstructor, Constructor} from './constructor'; - -/** - * @docs-private - * @deprecated Will be removed together with `mixinDisabled`. - * @breaking-change 19.0.0 - */ -export interface CanDisable { - /** Whether the component is disabled. */ - disabled: boolean; -} - -type CanDisableCtor = Constructor & AbstractConstructor; - -/** - * Mixin to augment a directive with a `disabled` property. - * @deprecated Use an input with a transform instead. - * @breaking-change 19.0.0 - */ -export function mixinDisabled>(base: T): CanDisableCtor & T; -export function mixinDisabled>(base: T): CanDisableCtor & T { - return class extends base { - private _disabled: boolean = false; - - get disabled(): boolean { - return this._disabled; - } - set disabled(value: any) { - this._disabled = coerceBooleanProperty(value); - } - - constructor(...args: any[]) { - super(...args); - } - }; -} diff --git a/src/material/core/common-behaviors/error-state.ts b/src/material/core/common-behaviors/error-state.ts index e20993553291..96eb4f1ee983 100644 --- a/src/material/core/common-behaviors/error-state.ts +++ b/src/material/core/common-behaviors/error-state.ts @@ -9,41 +9,10 @@ import {AbstractControl, FormGroupDirective, NgControl, NgForm} from '@angular/forms'; import {Subject} from 'rxjs'; import {ErrorStateMatcher as _ErrorStateMatcher} from '../error/error-options'; -import {AbstractConstructor, Constructor} from './constructor'; // Declare ErrorStateMatcher as an interface to have compatibility with Closure Compiler. interface ErrorStateMatcher extends _ErrorStateMatcher {} -/** - * @docs-private - * @deprecated Will be removed together with `mixinErrorState`. - * @breaking-change 19.0.0 - */ -export interface CanUpdateErrorState { - /** Updates the error state based on the provided error state matcher. */ - updateErrorState(): void; - /** Whether the component is in an error state. */ - errorState: boolean; - /** An object used to control the error state of the component. */ - errorStateMatcher: ErrorStateMatcher; -} - -type CanUpdateErrorStateCtor = Constructor & - AbstractConstructor; - -/** @docs-private */ -interface HasErrorState { - _parentFormGroup: FormGroupDirective | null; - _parentForm: NgForm | null; - _defaultErrorStateMatcher: ErrorStateMatcher; - - // These properties are defined as per the `MatFormFieldControl` interface. Since - // this mixin is commonly used with custom form-field controls, we respect the - // properties (also with the public name they need according to `MatFormFieldControl`). - ngControl: NgControl | null; - stateChanges: Subject; -} - /** * Class that tracks the error state of a component. * @docs-private @@ -77,59 +46,3 @@ export class _ErrorStateTracker { } } } - -/** - * Mixin to augment a directive with updateErrorState method. - * For component with `errorState` and need to update `errorState`. - * @deprecated Implement the `updateErrorState` method directly. - * @breaking-change 19.0.0 - */ -export function mixinErrorState>( - base: T, -): CanUpdateErrorStateCtor & T; -export function mixinErrorState>( - base: T, -): CanUpdateErrorStateCtor & T { - return class extends base { - private _tracker: _ErrorStateTracker | undefined; - - /** Whether the component is in an error state. */ - get errorState() { - return this._getTracker().errorState; - } - set errorState(value: boolean) { - this._getTracker().errorState = value; - } - - /** An object used to control the error state of the component. */ - get errorStateMatcher() { - return this._getTracker().matcher; - } - set errorStateMatcher(value: ErrorStateMatcher) { - this._getTracker().matcher = value; - } - - /** Updates the error state based on the provided error state matcher. */ - updateErrorState() { - this._getTracker().updateErrorState(); - } - - private _getTracker() { - if (!this._tracker) { - this._tracker = new _ErrorStateTracker( - this._defaultErrorStateMatcher, - this.ngControl, - this._parentFormGroup, - this._parentForm, - this.stateChanges, - ); - } - - return this._tracker; - } - - constructor(...args: any[]) { - super(...args); - } - }; -} diff --git a/src/material/core/common-behaviors/index.ts b/src/material/core/common-behaviors/index.ts index e3ed166bc3d5..4232b0e6a5ed 100644 --- a/src/material/core/common-behaviors/index.ts +++ b/src/material/core/common-behaviors/index.ts @@ -13,18 +13,5 @@ export { GranularSanityChecks, } from './common-module'; -// Note: These need to be exposed privately for cross-package type inference. e.g. if the -// experimental package uses a mixin, TS will try to write an explicit type reference that -// is equivalent to e.g. `CanColorCtor`. For this it needs these two helpers as otherwise it -// would generate a deep cross-package import that breaks in the NPM package output. -export { - Constructor as _Constructor, - AbstractConstructor as _AbstractConstructor, -} from './constructor'; - -export {CanDisable, mixinDisabled} from './disabled'; -export {CanColor, mixinColor, ThemePalette} from './color'; -export {CanDisableRipple, mixinDisableRipple} from './disable-ripple'; -export {HasTabIndex, mixinTabIndex} from './tabindex'; -export {CanUpdateErrorState, mixinErrorState, _ErrorStateTracker} from './error-state'; -export {HasInitialized, mixinInitialized} from './initialized'; +export {ThemePalette} from './palette'; +export {_ErrorStateTracker} from './error-state'; diff --git a/src/material/core/common-behaviors/initialized.spec.ts b/src/material/core/common-behaviors/initialized.spec.ts deleted file mode 100644 index 777cffddf438..000000000000 --- a/src/material/core/common-behaviors/initialized.spec.ts +++ /dev/null @@ -1,50 +0,0 @@ -import {mixinInitialized} from './initialized'; -import {HasInitialized} from '@angular/material/core'; - -describe('MixinHasInitialized', () => { - class EmptyClass {} - let instance: HasInitialized; - - beforeEach(() => { - const classWithHasInitialized = mixinInitialized(EmptyClass); - instance = new classWithHasInitialized(); - }); - - it('should emit for subscriptions made before the directive was marked as initialized', done => { - // Listen for an event from the initialized stream and mark the test as done when it emits. - instance.initialized.subscribe(() => done()); - - // Mark the class as initialized so that the stream emits and the test completes. - instance._markInitialized(); - }); - - it('should emit for subscriptions made after the directive was marked as initialized', done => { - // Mark the class as initialized so the stream emits when subscribed and the test completes. - instance._markInitialized(); - - // Listen for an event from the initialized stream and mark the test as done when it emits. - instance.initialized.subscribe(() => done()); - }); - - it('should emit for multiple subscriptions made before and after marked as initialized', done => { - // Should expect the number of notifications to match the number of subscriptions. - const expectedNotificationCount = 4; - let currentNotificationCount = 0; - - // Function that completes the test when the number of notifications meets the expectation. - function onNotified() { - currentNotificationCount++; - if (currentNotificationCount === expectedNotificationCount) { - done(); - } - } - - instance.initialized.subscribe(onNotified); // Subscription 1 - instance.initialized.subscribe(onNotified); // Subscription 2 - - instance._markInitialized(); - - instance.initialized.subscribe(onNotified); // Subscription 3 - instance.initialized.subscribe(onNotified); // Subscription 4 - }); -}); diff --git a/src/material/core/common-behaviors/initialized.ts b/src/material/core/common-behaviors/initialized.ts deleted file mode 100644 index e62f77db673b..000000000000 --- a/src/material/core/common-behaviors/initialized.ts +++ /dev/null @@ -1,95 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -import {Observable, Subscriber} from 'rxjs'; -import {Constructor} from './constructor'; - -/** - * Mixin that adds an initialized property to a directive which, when subscribed to, will emit a - * value once markInitialized has been called, which should be done during the ngOnInit function. - * If the subscription is made after it has already been marked as initialized, then it will trigger - * an emit immediately. - * @docs-private - * @deprecated Will be removed together with `mixinInitializer`. - * @breaking-change 19.0.0 - */ -export interface HasInitialized { - /** Stream that emits once during the directive/component's ngOnInit. */ - initialized: Observable; - - /** - * Sets the state as initialized and must be called during ngOnInit to notify subscribers that - * the directive has been initialized. - * @docs-private - */ - _markInitialized: () => void; -} - -type HasInitializedCtor = Constructor; - -/** - * Mixin to augment a directive with an initialized property that will emits when ngOnInit ends. - * @deprecated Track the initialized state manually. - * @breaking-change 19.0.0 - */ -export function mixinInitialized>(base: T): HasInitializedCtor & T { - return class extends base { - /** Whether this directive has been marked as initialized. */ - _isInitialized = false; - - /** - * List of subscribers that subscribed before the directive was initialized. Should be notified - * during _markInitialized. Set to null after pending subscribers are notified, and should - * not expect to be populated after. - */ - _pendingSubscribers: Subscriber[] | null = []; - - /** - * Observable stream that emits when the directive initializes. If already initialized, the - * subscriber is stored to be notified once _markInitialized is called. - */ - initialized = new Observable(subscriber => { - // If initialized, immediately notify the subscriber. Otherwise store the subscriber to notify - // when _markInitialized is called. - if (this._isInitialized) { - this._notifySubscriber(subscriber); - } else { - this._pendingSubscribers!.push(subscriber); - } - }); - - constructor(...args: any[]) { - super(...args); - } - - /** - * Marks the state as initialized and notifies pending subscribers. Should be called at the end - * of ngOnInit. - * @docs-private - */ - _markInitialized(): void { - if (this._isInitialized && (typeof ngDevMode === 'undefined' || ngDevMode)) { - throw Error( - 'This directive has already been marked as initialized and ' + - 'should not be called twice.', - ); - } - - this._isInitialized = true; - - this._pendingSubscribers!.forEach(this._notifySubscriber); - this._pendingSubscribers = null; - } - - /** Emits and completes the subscriber stream (should only emit once). */ - _notifySubscriber(subscriber: Subscriber): void { - subscriber.next(); - subscriber.complete(); - } - }; -} diff --git a/src/material/core/common-behaviors/palette.ts b/src/material/core/common-behaviors/palette.ts new file mode 100644 index 000000000000..c8e06b7fcf4a --- /dev/null +++ b/src/material/core/common-behaviors/palette.ts @@ -0,0 +1,10 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +/** Possible color palette values. */ +export type ThemePalette = 'primary' | 'accent' | 'warn' | undefined; diff --git a/src/material/core/common-behaviors/tabindex.spec.ts b/src/material/core/common-behaviors/tabindex.spec.ts deleted file mode 100644 index e2aad6ff3d8c..000000000000 --- a/src/material/core/common-behaviors/tabindex.spec.ts +++ /dev/null @@ -1,58 +0,0 @@ -import {mixinTabIndex} from './tabindex'; - -describe('mixinTabIndex', () => { - it('should augment an existing class with a tabIndex property', () => { - const classWithMixin = mixinTabIndex(TestClass); - const instance = new classWithMixin(); - - expect(instance.tabIndex) - .withContext('Expected the mixed-into class to have a tabIndex property') - .toBe(0); - - instance.tabIndex = 4; - - expect(instance.tabIndex) - .withContext('Expected the mixed-into class to have an updated tabIndex property') - .toBe(4); - }); - - it('should set tabIndex to `-1` if the disabled property is set to true', () => { - const classWithMixin = mixinTabIndex(TestClass); - const instance = new classWithMixin(); - - expect(instance.tabIndex).withContext('Expected tabIndex to be set to 0 initially').toBe(0); - - instance.disabled = true; - - expect(instance.tabIndex) - .withContext('Expected tabIndex to be set to -1 if the disabled property is set to true') - .toBe(-1); - }); - - it('should allow having a custom default tabIndex value', () => { - const classWithMixin = mixinTabIndex(TestClass, 20); - const instance = new classWithMixin(); - - expect(instance.tabIndex).withContext('Expected tabIndex to be set to 20 initially').toBe(20); - - instance.tabIndex = 0; - - expect(instance.tabIndex).withContext('Expected tabIndex to still support 0 as value').toBe(0); - }); - - it('should allow for the default tabIndex to change after init', () => { - const classWithMixin = mixinTabIndex(TestClass, 20); - const instance = new classWithMixin(); - - expect(instance.tabIndex).toBe(20); - - instance.defaultTabIndex = 50; - instance.tabIndex = undefined!; - - expect(instance.tabIndex).toBe(50); - }); -}); - -class TestClass { - disabled = false; -} diff --git a/src/material/core/common-behaviors/tabindex.ts b/src/material/core/common-behaviors/tabindex.ts deleted file mode 100644 index 79c36a3c4be5..000000000000 --- a/src/material/core/common-behaviors/tabindex.ts +++ /dev/null @@ -1,57 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -import {coerceNumberProperty} from '@angular/cdk/coercion'; -import {Constructor, AbstractConstructor} from './constructor'; -import {CanDisable} from './disabled'; - -/** - * @docs-private - * @deprecated Will be removed together with `mixinTabIndex`. - * @breaking-change 19.0.0 - */ -export interface HasTabIndex { - /** Tabindex of the component. */ - tabIndex: number; - - /** Tabindex to which to fall back to if no value is set. */ - defaultTabIndex: number; -} - -type HasTabIndexCtor = Constructor & AbstractConstructor; - -/** - * Mixin to augment a directive with a `tabIndex` property. - * @deprecated Use an input with a transform instead. - * @breaking-change 19.0.0 - */ -export function mixinTabIndex>( - base: T, - defaultTabIndex?: number, -): HasTabIndexCtor & T; -export function mixinTabIndex>( - base: T, - defaultTabIndex = 0, -): HasTabIndexCtor & T { - return class extends base implements HasTabIndex { - private _tabIndex: number = defaultTabIndex; - defaultTabIndex = defaultTabIndex; - - get tabIndex(): number { - return this.disabled ? -1 : this._tabIndex; - } - set tabIndex(value: number) { - // If the specified tabIndex value is null or undefined, fall back to the default value. - this._tabIndex = value != null ? coerceNumberProperty(value) : this.defaultTabIndex; - } - - constructor(...args: any[]) { - super(...args); - } - }; -} diff --git a/tools/public_api_guard/material/core.md b/tools/public_api_guard/material/core.md index b3e4be1c0c30..d08ba3f87de6 100644 --- a/tools/public_api_guard/material/core.md +++ b/tools/public_api_guard/material/core.md @@ -29,9 +29,6 @@ import { QueryList } from '@angular/core'; import { Subject } from 'rxjs'; import { Version } from '@angular/core'; -// @public -export type _AbstractConstructor = abstract new (...args: any[]) => T; - // @public export class AnimationCurves { // (undocumented) @@ -54,32 +51,6 @@ export class AnimationDurations { static EXITING: string; } -// @public @deprecated -export interface CanColor { - color: ThemePalette; - defaultColor: ThemePalette | undefined; -} - -// @public @deprecated -export interface CanDisable { - disabled: boolean; -} - -// @public @deprecated -export interface CanDisableRipple { - disableRipple: boolean; -} - -// @public @deprecated -export interface CanUpdateErrorState { - errorState: boolean; - errorStateMatcher: ErrorStateMatcher_2; - updateErrorState(): void; -} - -// @public -export type _Constructor = new (...args: any[]) => T; - // @public export function _countGroupLabelsBeforeOption(optionIndex: number, options: QueryList, optionGroups: QueryList): number; @@ -158,18 +129,6 @@ export interface GranularSanityChecks { version: boolean; } -// @public @deprecated -export interface HasInitialized { - initialized: Observable; - _markInitialized: () => void; -} - -// @public @deprecated -export interface HasTabIndex { - defaultTabIndex: number; - tabIndex: number; -} - // @public (undocumented) export const MAT_DATE_FORMATS: InjectionToken; @@ -429,24 +388,6 @@ export class MatRippleModule { static ɵmod: i0.ɵɵNgModuleDeclaration; } -// @public @deprecated -export function mixinColor>(base: T, defaultColor?: ThemePalette): CanColorCtor & T; - -// @public @deprecated -export function mixinDisabled>(base: T): CanDisableCtor & T; - -// @public @deprecated -export function mixinDisableRipple>(base: T): CanDisableRippleCtor & T; - -// @public @deprecated -export function mixinErrorState>(base: T): CanUpdateErrorStateCtor & T; - -// @public @deprecated -export function mixinInitialized>(base: T): HasInitializedCtor & T; - -// @public @deprecated -export function mixinTabIndex>(base: T, defaultTabIndex?: number): HasTabIndexCtor & T; - // @public export class NativeDateAdapter extends DateAdapter { constructor(