UNPKG

ng-click-outside2

Version:

Angular directive for handling click events outside an element.

139 lines (132 loc) 6.38 kB
import * as i0 from '@angular/core'; import { OnDestroy, ElementRef, NgZone } from '@angular/core'; /** * Optimization for Treeshaking: https://angular.io/guide/lightweight-injection-tokens */ declare abstract class NgClickOutsideExcludeToken { abstract isExclude(target: any): boolean; } /** * Directive to exclude elements from the click-outside */ declare class NgClickOutsideExcludeDirective extends NgClickOutsideExcludeToken { /** * A comma-separated string of DOM element queries to exclude when clicking outside of the element. * For example: `[exclude]="'button,.btn-primary'"`. */ clickOutsideExclude: i0.InputSignal<string>; private document; excludeCheck(): HTMLElement[]; isExclude(target: any): boolean; static ɵfac: i0.ɵɵFactoryDeclaration<NgClickOutsideExcludeDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NgClickOutsideExcludeDirective, "[clickOutsideExclude]", never, { "clickOutsideExclude": { "alias": "clickOutsideExclude"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>; } /** * Directive to detect clicks outside of the current element * * ```typescript * @Component({ * selector: 'app', * template: ` * <div (clickOutside)="onClickedOutside($event)">Click outside this</div> * ` * }) * export class AppComponent { * onClickedOutside(e: Event) { * console.log('Clicked outside:', e); * } * } * ``` */ declare class NgClickOutsideDirective implements OnDestroy { /** * Enables directive. */ clickOutsideEnabled: i0.InputSignalWithTransform<boolean, unknown>; /** * A comma-separated list of events to cause the trigger. * ### For example, for additional mobile support: * `[clickOutsideEvents]="'click,touchstart'"` */ clickOutsideEvents: i0.InputSignalWithTransform<string[], string | string[]>; /** * Outside Click Event */ clickOutside: i0.OutputEmitterRef<Event>; excludeDirective: NgClickOutsideExcludeToken | null; protected _el: ElementRef<any>; protected _ngZone: NgZone; private document; lastRemoved?: Node[]; mutationObserver?: MutationObserver; constructor(); ngOnDestroy(): void; protected _init(): void; protected _initOnClickBody(): void; protected _emit(ev: Event): void; protected initListener(): void; private initMutationObserver; protected _initClickOutsideListener(): void; protected _removeClickOutsideListener(): void; private _onClickBody; protected gotRemoved(target: Node, list?: Node[] | undefined): boolean; private resetLastRemovedList; static ɵfac: i0.ɵɵFactoryDeclaration<NgClickOutsideDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NgClickOutsideDirective, "[clickOutside]:not([delayClickOutsideInit]):not([attachOutsideOnClick])", never, { "clickOutsideEnabled": { "alias": "clickOutsideEnabled"; "required": false; "isSignal": true; }; "clickOutsideEvents": { "alias": "clickOutsideEvents"; "required": false; "isSignal": true; }; }, { "clickOutside": "clickOutside"; }, never, never, true, never>; } /** * Directive only starts after a single click and the outside click event handler * will then be removed after a click outside has occurred. */ declare class NgClickOutsideAttachOutsideDirective extends NgClickOutsideDirective implements OnDestroy { /** * By default, the outside click event handler is automatically attached. * * Explicitely setting this to `true`sets the handler after the element is clicked. The outside click event handler * will then be removed after a click outside has occurred. */ attachOutsideOnClick: i0.InputSignalWithTransform<boolean, unknown>; constructor(); ngOnDestroy(): void; protected _init(): void; protected _emit(ev: Event): void; protected _initAttachOutsideOnClickListener(): void; protected _removeAttachOutsideOnClickListener(): void; static ɵfac: i0.ɵɵFactoryDeclaration<NgClickOutsideAttachOutsideDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NgClickOutsideAttachOutsideDirective, "[clickOutside][attachOutsideOnClick]", never, { "attachOutsideOnClick": { "alias": "attachOutsideOnClick"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>; } /** * Click oustside Directive but with an setTimeout on the listener * This may help for items that are conditionally shown ([see issue #13](https://github.com/arkon/ng-click-outside/issues/13)). */ declare class NgClickOutsideDelayOutsideDirective extends NgClickOutsideDirective { /** * Delays the initialization of the click outside handler. * This may help for items that are conditionally shown ([see issue #13](https://github.com/arkon/ng-click-outside/issues/13)). */ delayClickOutsideInit: i0.InputSignalWithTransform<boolean, unknown>; protected _initOnClickBody(): void; static ɵfac: i0.ɵɵFactoryDeclaration<NgClickOutsideDelayOutsideDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NgClickOutsideDelayOutsideDirective, "[clickOutside][delayClickOutsideInit]", never, { "delayClickOutsideInit": { "alias": "delayClickOutsideInit"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>; } /** * emits an event when user clicks outside of applications' window while it's visible. * Especially useful if page contains iframes. */ declare class NgClickOutsideEmitOnBlurDirective implements OnDestroy { private _ngZone; private document; blurWindow: i0.OutputEmitterRef<Event>; constructor(); ngOnDestroy(): void; private _initWindowBlurListener; /** * Resolves problem with outside click on iframe * @see https://github.com/arkon/ng-click-outside/issues/32 */ private _onWindowBlur; private _removeWindowBlurListener; static ɵfac: i0.ɵɵFactoryDeclaration<NgClickOutsideEmitOnBlurDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NgClickOutsideEmitOnBlurDirective, "[clickOutsideEmitOnBlur]", never, {}, { "blurWindow": "blurWindow"; }, never, never, true, never>; } export { NgClickOutsideAttachOutsideDirective, NgClickOutsideDelayOutsideDirective, NgClickOutsideDirective, NgClickOutsideEmitOnBlurDirective, NgClickOutsideExcludeDirective, NgClickOutsideExcludeToken };