UNPKG

@covalent/core

Version:

Core Teradata UI Platform for layouts, icons, custom components and themes. This should be added as a dependency for any project that wants to use layouts, icons and themes for Angular Material.

85 lines 12.1 kB
import { Directive, HostListener, ElementRef, Inject } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import * as i0 from "@angular/core"; export class TdFullscreenDirective { constructor(_document, _el) { this._document = _document; this._el = _el; this.fullScreenIsActive = false; } fsChangeHandler(event) { this.fullScreenIsActive = event.srcElement === this._getFullScreenElement(); } toggleFullScreen() { this._getFullScreenElement() === this._el.nativeElement ? this.exitFullScreen() : this.enterFullScreen(); } enterFullScreen() { const { _el: { nativeElement }, } = this; const enterFullScreenMap = { requestFullscreen: () => nativeElement.requestFullscreen(), webkitRequestFullscreen: () => nativeElement.webkitRequestFullscreen(), mozRequestFullScreen: () => nativeElement.mozRequestFullScreen(), msRequestFullscreen: () => nativeElement.msRequestFullscreen(), // IE }; for (const handler of Object.keys(enterFullScreenMap)) { if (nativeElement[handler]) { enterFullScreenMap[handler](); } } } exitFullScreen() { const exitFullScreenMap = { exitFullscreen: () => this._document.exitFullscreen(), webkitExitFullscreen: () => this._document.webkitExitFullscreen(), mozCancelFullScreen: () => this._document.mozCancelFullScreen(), msExitFullscreen: () => this._document.msExitFullscreen(), // IE }; for (const handler of Object.keys(exitFullScreenMap)) { if (exitFullScreenMap[handler] && this._getFullScreenElement() === this._el.nativeElement) { exitFullScreenMap[handler](); } } } _getFullScreenElement() { const tdFullScreenElementMap = { fullscreenElement: () => this._document.fullscreenElement, webkitFullscreenElement: () => this._document.webkitFullscreenElement, mozFullscreenElement: () => this._document.mozFullscreenElement, msFullscreenElement: () => this._document.msFullscreenElement, // IE, Edge }; for (const props of Object.keys(tdFullScreenElementMap)) { if (tdFullScreenElementMap[props]) { return tdFullScreenElementMap[props](); } } return undefined; } } TdFullscreenDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdFullscreenDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); TdFullscreenDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: TdFullscreenDirective, selector: "[tdFullScreen]", host: { listeners: { "document:fullscreenchange": "fsChangeHandler($event)", "document:webkitfullscreenchange": "fsChangeHandler($event)", "document:mozfullscreenchange": "fsChangeHandler($event)", "document:msfullscreenchange": "fsChangeHandler($event)" } }, exportAs: ["tdFullScreen"], ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdFullscreenDirective, decorators: [{ type: Directive, args: [{ selector: '[tdFullScreen]', exportAs: 'tdFullScreen', }] }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT] }] }, { type: i0.ElementRef }]; }, propDecorators: { fsChangeHandler: [{ type: HostListener, args: ['document:fullscreenchange', ['$event']] }, { type: HostListener, args: ['document:webkitfullscreenchange', ['$event']] }, { type: HostListener, args: ['document:mozfullscreenchange', ['$event']] }, { type: HostListener, args: ['document:msfullscreenchange', ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tbW9uL3NyYy9kaXJlY3RpdmVzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBZ0IzQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQzRCLFNBQXNCLEVBQ3hDLEdBQWU7UUFERyxjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQ3hDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFIekIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO0lBSXhCLENBQUM7SUFNRyxlQUFlLENBQUMsS0FBWTtRQUNqQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtZQUNyRCxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE1BQU0sRUFDSixHQUFHLEVBQUUsRUFBRSxhQUFhLEVBQUUsR0FDdkIsR0FBMEIsSUFBSSxDQUFDO1FBQ2hDLE1BQU0sa0JBQWtCLEdBQWtDO1lBQ3hELGlCQUFpQixFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRTtZQUMxRCx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEVBQUU7WUFDdEUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFO1lBQ2hFLG1CQUFtQixFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEtBQUs7U0FDdEUsQ0FBQztRQUVGLEtBQUssTUFBTSxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQ3JELElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMxQixrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2FBQy9CO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sY0FBYztRQUNuQixNQUFNLGlCQUFpQixHQUFrQztZQUN2RCxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7WUFDckQsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRTtZQUNqRSxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixFQUFFO1lBQy9ELGdCQUFnQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxLQUFLO1NBQ2pFLENBQUM7UUFFRixLQUFLLE1BQU0sT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUNwRCxJQUNFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztnQkFDMUIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQ3ZEO2dCQUNBLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7YUFDOUI7U0FDRjtJQUNILENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsTUFBTSxzQkFBc0IsR0FBcUM7WUFDL0QsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUI7WUFDekQsdUJBQXVCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUI7WUFDckUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0I7WUFDL0QsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXO1NBQzNFLENBQUM7UUFDRixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUN2RCxJQUFJLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQyxPQUFPLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDeEM7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O2tIQXRFVSxxQkFBcUIsa0JBR3RCLFFBQVE7c0dBSFAscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCOzswQkFJSSxNQUFNOzJCQUFDLFFBQVE7cUVBUVgsZUFBZTtzQkFKckIsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3BELFlBQVk7dUJBQUMsaUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUMxRCxZQUFZO3VCQUFDLDhCQUE4QixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDdkQsWUFBWTt1QkFBQyw2QkFBNkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW50ZXJmYWNlIElGc0RvY3VtZW50IGV4dGVuZHMgSFRNTERvY3VtZW50IHtcbiAgZnVsbHNjcmVlbkVsZW1lbnQ6IEVsZW1lbnQ7XG4gIHdlYmtpdEZ1bGxzY3JlZW5FbGVtZW50OiBFbGVtZW50O1xuICBtb3pGdWxsc2NyZWVuRWxlbWVudDogRWxlbWVudDtcbiAgbXNGdWxsc2NyZWVuRWxlbWVudDogRWxlbWVudDtcbiAgd2Via2l0RXhpdEZ1bGxzY3JlZW46ICgpID0+IHZvaWQ7XG4gIG1vekNhbmNlbEZ1bGxTY3JlZW46ICgpID0+IHZvaWQ7XG4gIG1zRXhpdEZ1bGxzY3JlZW46ICgpID0+IHZvaWQ7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZEZ1bGxTY3JlZW5dJyxcbiAgZXhwb3J0QXM6ICd0ZEZ1bGxTY3JlZW4nLFxufSlcbmV4cG9ydCBjbGFzcyBUZEZ1bGxzY3JlZW5EaXJlY3RpdmUge1xuICBmdWxsU2NyZWVuSXNBY3RpdmUgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IElGc0RvY3VtZW50LFxuICAgIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpmdWxsc2NyZWVuY2hhbmdlJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6d2Via2l0ZnVsbHNjcmVlbmNoYW5nZScsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vemZ1bGxzY3JlZW5jaGFuZ2UnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptc2Z1bGxzY3JlZW5jaGFuZ2UnLCBbJyRldmVudCddKVxuICBwdWJsaWMgZnNDaGFuZ2VIYW5kbGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZnVsbFNjcmVlbklzQWN0aXZlID0gZXZlbnQuc3JjRWxlbWVudCA9PT0gdGhpcy5fZ2V0RnVsbFNjcmVlbkVsZW1lbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVGdWxsU2NyZWVuKCk6IHZvaWQge1xuICAgIHRoaXMuX2dldEZ1bGxTY3JlZW5FbGVtZW50KCkgPT09IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnRcbiAgICAgID8gdGhpcy5leGl0RnVsbFNjcmVlbigpXG4gICAgICA6IHRoaXMuZW50ZXJGdWxsU2NyZWVuKCk7XG4gIH1cblxuICBwdWJsaWMgZW50ZXJGdWxsU2NyZWVuKCk6IHZvaWQge1xuICAgIGNvbnN0IHtcbiAgICAgIF9lbDogeyBuYXRpdmVFbGVtZW50IH0sXG4gICAgfTogVGRGdWxsc2NyZWVuRGlyZWN0aXZlID0gdGhpcztcbiAgICBjb25zdCBlbnRlckZ1bGxTY3JlZW5NYXA6IHsgW2tleTogc3RyaW5nXTogKCkgPT4gdm9pZCB9ID0ge1xuICAgICAgcmVxdWVzdEZ1bGxzY3JlZW46ICgpID0+IG5hdGl2ZUVsZW1lbnQucmVxdWVzdEZ1bGxzY3JlZW4oKSwgLy8gQ2hyb21lXG4gICAgICB3ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbjogKCkgPT4gbmF0aXZlRWxlbWVudC53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbigpLCAvLyBTYWZhcmlcbiAgICAgIG1velJlcXVlc3RGdWxsU2NyZWVuOiAoKSA9PiBuYXRpdmVFbGVtZW50Lm1velJlcXVlc3RGdWxsU2NyZWVuKCksIC8vIEZpcmVmb3hcbiAgICAgIG1zUmVxdWVzdEZ1bGxzY3JlZW46ICgpID0+IG5hdGl2ZUVsZW1lbnQubXNSZXF1ZXN0RnVsbHNjcmVlbigpLCAvLyBJRVxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgT2JqZWN0LmtleXMoZW50ZXJGdWxsU2NyZWVuTWFwKSkge1xuICAgICAgaWYgKG5hdGl2ZUVsZW1lbnRbaGFuZGxlcl0pIHtcbiAgICAgICAgZW50ZXJGdWxsU2NyZWVuTWFwW2hhbmRsZXJdKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGV4aXRGdWxsU2NyZWVuKCk6IHZvaWQge1xuICAgIGNvbnN0IGV4aXRGdWxsU2NyZWVuTWFwOiB7IFtrZXk6IHN0cmluZ106ICgpID0+IHZvaWQgfSA9IHtcbiAgICAgIGV4aXRGdWxsc2NyZWVuOiAoKSA9PiB0aGlzLl9kb2N1bWVudC5leGl0RnVsbHNjcmVlbigpLCAvLyBDaHJvbWVcbiAgICAgIHdlYmtpdEV4aXRGdWxsc2NyZWVuOiAoKSA9PiB0aGlzLl9kb2N1bWVudC53ZWJraXRFeGl0RnVsbHNjcmVlbigpLCAvLyBTYWZhcmlcbiAgICAgIG1vekNhbmNlbEZ1bGxTY3JlZW46ICgpID0+IHRoaXMuX2RvY3VtZW50Lm1vekNhbmNlbEZ1bGxTY3JlZW4oKSwgLy8gRmlyZWZveFxuICAgICAgbXNFeGl0RnVsbHNjcmVlbjogKCkgPT4gdGhpcy5fZG9jdW1lbnQubXNFeGl0RnVsbHNjcmVlbigpLCAvLyBJRVxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgT2JqZWN0LmtleXMoZXhpdEZ1bGxTY3JlZW5NYXApKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGV4aXRGdWxsU2NyZWVuTWFwW2hhbmRsZXJdICYmXG4gICAgICAgIHRoaXMuX2dldEZ1bGxTY3JlZW5FbGVtZW50KCkgPT09IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnRcbiAgICAgICkge1xuICAgICAgICBleGl0RnVsbFNjcmVlbk1hcFtoYW5kbGVyXSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldEZ1bGxTY3JlZW5FbGVtZW50KCk6IEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHRkRnVsbFNjcmVlbkVsZW1lbnRNYXA6IHsgW2tleTogc3RyaW5nXTogKCkgPT4gRWxlbWVudCB9ID0ge1xuICAgICAgZnVsbHNjcmVlbkVsZW1lbnQ6ICgpID0+IHRoaXMuX2RvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50LCAvLyBDaHJvbWUsIE9wZXJhXG4gICAgICB3ZWJraXRGdWxsc2NyZWVuRWxlbWVudDogKCkgPT4gdGhpcy5fZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVsZW1lbnQsIC8vIFNhZmFyaVxuICAgICAgbW96RnVsbHNjcmVlbkVsZW1lbnQ6ICgpID0+IHRoaXMuX2RvY3VtZW50Lm1vekZ1bGxzY3JlZW5FbGVtZW50LCAvLyBGaXJlZm94XG4gICAgICBtc0Z1bGxzY3JlZW5FbGVtZW50OiAoKSA9PiB0aGlzLl9kb2N1bWVudC5tc0Z1bGxzY3JlZW5FbGVtZW50LCAvLyBJRSwgRWRnZVxuICAgIH07XG4gICAgZm9yIChjb25zdCBwcm9wcyBvZiBPYmplY3Qua2V5cyh0ZEZ1bGxTY3JlZW5FbGVtZW50TWFwKSkge1xuICAgICAgaWYgKHRkRnVsbFNjcmVlbkVsZW1lbnRNYXBbcHJvcHNdKSB7XG4gICAgICAgIHJldHVybiB0ZEZ1bGxTY3JlZW5FbGVtZW50TWFwW3Byb3BzXSgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=