@jaguards/ngx-viewer2
Version:
Angular 15+ directive for the Viewer.js library
108 lines (102 loc) • 5.27 kB
JavaScript
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