@cradokski/fullscreen
Version:
An Angular service and **directives** that provide **fullscreen control**, **reactive state**, and **template-friendly utilities**.
37 lines • 4.86 kB
JavaScript
import { Directive } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../fullscreen.service";
export class FsActiveClassDirective {
constructor(host, renderer, fs) {
this.host = host;
this.renderer = renderer;
this.fs = fs;
this.unwatch = () => { };
}
ngOnInit() {
console.log('FsActiveClassDirective init', this.host.nativeElement);
this.unwatch = this.fs.watchFullscreen((active, el) => {
const isHostFs = active;
console.log('ngOnInit isHostFs', isHostFs, " el =[", el, "] host.native` = [", this.host.nativeElement, "]");
if (isHostFs) {
this.renderer.addClass(this.host.nativeElement, 'fs-active');
}
else {
this.renderer.removeClass(this.host.nativeElement, 'fs-active');
}
});
}
ngOnDestroy() {
this.unwatch();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FsActiveClassDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FullScreenService }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: FsActiveClassDirective, isStandalone: true, selector: "[fsActiveClass]", ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FsActiveClassDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[fsActiveClass]'
}]
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FullScreenService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtYWN0aXZlY2xhc3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnVsbHNjcmVlbi9zcmMvbGliL2RpcmVjdGl2ZXMvZnMtYWN0aXZlY2xhc3MuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLE1BQU0sZUFBZSxDQUFDOzs7QUFPakUsTUFBTSxPQUFPLHNCQUFzQjtJQUdsQyxZQUNTLElBQTZCLEVBQzdCLFFBQW1CLEVBQ25CLEVBQXFCO1FBRnJCLFNBQUksR0FBSixJQUFJLENBQXlCO1FBQzdCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFMdEIsWUFBTyxHQUFlLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQU1wQyxDQUFDO0lBRUwsUUFBUTtRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3JELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUV4QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzdHLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDOUQsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2hCLENBQUM7K0dBekJXLHNCQUFzQjttR0FBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNWLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsaUJBQWlCO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZ1bGxTY3JlZW5TZXJ2aWNlIH0gZnJvbSAnLi4vZnVsbHNjcmVlbi5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdbZnNBY3RpdmVDbGFzc10nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGc0FjdGl2ZUNsYXNzRGlyZWN0aXZlIHtcclxuXHRwcml2YXRlIHVud2F0Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHRcdHByaXZhdGUgZnM6IEZ1bGxTY3JlZW5TZXJ2aWNlXHJcblx0KSB7IH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHRjb25zb2xlLmxvZygnRnNBY3RpdmVDbGFzc0RpcmVjdGl2ZSBpbml0JywgdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpO1xyXG5cdFx0dGhpcy51bndhdGNoID0gdGhpcy5mcy53YXRjaEZ1bGxzY3JlZW4oKGFjdGl2ZSwgZWwpID0+IHtcclxuXHRcdFx0Y29uc3QgaXNIb3N0RnMgPSBhY3RpdmU7XHJcblxyXG5cdFx0XHRjb25zb2xlLmxvZygnbmdPbkluaXQgaXNIb3N0RnMnLCBpc0hvc3RGcywgXCIgZWwgPVtcIiwgZWwsIFwiXSBob3N0Lm5hdGl2ZWAgPSBbXCIsIHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCBcIl1cIik7XHJcblx0XHRcdGlmIChpc0hvc3RGcykge1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsICdmcy1hY3RpdmUnKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCAnZnMtYWN0aXZlJyk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLnVud2F0Y2goKTtcclxuXHR9XHJcbn1cclxuIl19