@cause-911/core
Version:
Run `npm install @cause-911/core --save` to add this library to your project
92 lines • 7.51 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { EventEmitter, Injectable, Output } from '@angular/core';
import * as i0 from "@angular/core";
export class FullscreenService {
constructor() {
this.statusChange = new EventEmitter();
document.addEventListener('fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange', (/**
* @return {?}
*/
() => this.onChange()));
}
/**
* @param {?} element
* @return {?}
*/
show(element) {
if (!element) {
element = document.querySelector('body');
}
if (element.requestFullscreen) {
element.requestFullscreen();
}
else if (element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
}
else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
}
else if (element.msRequestFullscreen) {
element.msRequestFullscreen();
}
}
/**
* @return {?}
*/
exit() {
document.querySelector('body').classList.remove('is-fullscreen');
if (document.exitFullscreen) {
document.exitFullscreen();
}
else if (document['webkitExitFullscreen']) {
document['webkitExitFullscreen']();
}
else if (document['mozCancelFullScreen']) {
document['mozCancelFullScreen']();
}
else if (document['msRequestFullscreen']) {
document['msRequestFullscreen']();
}
}
/**
* @return {?}
*/
isActived() {
if ((screen.availHeight || screen.height - 30) <= window.innerHeight) {
return true;
}
return false;
}
/**
* @private
* @return {?}
*/
onChange() {
if (this.isActived()) {
document.querySelector('body').classList.add('is-fullscreen');
}
else {
document.querySelector('body').classList.remove('is-fullscreen');
}
this.statusChange.emit(this.isActived());
}
}
FullscreenService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
FullscreenService.ctorParameters = () => [];
FullscreenService.propDecorators = {
statusChange: [{ type: Output }]
};
/** @nocollapse */ FullscreenService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function FullscreenService_Factory() { return new FullscreenService(); }, token: FullscreenService, providedIn: "root" });
if (false) {
/** @type {?} */
FullscreenService.prototype.statusChange;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNhdXNlLTkxMS9jb3JlLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9zZXJ2aWNlcy9mdWxsc2NyZWVuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLakUsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QjtRQUZpQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHakQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGdGQUFnRjs7O1FBQzFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDcEIsQ0FBQztJQUNKLENBQUM7Ozs7O0lBRU0sSUFBSSxDQUFDLE9BQU87UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDN0IsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDN0I7YUFBTSxJQUFJLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRTtZQUMxQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUNuQzthQUFNLElBQUksT0FBTyxDQUFDLG9CQUFvQixFQUFFO1lBQ3ZDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ2hDO2FBQU0sSUFBSSxPQUFPLENBQUMsbUJBQW1CLEVBQUU7WUFDdEMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDL0I7SUFDSCxDQUFDOzs7O0lBRU0sSUFBSTtRQUNULFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVqRSxJQUFJLFFBQVEsQ0FBQyxjQUFjLEVBQUU7WUFDM0IsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQzNCO2FBQU0sSUFBSSxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUMzQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1NBQ3BDO2FBQU0sSUFBSSxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRTtZQUMxQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1NBQ25DO2FBQU0sSUFBSSxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRTtZQUMxQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQzs7OztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDcEUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7Ozs7SUFFTyxRQUFRO1FBQ2QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQy9EO2FBQU07WUFDTCxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDOzs7WUF6REYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7OzsyQkFFRSxNQUFNOzs7OztJQUFQLHlDQUFtRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZ1bGxzY3JlZW5TZXJ2aWNlIHtcbiAgQE91dHB1dCgpIHB1YmxpYyBzdGF0dXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZnVsbHNjcmVlbmNoYW5nZSB3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIG1vemZ1bGxzY3JlZW5jaGFuZ2UgbXNmdWxsc2NyZWVuY2hhbmdlJyxcbiAgICAoKSA9PiB0aGlzLm9uQ2hhbmdlKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNob3coZWxlbWVudCk6IHZvaWQge1xuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQucmVxdWVzdEZ1bGxzY3JlZW4pIHtcbiAgICAgIGVsZW1lbnQucmVxdWVzdEZ1bGxzY3JlZW4oKTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4pIHtcbiAgICAgIGVsZW1lbnQud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQubW96UmVxdWVzdEZ1bGxTY3JlZW4pIHtcbiAgICAgIGVsZW1lbnQubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQubXNSZXF1ZXN0RnVsbHNjcmVlbikge1xuICAgICAgZWxlbWVudC5tc1JlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGV4aXQoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWZ1bGxzY3JlZW4nKTtcblxuICAgIGlmIChkb2N1bWVudC5leGl0RnVsbHNjcmVlbikge1xuICAgICAgZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50Wyd3ZWJraXRFeGl0RnVsbHNjcmVlbiddKSB7XG4gICAgICBkb2N1bWVudFsnd2Via2l0RXhpdEZ1bGxzY3JlZW4nXSgpO1xuICAgIH0gZWxzZSBpZiAoZG9jdW1lbnRbJ21vekNhbmNlbEZ1bGxTY3JlZW4nXSkge1xuICAgICAgZG9jdW1lbnRbJ21vekNhbmNlbEZ1bGxTY3JlZW4nXSgpO1xuICAgIH0gZWxzZSBpZiAoZG9jdW1lbnRbJ21zUmVxdWVzdEZ1bGxzY3JlZW4nXSkge1xuICAgICAgZG9jdW1lbnRbJ21zUmVxdWVzdEZ1bGxzY3JlZW4nXSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0FjdGl2ZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKChzY3JlZW4uYXZhaWxIZWlnaHQgfHwgc2NyZWVuLmhlaWdodCAtIDMwKSA8PSB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBY3RpdmVkKCkpIHtcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5jbGFzc0xpc3QuYWRkKCdpcy1mdWxsc2NyZWVuJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5jbGFzc0xpc3QucmVtb3ZlKCdpcy1mdWxsc2NyZWVuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0dXNDaGFuZ2UuZW1pdCh0aGlzLmlzQWN0aXZlZCgpKTtcbiAgfVxufVxuIl19