UNPKG

@jaguards/ngx-viewer2

Version:

Angular 15+ directive for the Viewer.js library

108 lines (102 loc) 5.27 kB
import * as i0 from '@angular/core'; import { EventEmitter, Output, Input, Directive, NgModule } from '@angular/core'; import Viewer from 'viewerjs'; class NgxViewer2Directive { constructor(elementRef) { this.elementRef = elementRef; this.viewerOptions = {}; this.viewerReady = new EventEmitter(); this.viewerShow = new EventEmitter(); this.viewerShown = new EventEmitter(); this.viewerHide = new EventEmitter(); this.viewerHidden = new EventEmitter(); this.viewerView = new EventEmitter(); this.viewerViewed = new EventEmitter(); this.viewerZoom = new EventEmitter(); this.viewerZoomed = new EventEmitter(); this.nativeElement = this.elementRef.nativeElement; } ngAfterViewInit() { this.initViewer(); } initViewer() { if (this.instance) { this.instance.destroy(); } this.instance = new Viewer(this.nativeElement, { // Transitions currently break the Viewer when running optimizations during ng build (i.e in prod mode) // TODO: Find a fix for this so we don't have to force disable transitions transition: false, ...this.viewerOptions }); this.instance.zoomTo(1); this.nativeElement.addEventListener('ready', event => this.viewerReady.emit(event), false); this.nativeElement.addEventListener('show', event => this.viewerShow.emit(event), false); this.nativeElement.addEventListener('shown', event => this.viewerShown.emit(event), false); this.nativeElement.addEventListener('hide', event => this.viewerHide.emit(event), false); this.nativeElement.addEventListener('hidden', event => this.viewerHidden.emit(event), false); this.nativeElement.addEventListener('view', event => this.viewerView.emit(event), false); this.nativeElement.addEventListener('viewed', event => this.viewerViewed.emit(event), false); this.nativeElement.addEventListener('zoom', event => this.viewerZoom.emit(event), false); this.nativeElement.addEventListener('zoomed', event => this.viewerZoomed.emit(event), false); } ngOnDestroy() { if (this.instance) { this.instance.destroy(); } } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: NgxViewer2Directive, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); } /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0", type: NgxViewer2Directive, isStandalone: false, selector: "[ngxViewer2]", inputs: { viewerOptions: "viewerOptions" }, outputs: { viewerReady: "viewerReady", viewerShow: "viewerShow", viewerShown: "viewerShown", viewerHide: "viewerHide", viewerHidden: "viewerHidden", viewerView: "viewerView", viewerViewed: "viewerViewed", viewerZoom: "viewerZoom", viewerZoomed: "viewerZoomed" }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: NgxViewer2Directive, decorators: [{ type: Directive, args: [{ selector: '[ngxViewer2]', standalone: false }] }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { viewerOptions: [{ type: Input }], viewerReady: [{ type: Output }], viewerShow: [{ type: Output }], viewerShown: [{ type: Output }], viewerHide: [{ type: Output }], viewerHidden: [{ type: Output }], viewerView: [{ type: Output }], viewerViewed: [{ type: Output }], viewerZoom: [{ type: Output }], viewerZoomed: [{ type: Output }] } }); class NgxViewer2Module { /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: NgxViewer2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.0", ngImport: i0, type: NgxViewer2Module, declarations: [NgxViewer2Directive], exports: [NgxViewer2Directive] }); } /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: NgxViewer2Module }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: NgxViewer2Module, decorators: [{ type: NgModule, args: [{ declarations: [ NgxViewer2Directive ], imports: [], exports: [ NgxViewer2Directive ] }] }] }); /* * Public API Surface of ngx-viewer2 */ /** * Generated bundle index. Do not edit. */ export { NgxViewer2Directive, NgxViewer2Module }; //# sourceMappingURL=jaguards-ngx-viewer2.mjs.map