@udhsin/ngx-image-viewer
Version:
A configurable Angular image viewer component, compatible with Angular 2+
56 lines • 6.35 kB
JavaScript
import { __decorate, __param } from "tslib";
import { Directive, HostListener, OnChanges, Input, ElementRef, Inject, } from '@angular/core';
import { DOCUMENT } from '@angular/common';
var ToggleFullscreenDirective = /** @class */ (function () {
function ToggleFullscreenDirective(el, document) {
this.el = el;
this.document = document;
this.element = this.el.nativeElement;
this.isEnabled = this.document.fullscreenEnabled;
}
ToggleFullscreenDirective.prototype.ngOnChanges = function () {
if (this.isFullscreen && this.isEnabled) {
this.openFullscreen();
}
else if (this.isEnabled) {
this.closeFullscreen();
}
};
ToggleFullscreenDirective.prototype.openFullscreen = function () {
var methodToBeInvoked = this.element.requestFullscreen ||
this.element.mozRequestFullScreen ||
this.element.msRequestFullscreen ||
this.element.webkitRequestFullscreen;
if (methodToBeInvoked) {
methodToBeInvoked.call(this.element);
}
};
ToggleFullscreenDirective.prototype.closeFullscreen = function () {
if (!this.document.fullscreenElement) {
return;
}
var methodToBeInvoked = this.document.exitFullscreen ||
this.document.mozCancelFullScreen ||
this.document.webkitExitFullscreen ||
this.document.msExitFullscreen;
if (methodToBeInvoked) {
methodToBeInvoked.call(this.document);
}
};
ToggleFullscreenDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
]; };
__decorate([
Input('ngxToggleFullscreen')
], ToggleFullscreenDirective.prototype, "isFullscreen", void 0);
ToggleFullscreenDirective = __decorate([
Directive({
selector: '[ngxToggleFullscreen]',
}),
__param(1, Inject(DOCUMENT))
], ToggleFullscreenDirective);
return ToggleFullscreenDirective;
}());
export { ToggleFullscreenDirective };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdWRoc2luL25neC1pbWFnZS12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvZnVsbHNjcmVlbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLM0M7SUFLRSxtQ0FBb0IsRUFBYyxFQUE0QixRQUFhO1FBQXZELE9BQUUsR0FBRixFQUFFLENBQVk7UUFBNEIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUN6RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztJQUNuRCxDQUFDO0lBRUQsK0NBQVcsR0FBWDtRQUNFLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN2QjthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsa0RBQWMsR0FBZDtRQUNFLElBQU0saUJBQWlCLEdBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CO1lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUM7UUFDdkMsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELG1EQUFlLEdBQWY7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTtZQUNwQyxPQUFPO1NBQ1I7UUFFRCxJQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7WUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0I7WUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNqQyxJQUFJLGlCQUFpQixFQUFFO1lBQ3JCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDOztnQkFyQ3VCLFVBQVU7Z0RBQUcsTUFBTSxTQUFDLFFBQVE7O0lBSHBEO1FBREMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO21FQUNQO0lBRlgseUJBQXlCO1FBSHJDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSx1QkFBdUI7U0FDbEMsQ0FBQztRQU1xQyxXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtPQUwxQyx5QkFBeUIsQ0EyQ3JDO0lBQUQsZ0NBQUM7Q0FBQSxBQTNDRCxJQTJDQztTQTNDWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIElucHV0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tuZ3hUb2dnbGVGdWxsc2NyZWVuXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb2dnbGVGdWxsc2NyZWVuRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoJ25neFRvZ2dsZUZ1bGxzY3JlZW4nKVxyXG4gIGlzRnVsbHNjcmVlbjogYm9vbGVhbjtcclxuICBlbGVtZW50O1xyXG4gIGlzRW5hYmxlZDogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuaXNFbmFibGVkID0gdGhpcy5kb2N1bWVudC5mdWxsc2NyZWVuRW5hYmxlZDtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMuaXNGdWxsc2NyZWVuICYmIHRoaXMuaXNFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMub3BlbkZ1bGxzY3JlZW4oKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pc0VuYWJsZWQpIHtcclxuICAgICAgdGhpcy5jbG9zZUZ1bGxzY3JlZW4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5GdWxsc2NyZWVuKCkge1xyXG4gICAgY29uc3QgbWV0aG9kVG9CZUludm9rZWQgPVxyXG4gICAgICB0aGlzLmVsZW1lbnQucmVxdWVzdEZ1bGxzY3JlZW4gfHxcclxuICAgICAgdGhpcy5lbGVtZW50Lm1velJlcXVlc3RGdWxsU2NyZWVuIHx8XHJcbiAgICAgIHRoaXMuZWxlbWVudC5tc1JlcXVlc3RGdWxsc2NyZWVuIHx8XHJcbiAgICAgIHRoaXMuZWxlbWVudC53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbjtcclxuICAgIGlmIChtZXRob2RUb0JlSW52b2tlZCkge1xyXG4gICAgICBtZXRob2RUb0JlSW52b2tlZC5jYWxsKHRoaXMuZWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZUZ1bGxzY3JlZW4oKSB7XHJcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1ldGhvZFRvQmVJbnZva2VkID1cclxuICAgICAgdGhpcy5kb2N1bWVudC5leGl0RnVsbHNjcmVlbiB8fFxyXG4gICAgICB0aGlzLmRvY3VtZW50Lm1vekNhbmNlbEZ1bGxTY3JlZW4gfHxcclxuICAgICAgdGhpcy5kb2N1bWVudC53ZWJraXRFeGl0RnVsbHNjcmVlbiB8fFxyXG4gICAgICB0aGlzLmRvY3VtZW50Lm1zRXhpdEZ1bGxzY3JlZW47XHJcbiAgICBpZiAobWV0aG9kVG9CZUludm9rZWQpIHtcclxuICAgICAgbWV0aG9kVG9CZUludm9rZWQuY2FsbCh0aGlzLmRvY3VtZW50KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19