@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
33 lines • 4.67 kB
JavaScript
import { DOCUMENT } from '@angular/common';
import { Directive, inject, NgZone, Output } from '@angular/core';
import { tuiZoneOptimized } from '@taiga-ui/cdk/observables';
import { tuiContainsOrAfter, tuiGetActualTarget, tuiInjectElement, } from '@taiga-ui/cdk/utils';
import { filter, fromEvent, map } from 'rxjs';
import * as i0 from "@angular/core";
/**
* @deprecated use {@link TuiActiveZone} instead
*/
class TuiClickOutside {
constructor() {
this.zone = inject(NgZone);
this.doc = inject(DOCUMENT);
this.el = tuiInjectElement();
this.tuiClickOutside = fromEvent(this.doc, 'mouseup').pipe(map(tuiGetActualTarget), filter((target) => this.isOutside(target)), tuiZoneOptimized(this.zone));
}
isOutside(target) {
return target === this.el || !tuiContainsOrAfter(this.el, target);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiClickOutside, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiClickOutside, isStandalone: true, selector: "[tuiClickOutside]", outputs: { tuiClickOutside: "tuiClickOutside" }, ngImport: i0 }); }
}
export { TuiClickOutside };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiClickOutside, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiClickOutside]',
}]
}], propDecorators: { tuiClickOutside: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9jbGljay1vdXRzaWRlL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBa0IsTUFBTSxNQUFNLENBQUM7O0FBRTdEOztHQUVHO0FBQ0gsTUFJYSxlQUFlO0lBSjVCO1FBS3FCLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QixPQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUd6QixvQkFBZSxHQUF3QixTQUFTLENBQzVELElBQUksQ0FBQyxHQUFHLEVBQ1IsU0FBUyxDQUNaLENBQUMsSUFBSSxDQUNGLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUN2QixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDMUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUM5QixDQUFDO0tBS0w7SUFIVyxTQUFTLENBQUMsTUFBWTtRQUMxQixPQUFPLE1BQU0sS0FBSyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RSxDQUFDOytHQWpCUSxlQUFlO21HQUFmLGVBQWU7O1NBQWYsZUFBZTs0RkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO2lCQUNoQzs4QkFPbUIsZUFBZTtzQkFEOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0LCBOZ1pvbmUsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aVpvbmVPcHRpbWl6ZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtcbiAgICB0dWlDb250YWluc09yQWZ0ZXIsXG4gICAgdHVpR2V0QWN0dWFsVGFyZ2V0LFxuICAgIHR1aUluamVjdEVsZW1lbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMnO1xuaW1wb3J0IHtmaWx0ZXIsIGZyb21FdmVudCwgbWFwLCB0eXBlIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgVHVpQWN0aXZlWm9uZX0gaW5zdGVhZFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aUNsaWNrT3V0c2lkZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDbGlja091dHNpZGUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IHR1aUNsaWNrT3V0c2lkZTogT2JzZXJ2YWJsZTx1bmtub3duPiA9IGZyb21FdmVudChcbiAgICAgICAgdGhpcy5kb2MsXG4gICAgICAgICdtb3VzZXVwJyxcbiAgICApLnBpcGUoXG4gICAgICAgIG1hcCh0dWlHZXRBY3R1YWxUYXJnZXQpLFxuICAgICAgICBmaWx0ZXIoKHRhcmdldCkgPT4gdGhpcy5pc091dHNpZGUodGFyZ2V0KSksXG4gICAgICAgIHR1aVpvbmVPcHRpbWl6ZWQodGhpcy56b25lKSxcbiAgICApO1xuXG4gICAgcHJpdmF0ZSBpc091dHNpZGUodGFyZ2V0OiBOb2RlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0YXJnZXQgPT09IHRoaXMuZWwgfHwgIXR1aUNvbnRhaW5zT3JBZnRlcih0aGlzLmVsLCB0YXJnZXQpO1xuICAgIH1cbn1cbiJdfQ==