UNPKG

@taiga-ui/core

Version:

Core library for creating Angular components and applications using Taiga UI

71 lines 9.48 kB
import { DOCUMENT } from '@angular/common'; import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, signal, ViewChild, } from '@angular/core'; import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone'; import { TuiRoot } from '@taiga-ui/core/components/root'; import * as i0 from "@angular/core"; class TuiFullscreen { constructor() { this.doc = inject(DOCUMENT); this.open = signal(false); this.opened = new EventEmitter(); this.options = { navigationUI: 'auto' }; } set fullscreen(open) { if (this.open() === open) { return; } if (open) { this.root?.nativeElement .requestFullscreen(this.options) .then(() => this.fullscreenState(open)); } else { this.doc .exitFullscreen() .then(() => this.fullscreenState(open)) .catch((error) => console.error('Failed to exit fullscreen:', error)); } } closedByEscape(event) { const escaped = !this.doc.fullscreenElement && event.target === this.root?.nativeElement; if (escaped) { this.fullscreenState(false); } } fullscreenState(open) { this.open.set(open); this.opened.emit(open); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFullscreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiFullscreen, isStandalone: true, selector: "[tuiFullscreen]", inputs: { options: ["tuiFullscreenOptions", "options"], fullscreen: ["tuiFullscreen", "fullscreen"] }, outputs: { opened: "tuiFullscreenChange" }, host: { listeners: { "document:fullscreenchange": "closedByEscape($event)" } }, viewQueries: [{ propertyName: "root", first: true, predicate: TuiRoot, descendants: true, read: ElementRef }], ngImport: i0, template: '<tui-root><ng-content /></tui-root>', isInline: true, styles: ["tui-root{scrollbar-width:none;-ms-overflow-style:none;overflow:auto}tui-root::-webkit-scrollbar,tui-root::-webkit-scrollbar-thumb{display:none}\n"], dependencies: [{ kind: "component", type: TuiRoot, selector: "tui-root" }], viewProviders: [ { provide: TuiActiveZone, useValue: null, }, ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } export { TuiFullscreen }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFullscreen, decorators: [{ type: Component, args: [{ standalone: true, selector: '[tuiFullscreen]', imports: [TuiRoot], template: '<tui-root><ng-content /></tui-root>', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [ { provide: TuiActiveZone, useValue: null, }, ], host: { '(document:fullscreenchange)': 'closedByEscape($event)', }, styles: ["tui-root{scrollbar-width:none;-ms-overflow-style:none;overflow:auto}tui-root::-webkit-scrollbar,tui-root::-webkit-scrollbar-thumb{display:none}\n"] }] }], propDecorators: { root: [{ type: ViewChild, args: [TuiRoot, { read: ElementRef }] }], opened: [{ type: Output, args: ['tuiFullscreenChange'] }], options: [{ type: Input, args: ['tuiFullscreenOptions'] }], fullscreen: [{ type: Input, args: ['tuiFullscreen'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZnVsbHNjcmVlbi9mdWxsc2NyZWVuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXZELE1BaUJhLGFBQWE7SUFqQjFCO1FBcUJxQixRQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JCLFNBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFHeEIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHOUMsWUFBTyxHQUF1QixFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUMsQ0FBQztLQW1DL0Q7SUFqQ0csSUFDVyxVQUFVLENBQUMsSUFBYTtRQUMvQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdEIsT0FBTztTQUNWO1FBRUQsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWE7aUJBQ25CLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQy9CLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDL0M7YUFBTTtZQUNILElBQUksQ0FBQyxHQUFHO2lCQUNILGNBQWMsRUFBRTtpQkFDaEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3RDLEtBQUssQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxDQUFDLENBQ3JELENBQUM7U0FDVDtJQUNMLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBWTtRQUNqQyxNQUFNLE9BQU8sR0FDVCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQztRQUU3RSxJQUFJLE9BQU8sRUFBRTtZQUNULElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQWE7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzsrR0E3Q1EsYUFBYTttR0FBYixhQUFhLG9WQUNYLE9BQU8sMkJBQVMsVUFBVSw2QkFkM0IscUNBQXFDLDJOQURyQyxPQUFPLDBDQUlGO1lBQ1g7Z0JBQ0ksT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFFBQVEsRUFBRSxJQUFJO2FBQ2pCO1NBQ0o7O1NBS1EsYUFBYTs0RkFBYixhQUFhO2tCQWpCekIsU0FBUztpQ0FDTSxJQUFJLFlBQ04saUJBQWlCLFdBQ2xCLENBQUMsT0FBTyxDQUFDLFlBQ1IscUNBQXFDLG1CQUU5Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQzt3QkFDWDs0QkFDSSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsUUFBUSxFQUFFLElBQUk7eUJBQ2pCO3FCQUNKLFFBQ0s7d0JBQ0YsNkJBQTZCLEVBQUUsd0JBQXdCO3FCQUMxRDs4QkFJZ0IsSUFBSTtzQkFEcEIsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQU90QixNQUFNO3NCQURyQixNQUFNO3VCQUFDLHFCQUFxQjtnQkFJdEIsT0FBTztzQkFEYixLQUFLO3VCQUFDLHNCQUFzQjtnQkFJbEIsVUFBVTtzQkFEcEIsS0FBSzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUFjdGl2ZVpvbmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hY3RpdmUtem9uZSc7XG5pbXBvcnQge1R1aVJvb3R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvcm9vdCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbdHVpRnVsbHNjcmVlbl0nLFxuICAgIGltcG9ydHM6IFtUdWlSb290XSxcbiAgICB0ZW1wbGF0ZTogJzx0dWktcm9vdD48bmctY29udGVudCAvPjwvdHVpLXJvb3Q+JyxcbiAgICBzdHlsZVVybHM6IFsnLi9mdWxsc2NyZWVuLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFR1aUFjdGl2ZVpvbmUsXG4gICAgICAgICAgICB1c2VWYWx1ZTogbnVsbCxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhkb2N1bWVudDpmdWxsc2NyZWVuY2hhbmdlKSc6ICdjbG9zZWRCeUVzY2FwZSgkZXZlbnQpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlGdWxsc2NyZWVuIHtcbiAgICBAVmlld0NoaWxkKFR1aVJvb3QsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvb3Q/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3BlbiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBAT3V0cHV0KCd0dWlGdWxsc2NyZWVuQ2hhbmdlJylcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQElucHV0KCd0dWlGdWxsc2NyZWVuT3B0aW9ucycpXG4gICAgcHVibGljIG9wdGlvbnM/OiBGdWxsc2NyZWVuT3B0aW9ucyA9IHtuYXZpZ2F0aW9uVUk6ICdhdXRvJ307XG5cbiAgICBASW5wdXQoJ3R1aUZ1bGxzY3JlZW4nKVxuICAgIHB1YmxpYyBzZXQgZnVsbHNjcmVlbihvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLm9wZW4oKSA9PT0gb3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMucm9vdD8ubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgIC5yZXF1ZXN0RnVsbHNjcmVlbih0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5mdWxsc2NyZWVuU3RhdGUob3BlbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kb2NcbiAgICAgICAgICAgICAgICAuZXhpdEZ1bGxzY3JlZW4oKVxuICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMuZnVsbHNjcmVlblN0YXRlKG9wZW4pKVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IHVua25vd24pID0+XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBleGl0IGZ1bGxzY3JlZW46JywgZXJyb3IpLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xvc2VkQnlFc2NhcGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVzY2FwZWQgPVxuICAgICAgICAgICAgIXRoaXMuZG9jLmZ1bGxzY3JlZW5FbGVtZW50ICYmIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5yb290Py5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmIChlc2NhcGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZ1bGxzY3JlZW5TdGF0ZShmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZ1bGxzY3JlZW5TdGF0ZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbi5zZXQob3Blbik7XG4gICAgICAgIHRoaXMub3BlbmVkLmVtaXQob3Blbik7XG4gICAgfVxufVxuIl19