blob: 878178459979f88b5912715ceae00777df646819 [file] [log] [blame]
/**
* @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 { Platform } from '@angular/cdk/platform';
import { ElementRef, InjectionToken, NgZone, OnDestroy, OnInit } from '@angular/core';
import { RippleRef } from './ripple-ref';
import { RippleAnimationConfig, RippleConfig, RippleTarget } from './ripple-renderer';
/** Configurable options for `matRipple`. */
export interface RippleGlobalOptions {
/**
* Whether ripples should be disabled. Ripples can be still launched manually by using
* the `launch()` method. Therefore focus indicators will still show up.
*/
disabled?: boolean;
/**
* Configuration for the animation duration of the ripples. There are two phases with different
* durations for the ripples. The animation durations will be overwritten if the
* `NoopAnimationsModule` is being used.
*/
animation?: RippleAnimationConfig;
/**
* Whether ripples should start fading out immediately after the mouse our touch is released. By
* default, ripples will wait for the enter animation to complete and for mouse or touch release.
*/
terminateOnPointerUp?: boolean;
}
/** Injection token that can be used to specify the global ripple options. */
export declare const MAT_RIPPLE_GLOBAL_OPTIONS: InjectionToken<RippleGlobalOptions>;
export declare class MatRipple implements OnInit, OnDestroy, RippleTarget {
private _elementRef;
/** Custom color for all ripples. */
color: string;
/** Whether the ripples should be visible outside the component's bounds. */
unbounded: boolean;
/**
* Whether the ripple always originates from the center of the host element's bounds, rather
* than originating from the location of the click event.
*/
centered: boolean;
/**
* If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius
* will be the distance from the center of the ripple to the furthest corner of the host element's
* bounding rectangle.
*/
radius: number;
/**
* Configuration for the ripple animation. Allows modifying the enter and exit animation
* duration of the ripples. The animation durations will be overwritten if the
* `NoopAnimationsModule` is being used.
*/
animation: RippleAnimationConfig;
/**
* Whether click events will not trigger the ripple. Ripples can be still launched manually
* by using the `launch()` method.
*/
disabled: boolean;
private _disabled;
/**
* The element that triggers the ripple when click events are received.
* Defaults to the directive's host element.
*/
trigger: HTMLElement;
private _trigger;
/** Renderer for the ripple DOM manipulations. */
private _rippleRenderer;
/** Options that are set globally for all ripples. */
private _globalOptions;
/** Whether ripple directive is initialized and the input bindings are set. */
private _isInitialized;
constructor(_elementRef: ElementRef<HTMLElement>, ngZone: NgZone, platform: Platform, globalOptions?: RippleGlobalOptions, animationMode?: string);
ngOnInit(): void;
ngOnDestroy(): void;
/** Fades out all currently showing ripple elements. */
fadeOutAll(): void;
/**
* Ripple configuration from the directive's input values.
* @docs-private Implemented as part of RippleTarget
*/
readonly rippleConfig: RippleConfig;
/**
* Whether ripples on pointer-down are disabled or not.
* @docs-private Implemented as part of RippleTarget
*/
readonly rippleDisabled: boolean;
/** Sets up the trigger event listeners if ripples are enabled. */
private _setupTriggerEventsIfEnabled;
/**
* Launches a manual ripple using the specified ripple configuration.
* @param config Configuration for the manual ripple.
*/
launch(config: RippleConfig): RippleRef;
/**
* Launches a manual ripple at the specified coordinates within the element.
* @param x Coordinate within the element, along the X axis at which to fade-in the ripple.
* @param y Coordinate within the element, along the Y axis at which to fade-in the ripple.
* @param config Optional ripple configuration for the manual ripple.
*/
launch(x: number, y: number, config?: RippleConfig): RippleRef;
}