@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
37 lines • 5.05 kB
JavaScript
import { DOCUMENT } from '@angular/common';
import { Directive, inject } from '@angular/core';
import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
import { tuiGetNativeFocused } from '@taiga-ui/cdk/utils/focus';
import * as i0 from "@angular/core";
import * as i1 from "@taiga-ui/cdk/directives/active-zone";
class TuiActiveZoneAdapter {
constructor() {
this.current = inject(TuiActiveZone);
this.parent = findActive(inject(TuiActiveZone, { skipSelf: true }), tuiGetNativeFocused(inject(DOCUMENT)));
}
ngOnInit() {
this.current.tuiActiveZoneParentSetter = this.parent;
}
ngOnDestroy() {
this.current.tuiActiveZoneParentSetter = null;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiActiveZoneAdapter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiActiveZoneAdapter, isStandalone: true, selector: "[tuiActiveZoneAdapter]", hostDirectives: [{ directive: i1.TuiActiveZone }], ngImport: i0 }); }
}
export { TuiActiveZoneAdapter };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiActiveZoneAdapter, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiActiveZoneAdapter]',
hostDirectives: [TuiActiveZone],
}]
}] });
function findActive(zone, element) {
if (!element || !zone.contains(element)) {
return null;
}
const active = zone.children.find((child) => child.contains(element));
return active ? findActive(active, element) : zone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLXpvbmUtYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZGlhbG9nL2FjdGl2ZS16b25lLWFkYXB0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7QUFFOUQsTUFLYSxvQkFBb0I7SUFMakM7UUFNcUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoQyxXQUFNLEdBQUcsVUFBVSxDQUNoQyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLEVBQ3ZDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUN4QyxDQUFDO0tBU0w7SUFQVSxRQUFRO1FBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3pELENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7SUFDbEQsQ0FBQzsrR0FiUSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7U0FBcEIsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDbEM7O0FBaUJELFNBQVMsVUFBVSxDQUFDLElBQW1CLEVBQUUsT0FBdUI7SUFDNUQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDckMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFdEUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3QsIHR5cGUgT25EZXN0cm95LCB0eXBlIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUFjdGl2ZVpvbmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hY3RpdmUtem9uZSc7XG5pbXBvcnQge3R1aUdldE5hdGl2ZUZvY3VzZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aUFjdGl2ZVpvbmVBZGFwdGVyXScsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlBY3RpdmVab25lXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQWN0aXZlWm9uZUFkYXB0ZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50ID0gaW5qZWN0KFR1aUFjdGl2ZVpvbmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50ID0gZmluZEFjdGl2ZShcbiAgICAgICAgaW5qZWN0KFR1aUFjdGl2ZVpvbmUsIHtza2lwU2VsZjogdHJ1ZX0pLFxuICAgICAgICB0dWlHZXROYXRpdmVGb2N1c2VkKGluamVjdChET0NVTUVOVCkpLFxuICAgICk7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudC50dWlBY3RpdmVab25lUGFyZW50U2V0dGVyID0gdGhpcy5wYXJlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnQudHVpQWN0aXZlWm9uZVBhcmVudFNldHRlciA9IG51bGw7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBmaW5kQWN0aXZlKHpvbmU6IFR1aUFjdGl2ZVpvbmUsIGVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsKTogVHVpQWN0aXZlWm9uZSB8IG51bGwge1xuICAgIGlmICghZWxlbWVudCB8fCAhem9uZS5jb250YWlucyhlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmUgPSB6b25lLmNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiBjaGlsZC5jb250YWlucyhlbGVtZW50KSk7XG5cbiAgICByZXR1cm4gYWN0aXZlID8gZmluZEFjdGl2ZShhY3RpdmUsIGVsZW1lbnQpIDogem9uZTtcbn1cbiJdfQ==