@cradokski/fullscreen
Version:
An Angular service and **directives** that provide **fullscreen control**, **reactive state**, and **template-friendly utilities**.
41 lines • 5.2 kB
JavaScript
import { Directive } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../fullscreen.service";
export class IfFullscreenDirective {
constructor(tpl, vcr, fs) {
this.tpl = tpl;
this.vcr = vcr;
this.fs = fs;
this.isShown = false;
}
ngOnInit() {
console.log('IfFullscreenDirective init');
this.sub = this.fs.fullscreen$.subscribe(status => {
if (status.active && !this.isShown) {
this.vcr.createEmbeddedView(this.tpl);
this.isShown = true;
console.log('IfFullscreenDirective active && !this.isShown');
}
else if (!status.active && this.isShown) {
this.vcr.clear();
this.isShown = false;
console.log('IfFullscreenDirective !active && this.isShown');
}
else
console.log('IfFullscreenDirective no change');
});
}
ngOnDestroy() {
this.sub?.unsubscribe();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IfFullscreenDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.FullScreenService }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: IfFullscreenDirective, isStandalone: true, selector: "[ifFullscreen]", ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IfFullscreenDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[ifFullscreen]'
}]
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.FullScreenService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtZnVsbHNjcmVlbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mdWxsc2NyZWVuL3NyYy9saWIvZGlyZWN0aXZlcy9pZi1mdWxsc2NyZWVuLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFpQyxNQUFNLGVBQWUsQ0FBQzs7O0FBUXpFLE1BQU0sT0FBTyxxQkFBcUI7SUFJakMsWUFDUyxHQUFxQixFQUNyQixHQUFxQixFQUNyQixFQUFxQjtRQUZyQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUx0QixZQUFPLEdBQUcsS0FBSyxDQUFDO0lBTXBCLENBQUM7SUFFTCxRQUFRO1FBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pELElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLCtDQUErQyxDQUFDLENBQUM7WUFDOUQsQ0FBQztpQkFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLCtDQUErQyxDQUFDLENBQUM7WUFDOUQsQ0FBQzs7Z0JBQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBM0JXLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNWLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZ0JBQWdCO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZ1bGxTY3JlZW5TZXJ2aWNlIH0gZnJvbSAnLi4vZnVsbHNjcmVlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnW2lmRnVsbHNjcmVlbl0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZkZ1bGxzY3JlZW5EaXJlY3RpdmUge1xyXG5cdHByaXZhdGUgc3ViITogU3Vic2NyaXB0aW9uO1xyXG5cdHByaXZhdGUgaXNTaG93biA9IGZhbHNlO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgdHBsOiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG5cdFx0cHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXHJcblx0XHRwcml2YXRlIGZzOiBGdWxsU2NyZWVuU2VydmljZVxyXG5cdCkgeyB9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0Y29uc29sZS5sb2coJ0lmRnVsbHNjcmVlbkRpcmVjdGl2ZSBpbml0Jyk7XHJcblx0XHR0aGlzLnN1YiA9IHRoaXMuZnMuZnVsbHNjcmVlbiQuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XHJcblx0XHRcdGlmIChzdGF0dXMuYWN0aXZlICYmICF0aGlzLmlzU2hvd24pIHtcclxuXHRcdFx0XHR0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50cGwpO1xyXG5cdFx0XHRcdHRoaXMuaXNTaG93biA9IHRydWU7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ0lmRnVsbHNjcmVlbkRpcmVjdGl2ZSBhY3RpdmUgJiYgIXRoaXMuaXNTaG93bicpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKCFzdGF0dXMuYWN0aXZlICYmIHRoaXMuaXNTaG93bikge1xyXG5cdFx0XHRcdHRoaXMudmNyLmNsZWFyKCk7XHJcblx0XHRcdFx0dGhpcy5pc1Nob3duID0gZmFsc2U7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ0lmRnVsbHNjcmVlbkRpcmVjdGl2ZSAhYWN0aXZlICYmIHRoaXMuaXNTaG93bicpO1xyXG5cdFx0XHR9IGVsc2UgY29uc29sZS5sb2coJ0lmRnVsbHNjcmVlbkRpcmVjdGl2ZSBubyBjaGFuZ2UnKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKTtcclxuXHR9XHJcbn1cclxuIl19