@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
38 lines • 5.38 kB
JavaScript
import { Directive, inject, Input, Output } from '@angular/core';
import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
import { tuiIfMap } from '@taiga-ui/cdk/observables';
import { BehaviorSubject, map } from 'rxjs';
import { TuiObscuredService } from './obscured.service';
import * as i0 from "@angular/core";
/**
* Directive that monitors element visibility
*/
class TuiObscured {
constructor() {
this.activeZone = inject(TuiActiveZone, { optional: true });
this.enabled$ = new BehaviorSubject(false);
this.obscured$ = inject(TuiObscuredService, { self: true }).pipe(
// TODO: Refactor so that dropdowns and dialogs work properly without hacks
map((by) => !!by?.every((el) => el.closest('tui-dialogs') || !this.activeZone?.contains(el))));
this.tuiObscured = this.enabled$.pipe(tuiIfMap(() => this.obscured$));
}
set tuiObscuredEnabled(enabled) {
this.enabled$.next(enabled);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiObscured, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiObscured, isStandalone: true, selector: "[tuiObscured]", inputs: { tuiObscuredEnabled: "tuiObscuredEnabled" }, outputs: { tuiObscured: "tuiObscured" }, providers: [TuiObscuredService], ngImport: i0 }); }
}
export { TuiObscured };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiObscured, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiObscured]',
providers: [TuiObscuredService],
}]
}], propDecorators: { tuiObscured: [{
type: Output
}], tuiObscuredEnabled: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzY3VyZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2RpcmVjdGl2ZXMvb2JzY3VyZWQvb2JzY3VyZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFdEQ7O0dBRUc7QUFDSCxNQUthLFdBQVc7SUFMeEI7UUFNcUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNyRCxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUk7UUFDdEUsMkVBQTJFO1FBQzNFLEdBQUcsQ0FDQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ0gsQ0FBQyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQ1AsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FDdEUsQ0FDUixDQUNKLENBQUM7UUFHYyxnQkFBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQU1wRjtJQUpHLElBQ1csa0JBQWtCLENBQUMsT0FBZ0I7UUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQzsrR0FuQlEsV0FBVzttR0FBWCxXQUFXLDJKQUZULENBQUMsa0JBQWtCLENBQUM7O1NBRXRCLFdBQVc7NEZBQVgsV0FBVztrQkFMdkIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUNsQzs4QkFlbUIsV0FBVztzQkFEMUIsTUFBTTtnQkFJSSxrQkFBa0I7c0JBRDVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpQWN0aXZlWm9uZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2FjdGl2ZS16b25lJztcbmltcG9ydCB7dHVpSWZNYXB9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1hcH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpT2JzY3VyZWRTZXJ2aWNlfSBmcm9tICcuL29ic2N1cmVkLnNlcnZpY2UnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IG1vbml0b3JzIGVsZW1lbnQgdmlzaWJpbGl0eVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aU9ic2N1cmVkXScsXG4gICAgcHJvdmlkZXJzOiBbVHVpT2JzY3VyZWRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpT2JzY3VyZWQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlWm9uZSA9IGluamVjdChUdWlBY3RpdmVab25lLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVuYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvYnNjdXJlZCQgPSBpbmplY3QoVHVpT2JzY3VyZWRTZXJ2aWNlLCB7c2VsZjogdHJ1ZX0pLnBpcGUoXG4gICAgICAgIC8vIFRPRE86IFJlZmFjdG9yIHNvIHRoYXQgZHJvcGRvd25zIGFuZCBkaWFsb2dzIHdvcmsgcHJvcGVybHkgd2l0aG91dCBoYWNrc1xuICAgICAgICBtYXAoXG4gICAgICAgICAgICAoYnkpID0+XG4gICAgICAgICAgICAgICAgISFieT8uZXZlcnkoXG4gICAgICAgICAgICAgICAgICAgIChlbCkgPT4gZWwuY2xvc2VzdCgndHVpLWRpYWxvZ3MnKSB8fCAhdGhpcy5hY3RpdmVab25lPy5jb250YWlucyhlbCksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IHR1aU9ic2N1cmVkID0gdGhpcy5lbmFibGVkJC5waXBlKHR1aUlmTWFwKCgpID0+IHRoaXMub2JzY3VyZWQkKSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdHVpT2JzY3VyZWRFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5lbmFibGVkJC5uZXh0KGVuYWJsZWQpO1xuICAgIH1cbn1cbiJdfQ==