ngx-doc-viewer 2.1.3 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -120,11 +120,50 @@ export class NgxDocViewerComponent {
120
120
  }
121
121
  }
122
122
  }
123
- NgxDocViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
124
- NgxDocViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: NgxDocViewerComponent, selector: "ngx-doc-viewer", inputs: { url: "url", queryParams: "queryParams", viewerUrl: "viewerUrl", googleCheckInterval: "googleCheckInterval", googleMaxChecks: "googleMaxChecks", disableContent: "disableContent", googleCheckContentLoaded: "googleCheckContentLoaded", viewer: "viewer", overrideLocalhost: "overrideLocalhost" }, outputs: { loaded: "loaded" }, viewQueries: [{ propertyName: "iframes", predicate: ["iframe"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block}.container{width:100%;height:100%;position:relative}.overlay-popout-google{width:40px;height:40px;right:26px;top:11.5px;position:absolute;z-index:1000}.overlay-popout-office{width:100px;height:20px;right:0;bottom:0;position:absolute;z-index:1000}.overlay-full{width:100%;height:100%;right:0;top:0;position:absolute;z-index:1000}iframe{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerComponent, decorators: [{
123
+ NgxDocViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
124
+ NgxDocViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: NgxDocViewerComponent, selector: "ngx-doc-viewer", inputs: { url: "url", queryParams: "queryParams", viewerUrl: "viewerUrl", googleCheckInterval: "googleCheckInterval", googleMaxChecks: "googleMaxChecks", disableContent: "disableContent", googleCheckContentLoaded: "googleCheckContentLoaded", viewer: "viewer", overrideLocalhost: "overrideLocalhost" }, outputs: { loaded: "loaded" }, viewQueries: [{ propertyName: "iframes", predicate: ["iframe"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block}.container{width:100%;height:100%;position:relative}.overlay-popout-google{width:40px;height:40px;right:26px;top:11.5px;position:absolute;z-index:1000}.overlay-popout-office{width:100px;height:20px;right:0;bottom:0;position:absolute;z-index:1000}.overlay-full{width:100%;height:100%;right:0;top:0;position:absolute;z-index:1000}iframe{width:100%;height:100%}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerComponent, decorators: [{
126
126
  type: Component,
127
- args: [{ selector: 'ngx-doc-viewer', template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block}.container{width:100%;height:100%;position:relative}.overlay-popout-google{width:40px;height:40px;right:26px;top:11.5px;position:absolute;z-index:1000}.overlay-popout-office{width:100px;height:20px;right:0;bottom:0;position:absolute;z-index:1000}.overlay-full{width:100%;height:100%;right:0;top:0;position:absolute;z-index:1000}iframe{width:100%;height:100%}\n"] }]
127
+ args: [{ selector: 'ngx-doc-viewer', styles: [
128
+ `
129
+ :host {
130
+ display: block;
131
+ }
132
+ .container {
133
+ width: 100%;
134
+ height: 100%;
135
+ position: relative;
136
+ }
137
+ .overlay-popout-google {
138
+ width: 40px;
139
+ height: 40px;
140
+ right: 26px;
141
+ top: 11.5px;
142
+ position: absolute;
143
+ z-index: 1000;
144
+ }
145
+ .overlay-popout-office {
146
+ width: 100px;
147
+ height: 20px;
148
+ right: 0;
149
+ bottom: 0;
150
+ position: absolute;
151
+ z-index: 1000;
152
+ }
153
+ .overlay-full {
154
+ width: 100%;
155
+ height: 100%;
156
+ right: 0;
157
+ top: 0;
158
+ position: absolute;
159
+ z-index: 1000;
160
+ }
161
+ iframe {
162
+ width: 100%;
163
+ height: 100%;
164
+ }
165
+ `,
166
+ ], template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n" }]
128
167
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.NgZone }]; }, propDecorators: { loaded: [{
129
168
  type: Output
130
169
  }], url: [{
@@ -149,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
149
188
  type: ViewChildren,
150
189
  args: ['iframe']
151
190
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25neC1kb2Mtdmlld2VyL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25neC1kb2Mtdmlld2VyL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFJTixNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsOERBQThEO0FBQzlELE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsV0FBVyxFQUNYLGVBQWUsR0FFaEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFpRHZCLE1BQU0sT0FBTyxxQkFBcUI7SUFzQmhDLFlBQW9CLFlBQTBCLEVBQVUsTUFBYztRQUFsRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFuQjVELFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUMzQixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixtQkFBYyxHQUE4QyxNQUFNLENBQUM7UUFDbkUsNkJBQXdCLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLFdBQU0sR0FBZSxRQUFR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SW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG5yd2wvbngvZW5mb3JjZS1tb2R1bGUtYm91bmRhcmllc1xyXG5pbXBvcnQge1xyXG4gIGdldERvY3hUb0h0bWwsXHJcbiAgZ2V0Vmlld2VyRGV0YWlscyxcclxuICBnb29nbGVDaGVja1N1YnNjcmlwdGlvbixcclxuICBpZnJhbWVJc0xvYWRlZCxcclxuICBpc0xvY2FsRmlsZSxcclxuICByZXBsYWNlTG9jYWxVcmwsXHJcbiAgSUZyYW1lUmVsb2FkZXIsXHJcbn0gZnJvbSAnZG9jdmlld2hlbHBlcic7XHJcblxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbmV4cG9ydCB0eXBlIHZpZXdlclR5cGUgPSAnZ29vZ2xlJyB8ICdvZmZpY2UnIHwgJ21hbW1vdGgnIHwgJ3BkZicgfCAndXJsJztcclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ25neC1kb2Mtdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJ2RvY3VtZW50LXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICBgXHJcbiAgICAgIDpob3N0IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgICAuY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB9XHJcbiAgICAgIC5vdmVybGF5LXBvcG91dC1nb29nbGUge1xyXG4gICAgICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICByaWdodDogMjZweDtcclxuICAgICAgICB0b3A6IDExLjVweDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgei1pbmRleDogMTAwMDtcclxuICAgICAgfVxyXG4gICAgICAub3ZlcmxheS1wb3BvdXQtb2ZmaWNlIHtcclxuICAgICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgei1pbmRleDogMTAwMDtcclxuICAgICAgfVxyXG4gICAgICAub3ZlcmxheS1mdWxsIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmcmFtZSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICBgLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hEb2NWaWV3ZXJDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBAT3V0cHV0KCkgbG9hZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgdXJsID0gJyc7XHJcbiAgQElucHV0KCkgcXVlcnlQYXJhbXMgPSAnJztcclxuICBASW5wdXQoKSB2aWV3ZXJVcmwgPSAnJztcclxuICBASW5wdXQoKSBnb29nbGVDaGVja0ludGVydmFsID0gMzAwMDtcclxuICBASW5wdXQoKSBnb29nbGVNYXhDaGVja3MgPSA1O1xyXG4gIEBJbnB1dCgpIGRpc2FibGVDb250ZW50OiAnbm9uZScgfCAnYWxsJyB8ICdwb3BvdXQnIHwgJ3BvcG91dC1oaWRlJyA9ICdub25lJztcclxuICBASW5wdXQoKSBnb29nbGVDaGVja0NvbnRlbnRMb2FkZWQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHZpZXdlcjogdmlld2VyVHlwZSA9ICdnb29nbGUnO1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlTG9jYWxob3N0ID0gJyc7XHJcbiAgQFZpZXdDaGlsZHJlbignaWZyYW1lJykgaWZyYW1lcz86IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPiA9IHVuZGVmaW5lZDtcclxuXHJcbiAgcHVibGljIGZ1bGxVcmw/OiBTYWZlUmVzb3VyY2VVcmwgPSB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGV4dGVybmFsVmlld2VyID0gZmFsc2U7XHJcbiAgcHVibGljIGRvY0h0bWwgPSAnJztcclxuICBwdWJsaWMgY29uZmlndXJlZFZpZXdlcjogdmlld2VyVHlwZSA9ICdnb29nbGUnO1xyXG4gIHByaXZhdGUgY2hlY2tJRnJhbWVTdWJzY3JpcHRpb24/OiBJRnJhbWVSZWxvYWRlciA9IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHNob3VsZENoZWNrSWZyYW1lID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNob3VsZENoZWNrSWZyYW1lKSB7XHJcbiAgICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuaWZyYW1lcz8uZmlyc3Q/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElGcmFtZUVsZW1lbnQ7XHJcbiAgICAgIGlmIChpZnJhbWUpIHtcclxuICAgICAgICB0aGlzLnNob3VsZENoZWNrSWZyYW1lID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZWxvYWRJZnJhbWUoaWZyYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jaGVja0lGcmFtZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGNoYW5nZXMgJiZcclxuICAgICAgY2hhbmdlc1sndmlld2VyJ10gJiZcclxuICAgICAgKGNoYW5nZXNbJ3ZpZXdlciddLmlzRmlyc3RDaGFuZ2UgfHxcclxuICAgICAgICBjaGFuZ2VzWyd2aWV3ZXInXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ3ZpZXdlciddLnByZXZpb3VzVmFsdWUpXHJcbiAgICApIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMudmlld2VyICE9PSAnZ29vZ2xlJyAmJlxyXG4gICAgICAgIHRoaXMudmlld2VyICE9PSAnb2ZmaWNlJyAmJlxyXG4gICAgICAgIHRoaXMudmlld2VyICE9PSAnbWFtbW90aCcgJiZcclxuICAgICAgICB0aGlzLnZpZXdlciAhPT0gJ3BkZicgJiZcclxuICAgICAgICB0aGlzLnZpZXdlciAhPT0gJ3VybCdcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgIGBVbnN1cHBvcnRlZCB2aWV3ZXI6ICcke3RoaXMudmlld2VyfScuIFN1cHBvcnRlZCB2aWV3ZXJzOiBnb29nbGUsIG9mZmljZSwgbWFtbW90aCBhbmQgcGRmYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWd1cmVkVmlld2VyID0gdGhpcy52aWV3ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAoY2hhbmdlc1sndXJsJ10gJiZcclxuICAgICAgICBjaGFuZ2VzWyd1cmwnXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ3VybCddLnByZXZpb3VzVmFsdWUpIHx8XHJcbiAgICAgIChjaGFuZ2VzWyd2aWV3ZXInXSAmJlxyXG4gICAgICAgIGNoYW5nZXNbJ3ZpZXdlciddLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1sndmlld2VyJ10ucHJldmlvdXNWYWx1ZSkgfHxcclxuICAgICAgKGNoYW5nZXNbJ3ZpZXdlclVybCddICYmXHJcbiAgICAgICAgY2hhbmdlc1sndmlld2VyVXJsJ10uY3VycmVudFZhbHVlICE9PVxyXG4gICAgICAgICAgY2hhbmdlc1sndmlld2VyVXJsJ10ucHJldmlvdXNWYWx1ZSlcclxuICAgICkge1xyXG4gICAgICBsZXQgdmlld2VyRGV0YWlscyA9IGdldFZpZXdlckRldGFpbHMoXHJcbiAgICAgICAgdGhpcy51cmwsXHJcbiAgICAgICAgdGhpcy5jb25maWd1cmVkVmlld2VyLFxyXG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXMsXHJcbiAgICAgICAgdGhpcy52aWV3ZXJVcmxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5leHRlcm5hbFZpZXdlciA9IHZpZXdlckRldGFpbHMuZXh0ZXJuYWxWaWV3ZXI7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB2aWV3ZXJEZXRhaWxzLmV4dGVybmFsVmlld2VyICYmXHJcbiAgICAgICAgdGhpcy5vdmVycmlkZUxvY2FsaG9zdCAmJlxyXG4gICAgICAgIGlzTG9jYWxGaWxlKHRoaXMudXJsKVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBuZXdVcmwgPSByZXBsYWNlTG9jYWxVcmwodGhpcy51cmwsIHRoaXMub3ZlcnJpZGVMb2NhbGhvc3QpO1xyXG4gICAgICAgIHZpZXdlckRldGFpbHMgPSBnZXRWaWV3ZXJEZXRhaWxzKFxyXG4gICAgICAgICAgbmV3VXJsLFxyXG4gICAgICAgICAgdGhpcy5jb25maWd1cmVkVmlld2VyLFxyXG4gICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcyxcclxuICAgICAgICAgIHRoaXMudmlld2VyVXJsXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRvY0h0bWwgPSAnJztcclxuICAgICAgaWYgKHRoaXMuY2hlY2tJRnJhbWVTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnVybCkge1xyXG4gICAgICAgIHRoaXMuZnVsbFVybCA9IHVuZGVmaW5lZDtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB2aWV3ZXJEZXRhaWxzLmV4dGVybmFsVmlld2VyIHx8XHJcbiAgICAgICAgdGhpcy5jb25maWd1cmVkVmlld2VyID09PSAndXJsJyB8fFxyXG4gICAgICAgIHRoaXMuY29uZmlndXJlZFZpZXdlciA9PT0gJ3BkZidcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5mdWxsVXJsID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFxyXG4gICAgICAgICAgdmlld2VyRGV0YWlscy51cmxcclxuICAgICAgICApO1xyXG4gICAgICAgIC8vIHNlZTpcclxuICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MDQxNDAzOS9nb29nbGUtZG9jcy12aWV3ZXItcmV0dXJuaW5nLTIwNC1yZXNwb25zZXMtbm8tbG9uZ2VyLXdvcmtpbmctYWx0ZXJuYXRpdmVzXHJcbiAgICAgICAgLy8gaGFjayB0byByZWxvYWQgaWZyYW1lIGlmIGl0J3Mgbm90IGxvYWRlZC5cclxuICAgICAgICAvLyB3b3VsZCBtYXliZSBiZSBiZXR0ZXIgdG8gdXNlIHZpZXcub2ZmaWNlYXBwcy5saXZlLmNvbSBidXQgc2VlbXMgbm90IHRvIHdvcmsgd2l0aCBzYXMgdG9rZW4uXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5jb25maWd1cmVkVmlld2VyID09PSAnZ29vZ2xlJyAmJlxyXG4gICAgICAgICAgdGhpcy5nb29nbGVDaGVja0NvbnRlbnRMb2FkZWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgLy8gaWYgaXQncyBub3QgbG9hZGVkIGFmdGVyIHRoZSBnb29nbGVJbnRlcnZhbENoZWNrLCB0aGVuIG9wZW4gbG9hZCBhZ2Fpbi5cclxuICAgICAgICAgICAgY29uc3QgaWZyYW1lID0gdGhpcy5pZnJhbWVzPy5maXJzdFxyXG4gICAgICAgICAgICAgID8ubmF0aXZlRWxlbWVudCBhcyBIVE1MSUZyYW1lRWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKGlmcmFtZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVsb2FkSWZyYW1lKGlmcmFtZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG91bGRDaGVja0lmcmFtZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZ3VyZWRWaWV3ZXIgPT09ICdtYW1tb3RoJykge1xyXG4gICAgICAgIHRoaXMuZG9jSHRtbCA9IGF3YWl0IGdldERvY3hUb0h0bWwodGhpcy51cmwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbG9hZElmcmFtZShpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50KSB7XHJcbiAgICB0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uID0gZ29vZ2xlQ2hlY2tTdWJzY3JpcHRpb24oKTtcclxuICAgIHRoaXMuY2hlY2tJRnJhbWVTdWJzY3JpcHRpb24uc3Vic2NyaWJlKFxyXG4gICAgICBpZnJhbWUsXHJcbiAgICAgIHRoaXMuZ29vZ2xlQ2hlY2tJbnRlcnZhbCxcclxuICAgICAgdGhpcy5nb29nbGVNYXhDaGVja3NcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpZnJhbWVMb2FkZWQoKSB7XHJcbiAgICBjb25zdCBpZnJhbWUgPSB0aGlzLmlmcmFtZXM/LmZpcnN0Py5uYXRpdmVFbGVtZW50IGFzIEhUTUxJRnJhbWVFbGVtZW50O1xyXG4gICAgaWYgKGlmcmFtZSAmJiBpZnJhbWVJc0xvYWRlZChpZnJhbWUpKSB7XHJcbiAgICAgIHRoaXMubG9hZGVkLmVtaXQodW5kZWZpbmVkKTtcclxuICAgICAgaWYgKHRoaXMuY2hlY2tJRnJhbWVTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFleHRlcm5hbFZpZXdlclwiPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWd1cmVkVmlld2VyICE9PSAncGRmJ1wiIFtpbm5lckh0bWxdPVwiZG9jSHRtbFwiPjwvZGl2PlxyXG4gIDxvYmplY3RcclxuICAgICpuZ0lmPVwiZnVsbFVybCAmJiBjb25maWd1cmVkVmlld2VyID09PSAncGRmJ1wiXHJcbiAgICBbZGF0YV09XCJmdWxsVXJsXCJcclxuICAgIHR5cGU9XCJhcHBsaWNhdGlvbi9wZGZcIlxyXG4gICAgd2lkdGg9XCIxMDAlXCJcclxuICAgIGhlaWdodD1cIjEwMCVcIlxyXG4gID5cclxuICAgIDxwPlxyXG4gICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBQREZzLlxyXG4gICAgICA8YSBbaHJlZl09XCJmdWxsVXJsXCI+RG93bmxvYWQgdGhlIFBERjwvYT4uXHJcbiAgICA8L3A+XHJcbiAgPC9vYmplY3Q+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiZXh0ZXJuYWxWaWV3ZXJcIj5cclxuICA8aWZyYW1lXHJcbiAgICAobG9hZCk9XCJpZnJhbWVMb2FkZWQoKVwiXHJcbiAgICAqbmdJZj1cImZ1bGxVcmwgJiYgZGlzYWJsZUNvbnRlbnQgPT09ICdub25lJ1wiXHJcbiAgICAjaWZyYW1lXHJcbiAgICBpZD1cImlmcmFtZS1kb2Mtdmlld2VyXCJcclxuICAgIGZyYW1lQm9yZGVyPVwiMFwiXHJcbiAgICBbc3JjXT1cImZ1bGxVcmxcIlxyXG4gID48L2lmcmFtZT5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgKm5nSWY9XCJkaXNhYmxlQ29udGVudCAhPT0gJ25vbmUnXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIFtjbGFzcy5vdmVybGF5LWZ1bGxdPVwiZGlzYWJsZUNvbnRlbnQgPT09ICdhbGwnXCJcclxuICAgICAgW2NsYXNzLm92ZXJsYXktcG9wb3V0LWdvb2dsZV09XCJcclxuICAgICAgICBjb25maWd1cmVkVmlld2VyID09PSAnZ29vZ2xlJyAmJlxyXG4gICAgICAgIChkaXNhYmxlQ29udGVudCA9PT0gJ3BvcG91dCcgfHwgZGlzYWJsZUNvbnRlbnQgPT09ICdwb3BvdXQtaGlkZScpXHJcbiAgICAgIFwiXHJcbiAgICAgIFtjbGFzcy5vdmVybGF5LXBvcG91dC1vZmZpY2VdPVwiXHJcbiAgICAgICAgY29uZmlndXJlZFZpZXdlciA9PT0gJ29mZmljZScgJiZcclxuICAgICAgICAoZGlzYWJsZUNvbnRlbnQgPT09ICdwb3BvdXQnIHx8IGRpc2FibGVDb250ZW50ID09PSAncG9wb3V0LWhpZGUnKVxyXG4gICAgICBcIlxyXG4gICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJcclxuICAgICAgICBkaXNhYmxlQ29udGVudCA9PT0gJ3BvcG91dC1oaWRlJyA/ICcjZmZmJyA6ICd0cmFuc3BhcmVudCdcclxuICAgICAgXCJcclxuICAgID48L2Rpdj5cclxuICAgIDxpZnJhbWVcclxuICAgICAgKGxvYWQpPVwiaWZyYW1lTG9hZGVkKClcIlxyXG4gICAgICAqbmdJZj1cImZ1bGxVcmxcIlxyXG4gICAgICAjaWZyYW1lXHJcbiAgICAgIGlkPVwiaWZyYW1lXCJcclxuICAgICAgZnJhbWVCb3JkZXI9XCIwXCJcclxuICAgICAgW3NyY109XCJmdWxsVXJsXCJcclxuICAgID48L2lmcmFtZT5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25neC1kb2Mtdmlld2VyL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25neC1kb2Mtdmlld2VyL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFJTixNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsOERBQThEO0FBQzlELE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsV0FBVyxFQUNYLGVBQWUsR0FFaEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFpRHZCLE1BQU0sT0FBTyxxQkFBcUI7SUFzQmhDLFlBQW9CLFlBQTBCLEVBQVUsTUFBYztRQUFsRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFuQjVELFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUMzQixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixtQkFBYyxHQUE4QyxNQUFNLENBQUM7UUFDbkUsNkJBQXdCLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLFdBQU0sR0FBZSxRQUFR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QUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBRdWVyeUxpc3QsXHJcbiAgRWxlbWVudFJlZixcclxuICBBZnRlclZpZXdJbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBucndsL254L2VuZm9yY2UtbW9kdWxlLWJvdW5kYXJpZXNcclxuaW1wb3J0IHtcclxuICBnZXREb2N4VG9IdG1sLFxyXG4gIGdldFZpZXdlckRldGFpbHMsXHJcbiAgZ29vZ2xlQ2hlY2tTdWJzY3JpcHRpb24sXHJcbiAgaWZyYW1lSXNMb2FkZWQsXHJcbiAgaXNMb2NhbEZpbGUsXHJcbiAgcmVwbGFjZUxvY2FsVXJsLFxyXG4gIElGcmFtZVJlbG9hZGVyLFxyXG59IGZyb20gJ2RvY3ZpZXdoZWxwZXInO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG5leHBvcnQgdHlwZSB2aWV3ZXJUeXBlID0gJ2dvb2dsZScgfCAnb2ZmaWNlJyB8ICdtYW1tb3RoJyB8ICdwZGYnIHwgJ3VybCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICduZ3gtZG9jLXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICdkb2N1bWVudC12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW1xyXG4gICAgYFxyXG4gICAgICA6aG9zdCB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgfVxyXG4gICAgICAub3ZlcmxheS1wb3BvdXQtZ29vZ2xlIHtcclxuICAgICAgICB3aWR0aDogNDBweDtcclxuICAgICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgcmlnaHQ6IDI2cHg7XHJcbiAgICAgICAgdG9wOiAxMS41cHg7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICAgIH1cclxuICAgICAgLm92ZXJsYXktcG9wb3V0LW9mZmljZSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xyXG4gICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICAgIH1cclxuICAgICAgLm92ZXJsYXktZnVsbCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgei1pbmRleDogMTAwMDtcclxuICAgICAgfVxyXG4gICAgICBpZnJhbWUge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgYCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4RG9jVmlld2VyQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgQE91dHB1dCgpIGxvYWRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHVybCA9ICcnO1xyXG4gIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zID0gJyc7XHJcbiAgQElucHV0KCkgdmlld2VyVXJsID0gJyc7XHJcbiAgQElucHV0KCkgZ29vZ2xlQ2hlY2tJbnRlcnZhbCA9IDMwMDA7XHJcbiAgQElucHV0KCkgZ29vZ2xlTWF4Q2hlY2tzID0gNTtcclxuICBASW5wdXQoKSBkaXNhYmxlQ29udGVudDogJ25vbmUnIHwgJ2FsbCcgfCAncG9wb3V0JyB8ICdwb3BvdXQtaGlkZScgPSAnbm9uZSc7XHJcbiAgQElucHV0KCkgZ29vZ2xlQ2hlY2tDb250ZW50TG9hZGVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSB2aWV3ZXI6IHZpZXdlclR5cGUgPSAnZ29vZ2xlJztcclxuICBASW5wdXQoKSBvdmVycmlkZUxvY2FsaG9zdCA9ICcnO1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2lmcmFtZScpIGlmcmFtZXM/OiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4gPSB1bmRlZmluZWQ7XHJcblxyXG4gIHB1YmxpYyBmdWxsVXJsPzogU2FmZVJlc291cmNlVXJsID0gdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBleHRlcm5hbFZpZXdlciA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkb2NIdG1sID0gJyc7XHJcbiAgcHVibGljIGNvbmZpZ3VyZWRWaWV3ZXI6IHZpZXdlclR5cGUgPSAnZ29vZ2xlJztcclxuICBwcml2YXRlIGNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uPzogSUZyYW1lUmVsb2FkZXIgPSB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBzaG91bGRDaGVja0lmcmFtZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zaG91bGRDaGVja0lmcmFtZSkge1xyXG4gICAgICBjb25zdCBpZnJhbWUgPSB0aGlzLmlmcmFtZXM/LmZpcnN0Py5uYXRpdmVFbGVtZW50IGFzIEhUTUxJRnJhbWVFbGVtZW50O1xyXG4gICAgICBpZiAoaWZyYW1lKSB7XHJcbiAgICAgICAgdGhpcy5zaG91bGRDaGVja0lmcmFtZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVsb2FkSWZyYW1lKGlmcmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tJRnJhbWVTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5jaGVja0lGcmFtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKFxyXG4gICAgICBjaGFuZ2VzICYmXHJcbiAgICAgIGNoYW5nZXNbJ3ZpZXdlciddICYmXHJcbiAgICAgIChjaGFuZ2VzWyd2aWV3ZXInXS5pc0ZpcnN0Q2hhbmdlIHx8XHJcbiAgICAgICAgY2hhbmdlc1sndmlld2VyJ10uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWyd2aWV3ZXInXS5wcmV2aW91c1ZhbHVlKVxyXG4gICAgKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLnZpZXdlciAhPT0gJ2dvb2dsZScgJiZcclxuICAgICAgICB0aGlzLnZpZXdlciAhPT0gJ29mZmljZScgJiZcclxuICAgICAgICB0aGlzLnZpZXdlciAhPT0gJ21hbW1vdGgnICYmXHJcbiAgICAgICAgdGhpcy52aWV3ZXIgIT09ICdwZGYnICYmXHJcbiAgICAgICAgdGhpcy52aWV3ZXIgIT09ICd1cmwnXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgICBgVW5zdXBwb3J0ZWQgdmlld2VyOiAnJHt0aGlzLnZpZXdlcn0nLiBTdXBwb3J0ZWQgdmlld2VyczogZ29vZ2xlLCBvZmZpY2UsIG1hbW1vdGggYW5kIHBkZmBcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlndXJlZFZpZXdlciA9IHRoaXMudmlld2VyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgKGNoYW5nZXNbJ3VybCddICYmXHJcbiAgICAgICAgY2hhbmdlc1sndXJsJ10uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWyd1cmwnXS5wcmV2aW91c1ZhbHVlKSB8fFxyXG4gICAgICAoY2hhbmdlc1sndmlld2VyJ10gJiZcclxuICAgICAgICBjaGFuZ2VzWyd2aWV3ZXInXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ3ZpZXdlciddLnByZXZpb3VzVmFsdWUpIHx8XHJcbiAgICAgIChjaGFuZ2VzWyd2aWV3ZXJVcmwnXSAmJlxyXG4gICAgICAgIGNoYW5nZXNbJ3ZpZXdlclVybCddLmN1cnJlbnRWYWx1ZSAhPT1cclxuICAgICAgICAgIGNoYW5nZXNbJ3ZpZXdlclVybCddLnByZXZpb3VzVmFsdWUpXHJcbiAgICApIHtcclxuICAgICAgbGV0IHZpZXdlckRldGFpbHMgPSBnZXRWaWV3ZXJEZXRhaWxzKFxyXG4gICAgICAgIHRoaXMudXJsLFxyXG4gICAgICAgIHRoaXMuY29uZmlndXJlZFZpZXdlcixcclxuICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLFxyXG4gICAgICAgIHRoaXMudmlld2VyVXJsXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZXh0ZXJuYWxWaWV3ZXIgPSB2aWV3ZXJEZXRhaWxzLmV4dGVybmFsVmlld2VyO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdmlld2VyRGV0YWlscy5leHRlcm5hbFZpZXdlciAmJlxyXG4gICAgICAgIHRoaXMub3ZlcnJpZGVMb2NhbGhvc3QgJiZcclxuICAgICAgICBpc0xvY2FsRmlsZSh0aGlzLnVybClcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgbmV3VXJsID0gcmVwbGFjZUxvY2FsVXJsKHRoaXMudXJsLCB0aGlzLm92ZXJyaWRlTG9jYWxob3N0KTtcclxuICAgICAgICB2aWV3ZXJEZXRhaWxzID0gZ2V0Vmlld2VyRGV0YWlscyhcclxuICAgICAgICAgIG5ld1VybCxcclxuICAgICAgICAgIHRoaXMuY29uZmlndXJlZFZpZXdlcixcclxuICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXMsXHJcbiAgICAgICAgICB0aGlzLnZpZXdlclVybFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kb2NIdG1sID0gJyc7XHJcbiAgICAgIGlmICh0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0lGcmFtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy51cmwpIHtcclxuICAgICAgICB0aGlzLmZ1bGxVcmwgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdmlld2VyRGV0YWlscy5leHRlcm5hbFZpZXdlciB8fFxyXG4gICAgICAgIHRoaXMuY29uZmlndXJlZFZpZXdlciA9PT0gJ3VybCcgfHxcclxuICAgICAgICB0aGlzLmNvbmZpZ3VyZWRWaWV3ZXIgPT09ICdwZGYnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZnVsbFVybCA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcclxuICAgICAgICAgIHZpZXdlckRldGFpbHMudXJsXHJcbiAgICAgICAgKTtcclxuICAgICAgICAvLyBzZWU6XHJcbiAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDA0MTQwMzkvZ29vZ2xlLWRvY3Mtdmlld2VyLXJldHVybmluZy0yMDQtcmVzcG9uc2VzLW5vLWxvbmdlci13b3JraW5nLWFsdGVybmF0aXZlc1xyXG4gICAgICAgIC8vIGhhY2sgdG8gcmVsb2FkIGlmcmFtZSBpZiBpdCdzIG5vdCBsb2FkZWQuXHJcbiAgICAgICAgLy8gd291bGQgbWF5YmUgYmUgYmV0dGVyIHRvIHVzZSB2aWV3Lm9mZmljZWFwcHMubGl2ZS5jb20gYnV0IHNlZW1zIG5vdCB0byB3b3JrIHdpdGggc2FzIHRva2VuLlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMuY29uZmlndXJlZFZpZXdlciA9PT0gJ2dvb2dsZScgJiZcclxuICAgICAgICAgIHRoaXMuZ29vZ2xlQ2hlY2tDb250ZW50TG9hZGVkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIGlmIGl0J3Mgbm90IGxvYWRlZCBhZnRlciB0aGUgZ29vZ2xlSW50ZXJ2YWxDaGVjaywgdGhlbiBvcGVuIGxvYWQgYWdhaW4uXHJcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuaWZyYW1lcz8uZmlyc3RcclxuICAgICAgICAgICAgICA/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElGcmFtZUVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGlmIChpZnJhbWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbG9hZElmcmFtZShpZnJhbWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvdWxkQ2hlY2tJZnJhbWUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmVkVmlld2VyID09PSAnbWFtbW90aCcpIHtcclxuICAgICAgICB0aGlzLmRvY0h0bWwgPSBhd2FpdCBnZXREb2N4VG9IdG1sKHRoaXMudXJsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWxvYWRJZnJhbWUoaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCkge1xyXG4gICAgdGhpcy5jaGVja0lGcmFtZVN1YnNjcmlwdGlvbiA9IGdvb2dsZUNoZWNrU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uLnN1YnNjcmliZShcclxuICAgICAgaWZyYW1lLFxyXG4gICAgICB0aGlzLmdvb2dsZUNoZWNrSW50ZXJ2YWwsXHJcbiAgICAgIHRoaXMuZ29vZ2xlTWF4Q2hlY2tzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaWZyYW1lTG9hZGVkKCkge1xyXG4gICAgY29uc3QgaWZyYW1lID0gdGhpcy5pZnJhbWVzPy5maXJzdD8ubmF0aXZlRWxlbWVudCBhcyBIVE1MSUZyYW1lRWxlbWVudDtcclxuICAgIGlmIChpZnJhbWUgJiYgaWZyYW1lSXNMb2FkZWQoaWZyYW1lKSkge1xyXG4gICAgICB0aGlzLmxvYWRlZC5lbWl0KHVuZGVmaW5lZCk7XHJcbiAgICAgIGlmICh0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0lGcmFtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhZXh0ZXJuYWxWaWV3ZXJcIj5cclxuICA8ZGl2ICpuZ0lmPVwiY29uZmlndXJlZFZpZXdlciAhPT0gJ3BkZidcIiBbaW5uZXJIdG1sXT1cImRvY0h0bWxcIj48L2Rpdj5cclxuICA8b2JqZWN0XHJcbiAgICAqbmdJZj1cImZ1bGxVcmwgJiYgY29uZmlndXJlZFZpZXdlciA9PT0gJ3BkZidcIlxyXG4gICAgW2RhdGFdPVwiZnVsbFVybFwiXHJcbiAgICB0eXBlPVwiYXBwbGljYXRpb24vcGRmXCJcclxuICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICBoZWlnaHQ9XCIxMDAlXCJcclxuICA+XHJcbiAgICA8cD5cclxuICAgICAgWW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgUERGcy5cclxuICAgICAgPGEgW2hyZWZdPVwiZnVsbFVybFwiPkRvd25sb2FkIHRoZSBQREY8L2E+LlxyXG4gICAgPC9wPlxyXG4gIDwvb2JqZWN0PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4dGVybmFsVmlld2VyXCI+XHJcbiAgPGlmcmFtZVxyXG4gICAgKGxvYWQpPVwiaWZyYW1lTG9hZGVkKClcIlxyXG4gICAgKm5nSWY9XCJmdWxsVXJsICYmIGRpc2FibGVDb250ZW50ID09PSAnbm9uZSdcIlxyXG4gICAgI2lmcmFtZVxyXG4gICAgaWQ9XCJpZnJhbWUtZG9jLXZpZXdlclwiXHJcbiAgICBmcmFtZUJvcmRlcj1cIjBcIlxyXG4gICAgW3NyY109XCJmdWxsVXJsXCJcclxuICA+PC9pZnJhbWU+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICpuZ0lmPVwiZGlzYWJsZUNvbnRlbnQgIT09ICdub25lJ1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICBbY2xhc3Mub3ZlcmxheS1mdWxsXT1cImRpc2FibGVDb250ZW50ID09PSAnYWxsJ1wiXHJcbiAgICAgIFtjbGFzcy5vdmVybGF5LXBvcG91dC1nb29nbGVdPVwiXHJcbiAgICAgICAgY29uZmlndXJlZFZpZXdlciA9PT0gJ2dvb2dsZScgJiZcclxuICAgICAgICAoZGlzYWJsZUNvbnRlbnQgPT09ICdwb3BvdXQnIHx8IGRpc2FibGVDb250ZW50ID09PSAncG9wb3V0LWhpZGUnKVxyXG4gICAgICBcIlxyXG4gICAgICBbY2xhc3Mub3ZlcmxheS1wb3BvdXQtb2ZmaWNlXT1cIlxyXG4gICAgICAgIGNvbmZpZ3VyZWRWaWV3ZXIgPT09ICdvZmZpY2UnICYmXHJcbiAgICAgICAgKGRpc2FibGVDb250ZW50ID09PSAncG9wb3V0JyB8fCBkaXNhYmxlQ29udGVudCA9PT0gJ3BvcG91dC1oaWRlJylcclxuICAgICAgXCJcclxuICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiXHJcbiAgICAgICAgZGlzYWJsZUNvbnRlbnQgPT09ICdwb3BvdXQtaGlkZScgPyAnI2ZmZicgOiAndHJhbnNwYXJlbnQnXHJcbiAgICAgIFwiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8aWZyYW1lXHJcbiAgICAgIChsb2FkKT1cImlmcmFtZUxvYWRlZCgpXCJcclxuICAgICAgKm5nSWY9XCJmdWxsVXJsXCJcclxuICAgICAgI2lmcmFtZVxyXG4gICAgICBpZD1cImlmcmFtZVwiXHJcbiAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXHJcbiAgICAgIFtzcmNdPVwiZnVsbFVybFwiXHJcbiAgICA+PC9pZnJhbWU+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -4,10 +4,10 @@ import { CommonModule } from '@angular/common';
4
4
  import * as i0 from "@angular/core";
5
5
  export class NgxDocViewerModule {
6
6
  }
7
- NgxDocViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- NgxDocViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, declarations: [NgxDocViewerComponent], imports: [CommonModule], exports: [NgxDocViewerComponent] });
9
- NgxDocViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, decorators: [{
7
+ NgxDocViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ NgxDocViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, declarations: [NgxDocViewerComponent], imports: [CommonModule], exports: [NgxDocViewerComponent] });
9
+ NgxDocViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, imports: [[CommonModule]] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  imports: [CommonModule],
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
15
15
  exports: [NgxDocViewerComponent],
16
16
  }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmlld2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25neC1kb2Mtdmlld2VyL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPL0MsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQUhkLHFCQUFxQixhQUQxQixZQUFZLGFBRVoscUJBQXFCO2dIQUVwQixrQkFBa0IsWUFKbkIsWUFBWTsyRkFJWCxrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmd4RG9jVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kb2N1bWVudC12aWV3ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZGVjbGFyYXRpb25zOiBbTmd4RG9jVmlld2VyQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbTmd4RG9jVmlld2VyQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neERvY1ZpZXdlck1vZHVsZSB7fVxyXG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmlld2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25neC1kb2Mtdmlld2VyL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPL0MsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQUhkLHFCQUFxQixhQUQxQixZQUFZLGFBRVoscUJBQXFCO2dIQUVwQixrQkFBa0IsWUFKcEIsQ0FBQyxZQUFZLENBQUM7MkZBSVosa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5neERvY1ZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW05neERvY1ZpZXdlckNvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW05neERvY1ZpZXdlckNvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hEb2NWaWV3ZXJNb2R1bGUge31cclxuIl19
@@ -125,11 +125,50 @@ class NgxDocViewerComponent {
125
125
  }
126
126
  }
127
127
  }
128
- NgxDocViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
129
- NgxDocViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: NgxDocViewerComponent, selector: "ngx-doc-viewer", inputs: { url: "url", queryParams: "queryParams", viewerUrl: "viewerUrl", googleCheckInterval: "googleCheckInterval", googleMaxChecks: "googleMaxChecks", disableContent: "disableContent", googleCheckContentLoaded: "googleCheckContentLoaded", viewer: "viewer", overrideLocalhost: "overrideLocalhost" }, outputs: { loaded: "loaded" }, viewQueries: [{ propertyName: "iframes", predicate: ["iframe"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block}.container{width:100%;height:100%;position:relative}.overlay-popout-google{width:40px;height:40px;right:26px;top:11.5px;position:absolute;z-index:1000}.overlay-popout-office{width:100px;height:20px;right:0;bottom:0;position:absolute;z-index:1000}.overlay-full{width:100%;height:100%;right:0;top:0;position:absolute;z-index:1000}iframe{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerComponent, decorators: [{
128
+ NgxDocViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
129
+ NgxDocViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: NgxDocViewerComponent, selector: "ngx-doc-viewer", inputs: { url: "url", queryParams: "queryParams", viewerUrl: "viewerUrl", googleCheckInterval: "googleCheckInterval", googleMaxChecks: "googleMaxChecks", disableContent: "disableContent", googleCheckContentLoaded: "googleCheckContentLoaded", viewer: "viewer", overrideLocalhost: "overrideLocalhost" }, outputs: { loaded: "loaded" }, viewQueries: [{ propertyName: "iframes", predicate: ["iframe"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block}.container{width:100%;height:100%;position:relative}.overlay-popout-google{width:40px;height:40px;right:26px;top:11.5px;position:absolute;z-index:1000}.overlay-popout-office{width:100px;height:20px;right:0;bottom:0;position:absolute;z-index:1000}.overlay-full{width:100%;height:100%;right:0;top:0;position:absolute;z-index:1000}iframe{width:100%;height:100%}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerComponent, decorators: [{
131
131
  type: Component,
132
- args: [{ selector: 'ngx-doc-viewer', template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block}.container{width:100%;height:100%;position:relative}.overlay-popout-google{width:40px;height:40px;right:26px;top:11.5px;position:absolute;z-index:1000}.overlay-popout-office{width:100px;height:20px;right:0;bottom:0;position:absolute;z-index:1000}.overlay-full{width:100%;height:100%;right:0;top:0;position:absolute;z-index:1000}iframe{width:100%;height:100%}\n"] }]
132
+ args: [{ selector: 'ngx-doc-viewer', styles: [
133
+ `
134
+ :host {
135
+ display: block;
136
+ }
137
+ .container {
138
+ width: 100%;
139
+ height: 100%;
140
+ position: relative;
141
+ }
142
+ .overlay-popout-google {
143
+ width: 40px;
144
+ height: 40px;
145
+ right: 26px;
146
+ top: 11.5px;
147
+ position: absolute;
148
+ z-index: 1000;
149
+ }
150
+ .overlay-popout-office {
151
+ width: 100px;
152
+ height: 20px;
153
+ right: 0;
154
+ bottom: 0;
155
+ position: absolute;
156
+ z-index: 1000;
157
+ }
158
+ .overlay-full {
159
+ width: 100%;
160
+ height: 100%;
161
+ right: 0;
162
+ top: 0;
163
+ position: absolute;
164
+ z-index: 1000;
165
+ }
166
+ iframe {
167
+ width: 100%;
168
+ height: 100%;
169
+ }
170
+ `,
171
+ ], template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n" }]
133
172
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.NgZone }]; }, propDecorators: { loaded: [{
134
173
  type: Output
135
174
  }], url: [{
@@ -157,10 +196,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
157
196
 
158
197
  class NgxDocViewerModule {
159
198
  }
160
- NgxDocViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
161
- NgxDocViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, declarations: [NgxDocViewerComponent], imports: [CommonModule], exports: [NgxDocViewerComponent] });
162
- NgxDocViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, imports: [CommonModule] });
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, decorators: [{
199
+ NgxDocViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
200
+ NgxDocViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, declarations: [NgxDocViewerComponent], imports: [CommonModule], exports: [NgxDocViewerComponent] });
201
+ NgxDocViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, imports: [[CommonModule]] });
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, decorators: [{
164
203
  type: NgModule,
165
204
  args: [{
166
205
  imports: [CommonModule],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-doc-viewer.mjs","sources":["../../../../packages/ngx-doc-viewer/src/lib/document-viewer.component.ts","../../../../packages/ngx-doc-viewer/src/lib/document-viewer.component.html","../../../../packages/ngx-doc-viewer/src/lib/document-viewer.module.ts","../../../../packages/ngx-doc-viewer/src/ngx-doc-viewer.ts"],"sourcesContent":["import {\r\n Component,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n Output,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { EventEmitter } from '@angular/core';\r\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\r\nimport {\r\n getDocxToHtml,\r\n getViewerDetails,\r\n googleCheckSubscription,\r\n iframeIsLoaded,\r\n isLocalFile,\r\n replaceLocalUrl,\r\n IFrameReloader,\r\n} from 'docviewhelper';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport type viewerType = 'google' | 'office' | 'mammoth' | 'pdf' | 'url';\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ngx-doc-viewer',\r\n templateUrl: 'document-viewer.component.html',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n .container {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n }\r\n .overlay-popout-google {\r\n width: 40px;\r\n height: 40px;\r\n right: 26px;\r\n top: 11.5px;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-popout-office {\r\n width: 100px;\r\n height: 20px;\r\n right: 0;\r\n bottom: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-full {\r\n width: 100%;\r\n height: 100%;\r\n right: 0;\r\n top: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n iframe {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class NgxDocViewerComponent\r\n implements OnChanges, OnDestroy, AfterViewInit\r\n{\r\n @Output() loaded: EventEmitter<void> = new EventEmitter();\r\n @Input() url = '';\r\n @Input() queryParams = '';\r\n @Input() viewerUrl = '';\r\n @Input() googleCheckInterval = 3000;\r\n @Input() googleMaxChecks = 5;\r\n @Input() disableContent: 'none' | 'all' | 'popout' | 'popout-hide' = 'none';\r\n @Input() googleCheckContentLoaded = true;\r\n @Input() viewer: viewerType = 'google';\r\n @Input() overrideLocalhost = '';\r\n @ViewChildren('iframe') iframes?: QueryList<ElementRef> = undefined;\r\n\r\n public fullUrl?: SafeResourceUrl = undefined;\r\n public externalViewer = false;\r\n public docHtml = '';\r\n public configuredViewer: viewerType = 'google';\r\n private checkIFrameSubscription?: IFrameReloader = undefined;\r\n private shouldCheckIframe = false;\r\n\r\n constructor(private domSanitizer: DomSanitizer, private ngZone: NgZone) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.shouldCheckIframe) {\r\n const iframe = this.iframes?.first?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.shouldCheckIframe = false;\r\n this.reloadIframe(iframe);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\r\n if (\r\n changes &&\r\n changes['viewer'] &&\r\n (changes['viewer'].isFirstChange ||\r\n changes['viewer'].currentValue !== changes['viewer'].previousValue)\r\n ) {\r\n if (\r\n this.viewer !== 'google' &&\r\n this.viewer !== 'office' &&\r\n this.viewer !== 'mammoth' &&\r\n this.viewer !== 'pdf' &&\r\n this.viewer !== 'url'\r\n ) {\r\n console.error(\r\n `Unsupported viewer: '${this.viewer}'. Supported viewers: google, office, mammoth and pdf`\r\n );\r\n }\r\n this.configuredViewer = this.viewer;\r\n }\r\n\r\n if (\r\n (changes['url'] &&\r\n changes['url'].currentValue !== changes['url'].previousValue) ||\r\n (changes['viewer'] &&\r\n changes['viewer'].currentValue !== changes['viewer'].previousValue) ||\r\n (changes['viewerUrl'] &&\r\n changes['viewerUrl'].currentValue !==\r\n changes['viewerUrl'].previousValue)\r\n ) {\r\n let viewerDetails = getViewerDetails(\r\n this.url,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n this.externalViewer = viewerDetails.externalViewer;\r\n if (\r\n viewerDetails.externalViewer &&\r\n this.overrideLocalhost &&\r\n isLocalFile(this.url)\r\n ) {\r\n const newUrl = replaceLocalUrl(this.url, this.overrideLocalhost);\r\n viewerDetails = getViewerDetails(\r\n newUrl,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n }\r\n this.docHtml = '';\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n if (!this.url) {\r\n this.fullUrl = undefined;\r\n } else if (\r\n viewerDetails.externalViewer ||\r\n this.configuredViewer === 'url' ||\r\n this.configuredViewer === 'pdf'\r\n ) {\r\n this.fullUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n viewerDetails.url\r\n );\r\n // see:\r\n // https://stackoverflow.com/questions/40414039/google-docs-viewer-returning-204-responses-no-longer-working-alternatives\r\n // hack to reload iframe if it's not loaded.\r\n // would maybe be better to use view.officeapps.live.com but seems not to work with sas token.\r\n if (\r\n this.configuredViewer === 'google' &&\r\n this.googleCheckContentLoaded\r\n ) {\r\n this.ngZone.runOutsideAngular(() => {\r\n // if it's not loaded after the googleIntervalCheck, then open load again.\r\n const iframe = this.iframes?.first\r\n ?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.reloadIframe(iframe);\r\n } else {\r\n this.shouldCheckIframe = true;\r\n }\r\n });\r\n }\r\n } else if (this.configuredViewer === 'mammoth') {\r\n this.docHtml = await getDocxToHtml(this.url);\r\n }\r\n }\r\n }\r\n\r\n private reloadIframe(iframe: HTMLIFrameElement) {\r\n this.checkIFrameSubscription = googleCheckSubscription();\r\n this.checkIFrameSubscription.subscribe(\r\n iframe,\r\n this.googleCheckInterval,\r\n this.googleMaxChecks\r\n );\r\n }\r\n\r\n iframeLoaded() {\r\n const iframe = this.iframes?.first?.nativeElement as HTMLIFrameElement;\r\n if (iframe && iframeIsLoaded(iframe)) {\r\n this.loaded.emit(undefined);\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n","import { NgxDocViewerComponent } from './document-viewer.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NgxDocViewerComponent],\r\n exports: [NgxDocViewerComponent],\r\n})\r\nexport class NgxDocViewerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-doc-viewer.mjs","sources":["../../../../packages/ngx-doc-viewer/src/lib/document-viewer.component.ts","../../../../packages/ngx-doc-viewer/src/lib/document-viewer.component.html","../../../../packages/ngx-doc-viewer/src/lib/document-viewer.module.ts","../../../../packages/ngx-doc-viewer/src/ngx-doc-viewer.ts"],"sourcesContent":["import {\r\n Component,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n Output,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { EventEmitter } from '@angular/core';\r\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\r\nimport {\r\n getDocxToHtml,\r\n getViewerDetails,\r\n googleCheckSubscription,\r\n iframeIsLoaded,\r\n isLocalFile,\r\n replaceLocalUrl,\r\n IFrameReloader,\r\n} from 'docviewhelper';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport type viewerType = 'google' | 'office' | 'mammoth' | 'pdf' | 'url';\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ngx-doc-viewer',\r\n templateUrl: 'document-viewer.component.html',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n .container {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n }\r\n .overlay-popout-google {\r\n width: 40px;\r\n height: 40px;\r\n right: 26px;\r\n top: 11.5px;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-popout-office {\r\n width: 100px;\r\n height: 20px;\r\n right: 0;\r\n bottom: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-full {\r\n width: 100%;\r\n height: 100%;\r\n right: 0;\r\n top: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n iframe {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class NgxDocViewerComponent\r\n implements OnChanges, OnDestroy, AfterViewInit\r\n{\r\n @Output() loaded: EventEmitter<void> = new EventEmitter();\r\n @Input() url = '';\r\n @Input() queryParams = '';\r\n @Input() viewerUrl = '';\r\n @Input() googleCheckInterval = 3000;\r\n @Input() googleMaxChecks = 5;\r\n @Input() disableContent: 'none' | 'all' | 'popout' | 'popout-hide' = 'none';\r\n @Input() googleCheckContentLoaded = true;\r\n @Input() viewer: viewerType = 'google';\r\n @Input() overrideLocalhost = '';\r\n @ViewChildren('iframe') iframes?: QueryList<ElementRef> = undefined;\r\n\r\n public fullUrl?: SafeResourceUrl = undefined;\r\n public externalViewer = false;\r\n public docHtml = '';\r\n public configuredViewer: viewerType = 'google';\r\n private checkIFrameSubscription?: IFrameReloader = undefined;\r\n private shouldCheckIframe = false;\r\n\r\n constructor(private domSanitizer: DomSanitizer, private ngZone: NgZone) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.shouldCheckIframe) {\r\n const iframe = this.iframes?.first?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.shouldCheckIframe = false;\r\n this.reloadIframe(iframe);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\r\n if (\r\n changes &&\r\n changes['viewer'] &&\r\n (changes['viewer'].isFirstChange ||\r\n changes['viewer'].currentValue !== changes['viewer'].previousValue)\r\n ) {\r\n if (\r\n this.viewer !== 'google' &&\r\n this.viewer !== 'office' &&\r\n this.viewer !== 'mammoth' &&\r\n this.viewer !== 'pdf' &&\r\n this.viewer !== 'url'\r\n ) {\r\n console.error(\r\n `Unsupported viewer: '${this.viewer}'. Supported viewers: google, office, mammoth and pdf`\r\n );\r\n }\r\n this.configuredViewer = this.viewer;\r\n }\r\n\r\n if (\r\n (changes['url'] &&\r\n changes['url'].currentValue !== changes['url'].previousValue) ||\r\n (changes['viewer'] &&\r\n changes['viewer'].currentValue !== changes['viewer'].previousValue) ||\r\n (changes['viewerUrl'] &&\r\n changes['viewerUrl'].currentValue !==\r\n changes['viewerUrl'].previousValue)\r\n ) {\r\n let viewerDetails = getViewerDetails(\r\n this.url,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n this.externalViewer = viewerDetails.externalViewer;\r\n if (\r\n viewerDetails.externalViewer &&\r\n this.overrideLocalhost &&\r\n isLocalFile(this.url)\r\n ) {\r\n const newUrl = replaceLocalUrl(this.url, this.overrideLocalhost);\r\n viewerDetails = getViewerDetails(\r\n newUrl,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n }\r\n this.docHtml = '';\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n if (!this.url) {\r\n this.fullUrl = undefined;\r\n } else if (\r\n viewerDetails.externalViewer ||\r\n this.configuredViewer === 'url' ||\r\n this.configuredViewer === 'pdf'\r\n ) {\r\n this.fullUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n viewerDetails.url\r\n );\r\n // see:\r\n // https://stackoverflow.com/questions/40414039/google-docs-viewer-returning-204-responses-no-longer-working-alternatives\r\n // hack to reload iframe if it's not loaded.\r\n // would maybe be better to use view.officeapps.live.com but seems not to work with sas token.\r\n if (\r\n this.configuredViewer === 'google' &&\r\n this.googleCheckContentLoaded\r\n ) {\r\n this.ngZone.runOutsideAngular(() => {\r\n // if it's not loaded after the googleIntervalCheck, then open load again.\r\n const iframe = this.iframes?.first\r\n ?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.reloadIframe(iframe);\r\n } else {\r\n this.shouldCheckIframe = true;\r\n }\r\n });\r\n }\r\n } else if (this.configuredViewer === 'mammoth') {\r\n this.docHtml = await getDocxToHtml(this.url);\r\n }\r\n }\r\n }\r\n\r\n private reloadIframe(iframe: HTMLIFrameElement) {\r\n this.checkIFrameSubscription = googleCheckSubscription();\r\n this.checkIFrameSubscription.subscribe(\r\n iframe,\r\n this.googleCheckInterval,\r\n this.googleMaxChecks\r\n );\r\n }\r\n\r\n iframeLoaded() {\r\n const iframe = this.iframes?.first?.nativeElement as HTMLIFrameElement;\r\n if (iframe && iframeIsLoaded(iframe)) {\r\n this.loaded.emit(undefined);\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n","import { NgxDocViewerComponent } from './document-viewer.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NgxDocViewerComponent],\r\n exports: [NgxDocViewerComponent],\r\n})\r\nexport class NgxDocViewerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -120,11 +120,50 @@ class NgxDocViewerComponent {
120
120
  }
121
121
  }
122
122
  }
123
- NgxDocViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
124
- NgxDocViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: NgxDocViewerComponent, selector: "ngx-doc-viewer", inputs: { url: "url", queryParams: "queryParams", viewerUrl: "viewerUrl", googleCheckInterval: "googleCheckInterval", googleMaxChecks: "googleMaxChecks", disableContent: "disableContent", googleCheckContentLoaded: "googleCheckContentLoaded", viewer: "viewer", overrideLocalhost: "overrideLocalhost" }, outputs: { loaded: "loaded" }, viewQueries: [{ propertyName: "iframes", predicate: ["iframe"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block}.container{width:100%;height:100%;position:relative}.overlay-popout-google{width:40px;height:40px;right:26px;top:11.5px;position:absolute;z-index:1000}.overlay-popout-office{width:100px;height:20px;right:0;bottom:0;position:absolute;z-index:1000}.overlay-full{width:100%;height:100%;right:0;top:0;position:absolute;z-index:1000}iframe{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerComponent, decorators: [{
123
+ NgxDocViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
124
+ NgxDocViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: NgxDocViewerComponent, selector: "ngx-doc-viewer", inputs: { url: "url", queryParams: "queryParams", viewerUrl: "viewerUrl", googleCheckInterval: "googleCheckInterval", googleMaxChecks: "googleMaxChecks", disableContent: "disableContent", googleCheckContentLoaded: "googleCheckContentLoaded", viewer: "viewer", overrideLocalhost: "overrideLocalhost" }, outputs: { loaded: "loaded" }, viewQueries: [{ propertyName: "iframes", predicate: ["iframe"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block}.container{width:100%;height:100%;position:relative}.overlay-popout-google{width:40px;height:40px;right:26px;top:11.5px;position:absolute;z-index:1000}.overlay-popout-office{width:100px;height:20px;right:0;bottom:0;position:absolute;z-index:1000}.overlay-full{width:100%;height:100%;right:0;top:0;position:absolute;z-index:1000}iframe{width:100%;height:100%}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerComponent, decorators: [{
126
126
  type: Component,
127
- args: [{ selector: 'ngx-doc-viewer', template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block}.container{width:100%;height:100%;position:relative}.overlay-popout-google{width:40px;height:40px;right:26px;top:11.5px;position:absolute;z-index:1000}.overlay-popout-office{width:100px;height:20px;right:0;bottom:0;position:absolute;z-index:1000}.overlay-full{width:100%;height:100%;right:0;top:0;position:absolute;z-index:1000}iframe{width:100%;height:100%}\n"] }]
127
+ args: [{ selector: 'ngx-doc-viewer', styles: [
128
+ `
129
+ :host {
130
+ display: block;
131
+ }
132
+ .container {
133
+ width: 100%;
134
+ height: 100%;
135
+ position: relative;
136
+ }
137
+ .overlay-popout-google {
138
+ width: 40px;
139
+ height: 40px;
140
+ right: 26px;
141
+ top: 11.5px;
142
+ position: absolute;
143
+ z-index: 1000;
144
+ }
145
+ .overlay-popout-office {
146
+ width: 100px;
147
+ height: 20px;
148
+ right: 0;
149
+ bottom: 0;
150
+ position: absolute;
151
+ z-index: 1000;
152
+ }
153
+ .overlay-full {
154
+ width: 100%;
155
+ height: 100%;
156
+ right: 0;
157
+ top: 0;
158
+ position: absolute;
159
+ z-index: 1000;
160
+ }
161
+ iframe {
162
+ width: 100%;
163
+ height: 100%;
164
+ }
165
+ `,
166
+ ], template: "<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n" }]
128
167
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.NgZone }]; }, propDecorators: { loaded: [{
129
168
  type: Output
130
169
  }], url: [{
@@ -152,10 +191,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
152
191
 
153
192
  class NgxDocViewerModule {
154
193
  }
155
- NgxDocViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
156
- NgxDocViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, declarations: [NgxDocViewerComponent], imports: [CommonModule], exports: [NgxDocViewerComponent] });
157
- NgxDocViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, imports: [CommonModule] });
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: NgxDocViewerModule, decorators: [{
194
+ NgxDocViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
195
+ NgxDocViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, declarations: [NgxDocViewerComponent], imports: [CommonModule], exports: [NgxDocViewerComponent] });
196
+ NgxDocViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, imports: [[CommonModule]] });
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDocViewerModule, decorators: [{
159
198
  type: NgModule,
160
199
  args: [{
161
200
  imports: [CommonModule],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-doc-viewer.mjs","sources":["../../../../packages/ngx-doc-viewer/src/lib/document-viewer.component.ts","../../../../packages/ngx-doc-viewer/src/lib/document-viewer.component.html","../../../../packages/ngx-doc-viewer/src/lib/document-viewer.module.ts","../../../../packages/ngx-doc-viewer/src/ngx-doc-viewer.ts"],"sourcesContent":["import {\r\n Component,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n Output,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { EventEmitter } from '@angular/core';\r\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\r\nimport {\r\n getDocxToHtml,\r\n getViewerDetails,\r\n googleCheckSubscription,\r\n iframeIsLoaded,\r\n isLocalFile,\r\n replaceLocalUrl,\r\n IFrameReloader,\r\n} from 'docviewhelper';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport type viewerType = 'google' | 'office' | 'mammoth' | 'pdf' | 'url';\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ngx-doc-viewer',\r\n templateUrl: 'document-viewer.component.html',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n .container {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n }\r\n .overlay-popout-google {\r\n width: 40px;\r\n height: 40px;\r\n right: 26px;\r\n top: 11.5px;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-popout-office {\r\n width: 100px;\r\n height: 20px;\r\n right: 0;\r\n bottom: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-full {\r\n width: 100%;\r\n height: 100%;\r\n right: 0;\r\n top: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n iframe {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class NgxDocViewerComponent\r\n implements OnChanges, OnDestroy, AfterViewInit\r\n{\r\n @Output() loaded: EventEmitter<void> = new EventEmitter();\r\n @Input() url = '';\r\n @Input() queryParams = '';\r\n @Input() viewerUrl = '';\r\n @Input() googleCheckInterval = 3000;\r\n @Input() googleMaxChecks = 5;\r\n @Input() disableContent: 'none' | 'all' | 'popout' | 'popout-hide' = 'none';\r\n @Input() googleCheckContentLoaded = true;\r\n @Input() viewer: viewerType = 'google';\r\n @Input() overrideLocalhost = '';\r\n @ViewChildren('iframe') iframes?: QueryList<ElementRef> = undefined;\r\n\r\n public fullUrl?: SafeResourceUrl = undefined;\r\n public externalViewer = false;\r\n public docHtml = '';\r\n public configuredViewer: viewerType = 'google';\r\n private checkIFrameSubscription?: IFrameReloader = undefined;\r\n private shouldCheckIframe = false;\r\n\r\n constructor(private domSanitizer: DomSanitizer, private ngZone: NgZone) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.shouldCheckIframe) {\r\n const iframe = this.iframes?.first?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.shouldCheckIframe = false;\r\n this.reloadIframe(iframe);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\r\n if (\r\n changes &&\r\n changes['viewer'] &&\r\n (changes['viewer'].isFirstChange ||\r\n changes['viewer'].currentValue !== changes['viewer'].previousValue)\r\n ) {\r\n if (\r\n this.viewer !== 'google' &&\r\n this.viewer !== 'office' &&\r\n this.viewer !== 'mammoth' &&\r\n this.viewer !== 'pdf' &&\r\n this.viewer !== 'url'\r\n ) {\r\n console.error(\r\n `Unsupported viewer: '${this.viewer}'. Supported viewers: google, office, mammoth and pdf`\r\n );\r\n }\r\n this.configuredViewer = this.viewer;\r\n }\r\n\r\n if (\r\n (changes['url'] &&\r\n changes['url'].currentValue !== changes['url'].previousValue) ||\r\n (changes['viewer'] &&\r\n changes['viewer'].currentValue !== changes['viewer'].previousValue) ||\r\n (changes['viewerUrl'] &&\r\n changes['viewerUrl'].currentValue !==\r\n changes['viewerUrl'].previousValue)\r\n ) {\r\n let viewerDetails = getViewerDetails(\r\n this.url,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n this.externalViewer = viewerDetails.externalViewer;\r\n if (\r\n viewerDetails.externalViewer &&\r\n this.overrideLocalhost &&\r\n isLocalFile(this.url)\r\n ) {\r\n const newUrl = replaceLocalUrl(this.url, this.overrideLocalhost);\r\n viewerDetails = getViewerDetails(\r\n newUrl,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n }\r\n this.docHtml = '';\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n if (!this.url) {\r\n this.fullUrl = undefined;\r\n } else if (\r\n viewerDetails.externalViewer ||\r\n this.configuredViewer === 'url' ||\r\n this.configuredViewer === 'pdf'\r\n ) {\r\n this.fullUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n viewerDetails.url\r\n );\r\n // see:\r\n // https://stackoverflow.com/questions/40414039/google-docs-viewer-returning-204-responses-no-longer-working-alternatives\r\n // hack to reload iframe if it's not loaded.\r\n // would maybe be better to use view.officeapps.live.com but seems not to work with sas token.\r\n if (\r\n this.configuredViewer === 'google' &&\r\n this.googleCheckContentLoaded\r\n ) {\r\n this.ngZone.runOutsideAngular(() => {\r\n // if it's not loaded after the googleIntervalCheck, then open load again.\r\n const iframe = this.iframes?.first\r\n ?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.reloadIframe(iframe);\r\n } else {\r\n this.shouldCheckIframe = true;\r\n }\r\n });\r\n }\r\n } else if (this.configuredViewer === 'mammoth') {\r\n this.docHtml = await getDocxToHtml(this.url);\r\n }\r\n }\r\n }\r\n\r\n private reloadIframe(iframe: HTMLIFrameElement) {\r\n this.checkIFrameSubscription = googleCheckSubscription();\r\n this.checkIFrameSubscription.subscribe(\r\n iframe,\r\n this.googleCheckInterval,\r\n this.googleMaxChecks\r\n );\r\n }\r\n\r\n iframeLoaded() {\r\n const iframe = this.iframes?.first?.nativeElement as HTMLIFrameElement;\r\n if (iframe && iframeIsLoaded(iframe)) {\r\n this.loaded.emit(undefined);\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n","import { NgxDocViewerComponent } from './document-viewer.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NgxDocViewerComponent],\r\n exports: [NgxDocViewerComponent],\r\n})\r\nexport class NgxDocViewerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAyEa,qBAAqB,CAAA;IAsBhC,WAAoB,CAAA,YAA0B,EAAU,MAAc,EAAA;QAAlD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAnB5D,QAAA,IAAA,CAAA,MAAM,GAAuB,IAAI,YAAY,EAAE,CAAC;QACjD,IAAG,CAAA,GAAA,GAAG,EAAE,CAAC;QACT,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QACjB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;QAC3B,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAc,CAAA,cAAA,GAA8C,MAAM,CAAC;QACnE,IAAwB,CAAA,wBAAA,GAAG,IAAI,CAAC;QAChC,IAAM,CAAA,MAAA,GAAe,QAAQ,CAAC;QAC9B,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QACR,IAAO,CAAA,OAAA,GAA2B,SAAS,CAAC;QAE7D,IAAO,CAAA,OAAA,GAAqB,SAAS,CAAC;QACtC,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACb,IAAgB,CAAA,gBAAA,GAAe,QAAQ,CAAC;QACvC,IAAuB,CAAA,uBAAA,GAAoB,SAAS,CAAC;QACrD,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;KAEwC;IAE1E,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,aAAkC,CAAC;AACvE,YAAA,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC3B,aAAA;AACF,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,YAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;AAC5C,SAAA;KACF;IAED,MAAM,WAAW,CAAC,OAAsB,EAAA;AACtC,QAAA,IACE,OAAO;YACP,OAAO,CAAC,QAAQ,CAAC;AACjB,aAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa;AAC9B,gBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,EACrE;AACA,YAAA,IACE,IAAI,CAAC,MAAM,KAAK,QAAQ;gBACxB,IAAI,CAAC,MAAM,KAAK,QAAQ;gBACxB,IAAI,CAAC,MAAM,KAAK,SAAS;gBACzB,IAAI,CAAC,MAAM,KAAK,KAAK;AACrB,gBAAA,IAAI,CAAC,MAAM,KAAK,KAAK,EACrB;gBACA,OAAO,CAAC,KAAK,CACX,CAAA,qBAAA,EAAwB,IAAI,CAAC,MAAM,CAAuD,qDAAA,CAAA,CAC3F,CAAC;AACH,aAAA;AACD,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;AACrC,SAAA;AAED,QAAA,IACE,CAAC,OAAO,CAAC,KAAK,CAAC;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa;aAC7D,OAAO,CAAC,QAAQ,CAAC;AAChB,gBAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;aACpE,OAAO,CAAC,WAAW,CAAC;AACnB,gBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,YAAY;AAC/B,oBAAA,OAAO,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,EACvC;YACA,IAAI,aAAa,GAAG,gBAAgB,CAClC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,CACf,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;YACnD,IACE,aAAa,CAAC,cAAc;AAC5B,gBAAA,IAAI,CAAC,iBAAiB;AACtB,gBAAA,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EACrB;AACA,gBAAA,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACjE,gBAAA,aAAa,GAAG,gBAAgB,CAC9B,MAAM,EACN,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,CACf,CAAC;AACH,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,gBAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;AAC5C,aAAA;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACb,gBAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;AAC1B,aAAA;iBAAM,IACL,aAAa,CAAC,cAAc;gBAC5B,IAAI,CAAC,gBAAgB,KAAK,KAAK;AAC/B,gBAAA,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAC/B;AACA,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAC7D,aAAa,CAAC,GAAG,CAClB,CAAC;;;;;AAKF,gBAAA,IACE,IAAI,CAAC,gBAAgB,KAAK,QAAQ;oBAClC,IAAI,CAAC,wBAAwB,EAC7B;AACA,oBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;;AAEjC,wBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK;AAChC,8BAAE,aAAkC,CAAC;AACvC,wBAAA,IAAI,MAAM,EAAE;AACV,4BAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC3B,yBAAA;AAAM,6BAAA;AACL,4BAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,yBAAA;AACH,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBAC9C,IAAI,CAAC,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9C,aAAA;AACF,SAAA;KACF;AAEO,IAAA,YAAY,CAAC,MAAyB,EAAA;AAC5C,QAAA,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CACpC,MAAM,EACN,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,CACrB,CAAC;KACH;IAED,YAAY,GAAA;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,aAAkC,CAAC;AACvE,QAAA,IAAI,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,gBAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;AAC5C,aAAA;AACF,SAAA;KACF;;kHAlJU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,8eCzElC,khDAiDA,EAAA,MAAA,EAAA,CAAA,8XAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDwBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA7CjC,SAAS;+BAEE,gBAAgB,EAAA,QAAA,EAAA,khDAAA,EAAA,MAAA,EAAA,CAAA,8XAAA,CAAA,EAAA,CAAA;wHA8ChB,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACE,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACkB,OAAO,EAAA,CAAA;sBAA9B,YAAY;uBAAC,QAAQ,CAAA;;;ME7EX,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAHd,YAAA,EAAA,CAAA,qBAAqB,CAD1B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEpB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAJnB,YAAY,CAAA,EAAA,CAAA,CAAA;2FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-doc-viewer.mjs","sources":["../../../../packages/ngx-doc-viewer/src/lib/document-viewer.component.ts","../../../../packages/ngx-doc-viewer/src/lib/document-viewer.component.html","../../../../packages/ngx-doc-viewer/src/lib/document-viewer.module.ts","../../../../packages/ngx-doc-viewer/src/ngx-doc-viewer.ts"],"sourcesContent":["import {\r\n Component,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n Output,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { EventEmitter } from '@angular/core';\r\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\r\nimport {\r\n getDocxToHtml,\r\n getViewerDetails,\r\n googleCheckSubscription,\r\n iframeIsLoaded,\r\n isLocalFile,\r\n replaceLocalUrl,\r\n IFrameReloader,\r\n} from 'docviewhelper';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport type viewerType = 'google' | 'office' | 'mammoth' | 'pdf' | 'url';\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ngx-doc-viewer',\r\n templateUrl: 'document-viewer.component.html',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n .container {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n }\r\n .overlay-popout-google {\r\n width: 40px;\r\n height: 40px;\r\n right: 26px;\r\n top: 11.5px;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-popout-office {\r\n width: 100px;\r\n height: 20px;\r\n right: 0;\r\n bottom: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-full {\r\n width: 100%;\r\n height: 100%;\r\n right: 0;\r\n top: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n iframe {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class NgxDocViewerComponent\r\n implements OnChanges, OnDestroy, AfterViewInit\r\n{\r\n @Output() loaded: EventEmitter<void> = new EventEmitter();\r\n @Input() url = '';\r\n @Input() queryParams = '';\r\n @Input() viewerUrl = '';\r\n @Input() googleCheckInterval = 3000;\r\n @Input() googleMaxChecks = 5;\r\n @Input() disableContent: 'none' | 'all' | 'popout' | 'popout-hide' = 'none';\r\n @Input() googleCheckContentLoaded = true;\r\n @Input() viewer: viewerType = 'google';\r\n @Input() overrideLocalhost = '';\r\n @ViewChildren('iframe') iframes?: QueryList<ElementRef> = undefined;\r\n\r\n public fullUrl?: SafeResourceUrl = undefined;\r\n public externalViewer = false;\r\n public docHtml = '';\r\n public configuredViewer: viewerType = 'google';\r\n private checkIFrameSubscription?: IFrameReloader = undefined;\r\n private shouldCheckIframe = false;\r\n\r\n constructor(private domSanitizer: DomSanitizer, private ngZone: NgZone) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.shouldCheckIframe) {\r\n const iframe = this.iframes?.first?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.shouldCheckIframe = false;\r\n this.reloadIframe(iframe);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\r\n if (\r\n changes &&\r\n changes['viewer'] &&\r\n (changes['viewer'].isFirstChange ||\r\n changes['viewer'].currentValue !== changes['viewer'].previousValue)\r\n ) {\r\n if (\r\n this.viewer !== 'google' &&\r\n this.viewer !== 'office' &&\r\n this.viewer !== 'mammoth' &&\r\n this.viewer !== 'pdf' &&\r\n this.viewer !== 'url'\r\n ) {\r\n console.error(\r\n `Unsupported viewer: '${this.viewer}'. Supported viewers: google, office, mammoth and pdf`\r\n );\r\n }\r\n this.configuredViewer = this.viewer;\r\n }\r\n\r\n if (\r\n (changes['url'] &&\r\n changes['url'].currentValue !== changes['url'].previousValue) ||\r\n (changes['viewer'] &&\r\n changes['viewer'].currentValue !== changes['viewer'].previousValue) ||\r\n (changes['viewerUrl'] &&\r\n changes['viewerUrl'].currentValue !==\r\n changes['viewerUrl'].previousValue)\r\n ) {\r\n let viewerDetails = getViewerDetails(\r\n this.url,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n this.externalViewer = viewerDetails.externalViewer;\r\n if (\r\n viewerDetails.externalViewer &&\r\n this.overrideLocalhost &&\r\n isLocalFile(this.url)\r\n ) {\r\n const newUrl = replaceLocalUrl(this.url, this.overrideLocalhost);\r\n viewerDetails = getViewerDetails(\r\n newUrl,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n }\r\n this.docHtml = '';\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n if (!this.url) {\r\n this.fullUrl = undefined;\r\n } else if (\r\n viewerDetails.externalViewer ||\r\n this.configuredViewer === 'url' ||\r\n this.configuredViewer === 'pdf'\r\n ) {\r\n this.fullUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n viewerDetails.url\r\n );\r\n // see:\r\n // https://stackoverflow.com/questions/40414039/google-docs-viewer-returning-204-responses-no-longer-working-alternatives\r\n // hack to reload iframe if it's not loaded.\r\n // would maybe be better to use view.officeapps.live.com but seems not to work with sas token.\r\n if (\r\n this.configuredViewer === 'google' &&\r\n this.googleCheckContentLoaded\r\n ) {\r\n this.ngZone.runOutsideAngular(() => {\r\n // if it's not loaded after the googleIntervalCheck, then open load again.\r\n const iframe = this.iframes?.first\r\n ?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.reloadIframe(iframe);\r\n } else {\r\n this.shouldCheckIframe = true;\r\n }\r\n });\r\n }\r\n } else if (this.configuredViewer === 'mammoth') {\r\n this.docHtml = await getDocxToHtml(this.url);\r\n }\r\n }\r\n }\r\n\r\n private reloadIframe(iframe: HTMLIFrameElement) {\r\n this.checkIFrameSubscription = googleCheckSubscription();\r\n this.checkIFrameSubscription.subscribe(\r\n iframe,\r\n this.googleCheckInterval,\r\n this.googleMaxChecks\r\n );\r\n }\r\n\r\n iframeLoaded() {\r\n const iframe = this.iframes?.first?.nativeElement as HTMLIFrameElement;\r\n if (iframe && iframeIsLoaded(iframe)) {\r\n this.loaded.emit(undefined);\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"!externalViewer\">\r\n <div *ngIf=\"configuredViewer !== 'pdf'\" [innerHtml]=\"docHtml\"></div>\r\n <object\r\n *ngIf=\"fullUrl && configuredViewer === 'pdf'\"\r\n [data]=\"fullUrl\"\r\n type=\"application/pdf\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n >\r\n <p>\r\n Your browser does not support PDFs.\r\n <a [href]=\"fullUrl\">Download the PDF</a>.\r\n </p>\r\n </object>\r\n</ng-container>\r\n<ng-container *ngIf=\"externalViewer\">\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl && disableContent === 'none'\"\r\n #iframe\r\n id=\"iframe-doc-viewer\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n <div class=\"container\" *ngIf=\"disableContent !== 'none'\">\r\n <div\r\n [class.overlay-full]=\"disableContent === 'all'\"\r\n [class.overlay-popout-google]=\"\r\n configuredViewer === 'google' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [class.overlay-popout-office]=\"\r\n configuredViewer === 'office' &&\r\n (disableContent === 'popout' || disableContent === 'popout-hide')\r\n \"\r\n [style.background-color]=\"\r\n disableContent === 'popout-hide' ? '#fff' : 'transparent'\r\n \"\r\n ></div>\r\n <iframe\r\n (load)=\"iframeLoaded()\"\r\n *ngIf=\"fullUrl\"\r\n #iframe\r\n id=\"iframe\"\r\n frameBorder=\"0\"\r\n [src]=\"fullUrl\"\r\n ></iframe>\r\n </div>\r\n</ng-container>\r\n","import { NgxDocViewerComponent } from './document-viewer.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NgxDocViewerComponent],\r\n exports: [NgxDocViewerComponent],\r\n})\r\nexport class NgxDocViewerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -30,5 +30,5 @@ export declare class NgxDocViewerComponent implements OnChanges, OnDestroy, Afte
30
30
  private reloadIframe;
31
31
  iframeLoaded(): void;
32
32
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxDocViewerComponent, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxDocViewerComponent, "ngx-doc-viewer", never, { "url": "url"; "queryParams": "queryParams"; "viewerUrl": "viewerUrl"; "googleCheckInterval": "googleCheckInterval"; "googleMaxChecks": "googleMaxChecks"; "disableContent": "disableContent"; "googleCheckContentLoaded": "googleCheckContentLoaded"; "viewer": "viewer"; "overrideLocalhost": "overrideLocalhost"; }, { "loaded": "loaded"; }, never, never, false>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxDocViewerComponent, "ngx-doc-viewer", never, { "url": "url"; "queryParams": "queryParams"; "viewerUrl": "viewerUrl"; "googleCheckInterval": "googleCheckInterval"; "googleMaxChecks": "googleMaxChecks"; "disableContent": "disableContent"; "googleCheckContentLoaded": "googleCheckContentLoaded"; "viewer": "viewer"; "overrideLocalhost": "overrideLocalhost"; }, { "loaded": "loaded"; }, never, never>;
34
34
  }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="ngx-doc-viewer" />
5
+ export * from './index';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-doc-viewer",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "Angular document viewer.",
@@ -34,13 +34,13 @@
34
34
  "esm2020": "esm2020/ngx-doc-viewer.mjs",
35
35
  "fesm2020": "fesm2020/ngx-doc-viewer.mjs",
36
36
  "fesm2015": "fesm2015/ngx-doc-viewer.mjs",
37
- "typings": "index.d.ts",
37
+ "typings": "ngx-doc-viewer.d.ts",
38
38
  "exports": {
39
39
  "./package.json": {
40
40
  "default": "./package.json"
41
41
  },
42
42
  ".": {
43
- "types": "./index.d.ts",
43
+ "types": "./ngx-doc-viewer.d.ts",
44
44
  "esm2020": "./esm2020/ngx-doc-viewer.mjs",
45
45
  "es2020": "./fesm2020/ngx-doc-viewer.mjs",
46
46
  "es2015": "./fesm2015/ngx-doc-viewer.mjs",