/** * @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 { BooleanInput, NumberInput } from 'cdk/coercion'; import { AfterContentInit, ElementRef, EventEmitter, NgZone, OnDestroy, } from '@angular/core'; import { Observable } from 'rxjs'; /** * Factory that creates a new MutationObserver and allows us to stub it out in unit tests. * @docs-private */ import * as ɵngcc0 from '@angular/core'; export declare class MutationObserverFactory { create(callback: MutationCallback): MutationObserver | null; static ɵfac: ɵngcc0.ɵɵFactoryDef; } /** An injectable service that allows watching elements for changes to their content. */ export declare class ContentObserver implements OnDestroy { private _mutationObserverFactory; /** Keeps track of the existing MutationObservers so they can be reused. */ private _observedElements; constructor(_mutationObserverFactory: MutationObserverFactory); ngOnDestroy(): void; /** * Observe content changes on an element. * @param element The element to observe for content changes. */ observe(element: Element): Observable; /** * Observe content changes on an element. * @param element The element to observe for content changes. */ observe(element: ElementRef): Observable; /** * Observes the given element by using the existing MutationObserver if available, or creating a * new one if not. */ private _observeElement; /** * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is * observing this element. */ private _unobserveElement; /** Clean up the underlying MutationObserver for the specified element. */ private _cleanupObserver; static ɵfac: ɵngcc0.ɵɵFactoryDef; } /** * Directive that triggers a callback whenever the content of * its associated element has changed. */ export declare class CdkObserveContent implements AfterContentInit, OnDestroy { private _contentObserver; private _elementRef; private _ngZone; /** Event emitted for each change in the element's content. */ readonly event: EventEmitter; /** * Whether observing content is disabled. This option can be used * to disconnect the underlying MutationObserver until it is needed. */ get disabled(): any; set disabled(value: any); private _disabled; /** Debounce interval for emitting the changes. */ get debounce(): number; set debounce(value: number); private _debounce; private _currentSubscription; constructor( _contentObserver: ContentObserver, _elementRef: ElementRef, _ngZone: NgZone ); ngAfterContentInit(): void; ngOnDestroy(): void; private _subscribe; private _unsubscribe; static ngAcceptInputType_disabled: BooleanInput; static ngAcceptInputType_debounce: NumberInput; static ɵfac: ɵngcc0.ɵɵFactoryDef; static ɵdir: ɵngcc0.ɵɵDirectiveDefWithMeta< CdkObserveContent, '[cdkObserveContent]', ['cdkObserveContent'], { disabled: 'cdkObserveContentDisabled'; debounce: 'debounce' }, { event: 'cdkObserveContent' }, never >; } export declare class ObserversModule { static ɵmod: ɵngcc0.ɵɵNgModuleDefWithMeta< ObserversModule, [typeof CdkObserveContent], never, [typeof CdkObserveContent] >; static ɵinj: ɵngcc0.ɵɵInjectorDef; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1jb250ZW50LmQudHMiLCJzb3VyY2VzIjpbIm9ic2VydmUtY29udGVudC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQTtBQUNBOzs7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG4vKipcbiAqIEZhY3RvcnkgdGhhdCBjcmVhdGVzIGEgbmV3IE11dGF0aW9uT2JzZXJ2ZXIgYW5kIGFsbG93cyB1cyB0byBzdHViIGl0IG91dCBpbiB1bml0IHRlc3RzLlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBNdXRhdGlvbk9ic2VydmVyRmFjdG9yeSB7XG4gICAgY3JlYXRlKGNhbGxiYWNrOiBNdXRhdGlvbkNhbGxiYWNrKTogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG59XG4vKiogQW4gaW5qZWN0YWJsZSBzZXJ2aWNlIHRoYXQgYWxsb3dzIHdhdGNoaW5nIGVsZW1lbnRzIGZvciBjaGFuZ2VzIHRvIHRoZWlyIGNvbnRlbnQuICovXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBDb250ZW50T2JzZXJ2ZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgX211dGF0aW9uT2JzZXJ2ZXJGYWN0b3J5O1xuICAgIC8qKiBLZWVwcyB0cmFjayBvZiB0aGUgZXhpc3RpbmcgTXV0YXRpb25PYnNlcnZlcnMgc28gdGhleSBjYW4gYmUgcmV1c2VkLiAqL1xuICAgIHByaXZhdGUgX29ic2VydmVkRWxlbWVudHM7XG4gICAgY29uc3RydWN0b3IoX211dGF0aW9uT2JzZXJ2ZXJGYWN0b3J5OiBNdXRhdGlvbk9ic2VydmVyRmFjdG9yeSk7XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBPYnNlcnZlIGNvbnRlbnQgY2hhbmdlcyBvbiBhbiBlbGVtZW50LlxuICAgICAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IHRvIG9ic2VydmUgZm9yIGNvbnRlbnQgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBvYnNlcnZlKGVsZW1lbnQ6IEVsZW1lbnQpOiBPYnNlcnZhYmxlPE11dGF0aW9uUmVjb3JkW10+O1xuICAgIC8qKlxuICAgICAqIE9ic2VydmUgY29udGVudCBjaGFuZ2VzIG9uIGFuIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIGVsZW1lbnQgVGhlIGVsZW1lbnQgdG8gb2JzZXJ2ZSBmb3IgY29udGVudCBjaGFuZ2VzLlxuICAgICAqL1xuICAgIG9ic2VydmUoZWxlbWVudDogRWxlbWVudFJlZjxFbGVtZW50Pik6IE9ic2VydmFibGU8TXV0YXRpb25SZWNvcmRbXT47XG4gICAgLyoqXG4gICAgICogT2JzZXJ2ZXMgdGhlIGdpdmVuIGVsZW1lbnQgYnkgdXNpbmcgdGhlIGV4aXN0aW5nIE11dGF0aW9uT2JzZXJ2ZXIgaWYgYXZhaWxhYmxlLCBvciBjcmVhdGluZyBhXG4gICAgICogbmV3IG9uZSBpZiBub3QuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb2JzZXJ2ZUVsZW1lbnQ7XG4gICAgLyoqXG4gICAgICogVW4tb2JzZXJ2ZXMgdGhlIGdpdmVuIGVsZW1lbnQgYW5kIGNsZWFucyB1cCB0aGUgdW5kZXJseWluZyBNdXRhdGlvbk9ic2VydmVyIGlmIG5vYm9keSBlbHNlIGlzXG4gICAgICogb2JzZXJ2aW5nIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF91bm9ic2VydmVFbGVtZW50O1xuICAgIC8qKiBDbGVhbiB1cCB0aGUgdW5kZXJseWluZyBNdXRhdGlvbk9ic2VydmVyIGZvciB0aGUgc3BlY2lmaWVkIGVsZW1lbnQuICovXG4gICAgcHJpdmF0ZSBfY2xlYW51cE9ic2VydmVyO1xufVxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCB0cmlnZ2VycyBhIGNhbGxiYWNrIHdoZW5ldmVyIHRoZSBjb250ZW50IG9mXG4gKiBpdHMgYXNzb2NpYXRlZCBlbGVtZW50IGhhcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBDZGtPYnNlcnZlQ29udGVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBfY29udGVudE9ic2VydmVyO1xuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY7XG4gICAgcHJpdmF0ZSBfbmdab25lO1xuICAgIC8qKiBFdmVudCBlbWl0dGVkIGZvciBlYWNoIGNoYW5nZSBpbiB0aGUgZWxlbWVudCdzIGNvbnRlbnQuICovXG4gICAgcmVhZG9ubHkgZXZlbnQ6IEV2ZW50RW1pdHRlcjxNdXRhdGlvblJlY29yZFtdPjtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9ic2VydmluZyBjb250ZW50IGlzIGRpc2FibGVkLiBUaGlzIG9wdGlvbiBjYW4gYmUgdXNlZFxuICAgICAqIHRvIGRpc2Nvbm5lY3QgdGhlIHVuZGVybHlpbmcgTXV0YXRpb25PYnNlcnZlciB1bnRpbCBpdCBpcyBuZWVkZWQuXG4gICAgICovXG4gICAgZ2V0IGRpc2FibGVkKCk6IGFueTtcbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGFueSk7XG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ7XG4gICAgLyoqIERlYm91bmNlIGludGVydmFsIGZvciBlbWl0dGluZyB0aGUgY2hhbmdlcy4gKi9cbiAgICBnZXQgZGVib3VuY2UoKTogbnVtYmVyO1xuICAgIHNldCBkZWJvdW5jZSh2YWx1ZTogbnVtYmVyKTtcbiAgICBwcml2YXRlIF9kZWJvdW5jZTtcbiAgICBwcml2YXRlIF9jdXJyZW50U3Vic2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKF9jb250ZW50T2JzZXJ2ZXI6IENvbnRlbnRPYnNlcnZlciwgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBfbmdab25lOiBOZ1pvbmUpO1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkO1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQ7XG4gICAgcHJpdmF0ZSBfc3Vic2NyaWJlO1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlO1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kZWJvdW5jZTogTnVtYmVySW5wdXQ7XG59XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBPYnNlcnZlcnNNb2R1bGUge1xufVxuIl19