ngx-doc-viewer 2.1.2 → 2.1.3
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.
- package/esm2020/lib/document-viewer.component.mjs +5 -44
- package/esm2020/lib/document-viewer.module.mjs +5 -5
- package/fesm2015/ngx-doc-viewer.mjs +8 -47
- package/fesm2015/ngx-doc-viewer.mjs.map +1 -1
- package/fesm2020/ngx-doc-viewer.mjs +8 -47
- package/fesm2020/ngx-doc-viewer.mjs.map +1 -1
- package/lib/document-viewer.component.d.ts +1 -1
- package/package.json +3 -3
- package/ngx-doc-viewer.d.ts +0 -5
|
@@ -120,50 +120,11 @@ export class NgxDocViewerComponent {
|
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
|
-
NgxDocViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
124
|
-
NgxDocViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: [{
|
|
126
126
|
type: Component,
|
|
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" }]
|
|
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"] }]
|
|
167
128
|
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.NgZone }]; }, propDecorators: { loaded: [{
|
|
168
129
|
type: Output
|
|
169
130
|
}], url: [{
|
|
@@ -188,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
188
149
|
type: ViewChildren,
|
|
189
150
|
args: ['iframe']
|
|
190
151
|
}] } });
|
|
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=
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25neC1kb2Mtdmlld2VyL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25neC1kb2Mtdmlld2VyL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFJTixNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsOERBQThEO0FBQzlELE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsV0FBVyxFQUNYLGVBQWUsR0FFaEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFpRHZCLE1BQU0sT0FBTyxxQkFBcUI7SUFzQmhDLFlBQW9CLFlBQTBCLEVBQVUsTUFBYztRQUFsRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFuQjVELFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUMzQixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixtQkFBYyxHQUE4QyxNQUFNLENBQUM7UUFDbkUsNkJBQXdCLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLFdBQU0sR0FBZSxRQUFR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SW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQG5yd2wvbngvZW5mb3JjZS1tb2R1bGUtYm91bmRhcmllc1xyXG5pbXBvcnQge1xyXG4gIGdldERvY3hUb0h0bWwsXHJcbiAgZ2V0Vmlld2VyRGV0YWlscyxcclxuICBnb29nbGVDaGVja1N1YnNjcmlwdGlvbixcclxuICBpZnJhbWVJc0xvYWRlZCxcclxuICBpc0xvY2FsRmlsZSxcclxuICByZXBsYWNlTG9jYWxVcmwsXHJcbiAgSUZyYW1lUmVsb2FkZXIsXHJcbn0gZnJvbSAnZG9jdmlld2hlbHBlcic7XHJcblxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbmV4cG9ydCB0eXBlIHZpZXdlclR5cGUgPSAnZ29vZ2xlJyB8ICdvZmZpY2UnIHwgJ21hbW1vdGgnIHwgJ3BkZicgfCAndXJsJztcclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ25neC1kb2Mtdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJ2RvY3VtZW50LXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICBgXHJcbiAgICAgIDpob3N0IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgICAuY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB9XHJcbiAgICAgIC5vdmVybGF5LXBvcG91dC1nb29nbGUge1xyXG4gICAgICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICByaWdodDogMjZweDtcclxuICAgICAgICB0b3A6IDExLjVweDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgei1pbmRleDogMTAwMDtcclxuICAgICAgfVxyXG4gICAgICAub3ZlcmxheS1wb3BvdXQtb2ZmaWNlIHtcclxuICAgICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgei1pbmRleDogMTAwMDtcclxuICAgICAgfVxyXG4gICAgICAub3ZlcmxheS1mdWxsIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmcmFtZSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICBgLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hEb2NWaWV3ZXJDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBAT3V0cHV0KCkgbG9hZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgdXJsID0gJyc7XHJcbiAgQElucHV0KCkgcXVlcnlQYXJhbXMgPSAnJztcclxuICBASW5wdXQoKSB2aWV3ZXJVcmwgPSAnJztcclxuICBASW5wdXQoKSBnb29nbGVDaGVja0ludGVydmFsID0gMzAwMDtcclxuICBASW5wdXQoKSBnb29nbGVNYXhDaGVja3MgPSA1O1xyXG4gIEBJbnB1dCgpIGRpc2FibGVDb250ZW50OiAnbm9uZScgfCAnYWxsJyB8ICdwb3BvdXQnIHwgJ3BvcG91dC1oaWRlJyA9ICdub25lJztcclxuICBASW5wdXQoKSBnb29nbGVDaGVja0NvbnRlbnRMb2FkZWQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHZpZXdlcjogdmlld2VyVHlwZSA9ICdnb29nbGUnO1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlTG9jYWxob3N0ID0gJyc7XHJcbiAgQFZpZXdDaGlsZHJlbignaWZyYW1lJykgaWZyYW1lcz86IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPiA9IHVuZGVmaW5lZDtcclxuXHJcbiAgcHVibGljIGZ1bGxVcmw/OiBTYWZlUmVzb3VyY2VVcmwgPSB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGV4dGVybmFsVmlld2VyID0gZmFsc2U7XHJcbiAgcHVibGljIGRvY0h0bWwgPSAnJztcclxuICBwdWJsaWMgY29uZmlndXJlZFZpZXdlcjogdmlld2VyVHlwZSA9ICdnb29nbGUnO1xyXG4gIHByaXZhdGUgY2hlY2tJRnJhbWVTdWJzY3JpcHRpb24/OiBJRnJhbWVSZWxvYWRlciA9IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHNob3VsZENoZWNrSWZyYW1lID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNob3VsZENoZWNrSWZyYW1lKSB7XHJcbiAgICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuaWZyYW1lcz8uZmlyc3Q/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElGcmFtZUVsZW1lbnQ7XHJcbiAgICAgIGlmIChpZnJhbWUpIHtcclxuICAgICAgICB0aGlzLnNob3VsZENoZWNrSWZyYW1lID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZWxvYWRJZnJhbWUoaWZyYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jaGVja0lGcmFtZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGNoYW5nZXMgJiZcclxuICAgICAgY2hhbmdlc1sndmlld2VyJ10gJiZcclxuICAgICAgKGNoYW5nZXNbJ3ZpZXdlciddLmlzRmlyc3RDaGFuZ2UgfHxcclxuICAgICAgICBjaGFuZ2VzWyd2aWV3ZXInXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ3ZpZXdlciddLnByZXZpb3VzVmFsdWUpXHJcbiAgICApIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMudmlld2VyICE9PSAnZ29vZ2xlJyAmJlxyXG4gICAgICAgIHRoaXMudmlld2VyICE9PSAnb2ZmaWNlJyAmJlxyXG4gICAgICAgIHRoaXMudmlld2VyICE9PSAnbWFtbW90aCcgJiZcclxuICAgICAgICB0aGlzLnZpZXdlciAhPT0gJ3BkZicgJiZcclxuICAgICAgICB0aGlzLnZpZXdlciAhPT0gJ3VybCdcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgIGBVbnN1cHBvcnRlZCB2aWV3ZXI6ICcke3RoaXMudmlld2VyfScuIFN1cHBvcnRlZCB2aWV3ZXJzOiBnb29nbGUsIG9mZmljZSwgbWFtbW90aCBhbmQgcGRmYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWd1cmVkVmlld2VyID0gdGhpcy52aWV3ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAoY2hhbmdlc1sndXJsJ10gJiZcclxuICAgICAgICBjaGFuZ2VzWyd1cmwnXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ3VybCddLnByZXZpb3VzVmFsdWUpIHx8XHJcbiAgICAgIChjaGFuZ2VzWyd2aWV3ZXInXSAmJlxyXG4gICAgICAgIGNoYW5nZXNbJ3ZpZXdlciddLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1sndmlld2VyJ10ucHJldmlvdXNWYWx1ZSkgfHxcclxuICAgICAgKGNoYW5nZXNbJ3ZpZXdlclVybCddICYmXHJcbiAgICAgICAgY2hhbmdlc1sndmlld2VyVXJsJ10uY3VycmVudFZhbHVlICE9PVxyXG4gICAgICAgICAgY2hhbmdlc1sndmlld2VyVXJsJ10ucHJldmlvdXNWYWx1ZSlcclxuICAgICkge1xyXG4gICAgICBsZXQgdmlld2VyRGV0YWlscyA9IGdldFZpZXdlckRldGFpbHMoXHJcbiAgICAgICAgdGhpcy51cmwsXHJcbiAgICAgICAgdGhpcy5jb25maWd1cmVkVmlld2VyLFxyXG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXMsXHJcbiAgICAgICAgdGhpcy52aWV3ZXJVcmxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5leHRlcm5hbFZpZXdlciA9IHZpZXdlckRldGFpbHMuZXh0ZXJuYWxWaWV3ZXI7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB2aWV3ZXJEZXRhaWxzLmV4dGVybmFsVmlld2VyICYmXHJcbiAgICAgICAgdGhpcy5vdmVycmlkZUxvY2FsaG9zdCAmJlxyXG4gICAgICAgIGlzTG9jYWxGaWxlKHRoaXMudXJsKVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBuZXdVcmwgPSByZXBsYWNlTG9jYWxVcmwodGhpcy51cmwsIHRoaXMub3ZlcnJpZGVMb2NhbGhvc3QpO1xyXG4gICAgICAgIHZpZXdlckRldGFpbHMgPSBnZXRWaWV3ZXJEZXRhaWxzKFxyXG4gICAgICAgICAgbmV3VXJsLFxyXG4gICAgICAgICAgdGhpcy5jb25maWd1cmVkVmlld2VyLFxyXG4gICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcyxcclxuICAgICAgICAgIHRoaXMudmlld2VyVXJsXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRvY0h0bWwgPSAnJztcclxuICAgICAgaWYgKHRoaXMuY2hlY2tJRnJhbWVTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnVybCkge1xyXG4gICAgICAgIHRoaXMuZnVsbFVybCA9IHVuZGVmaW5lZDtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB2aWV3ZXJEZXRhaWxzLmV4dGVybmFsVmlld2VyIHx8XHJcbiAgICAgICAgdGhpcy5jb25maWd1cmVkVmlld2VyID09PSAndXJsJyB8fFxyXG4gICAgICAgIHRoaXMuY29uZmlndXJlZFZpZXdlciA9PT0gJ3BkZidcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5mdWxsVXJsID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFxyXG4gICAgICAgICAgdmlld2VyRGV0YWlscy51cmxcclxuICAgICAgICApO1xyXG4gICAgICAgIC8vIHNlZTpcclxuICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MDQxNDAzOS9nb29nbGUtZG9jcy12aWV3ZXItcmV0dXJuaW5nLTIwNC1yZXNwb25zZXMtbm8tbG9uZ2VyLXdvcmtpbmctYWx0ZXJuYXRpdmVzXHJcbiAgICAgICAgLy8gaGFjayB0byByZWxvYWQgaWZyYW1lIGlmIGl0J3Mgbm90IGxvYWRlZC5cclxuICAgICAgICAvLyB3b3VsZCBtYXliZSBiZSBiZXR0ZXIgdG8gdXNlIHZpZXcub2ZmaWNlYXBwcy5saXZlLmNvbSBidXQgc2VlbXMgbm90IHRvIHdvcmsgd2l0aCBzYXMgdG9rZW4uXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5jb25maWd1cmVkVmlld2VyID09PSAnZ29vZ2xlJyAmJlxyXG4gICAgICAgICAgdGhpcy5nb29nbGVDaGVja0NvbnRlbnRMb2FkZWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgLy8gaWYgaXQncyBub3QgbG9hZGVkIGFmdGVyIHRoZSBnb29nbGVJbnRlcnZhbENoZWNrLCB0aGVuIG9wZW4gbG9hZCBhZ2Fpbi5cclxuICAgICAgICAgICAgY29uc3QgaWZyYW1lID0gdGhpcy5pZnJhbWVzPy5maXJzdFxyXG4gICAgICAgICAgICAgID8ubmF0aXZlRWxlbWVudCBhcyBIVE1MSUZyYW1lRWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKGlmcmFtZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVsb2FkSWZyYW1lKGlmcmFtZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG91bGRDaGVja0lmcmFtZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZ3VyZWRWaWV3ZXIgPT09ICdtYW1tb3RoJykge1xyXG4gICAgICAgIHRoaXMuZG9jSHRtbCA9IGF3YWl0IGdldERvY3hUb0h0bWwodGhpcy51cmwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbG9hZElmcmFtZShpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50KSB7XHJcbiAgICB0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uID0gZ29vZ2xlQ2hlY2tTdWJzY3JpcHRpb24oKTtcclxuICAgIHRoaXMuY2hlY2tJRnJhbWVTdWJzY3JpcHRpb24uc3Vic2NyaWJlKFxyXG4gICAgICBpZnJhbWUsXHJcbiAgICAgIHRoaXMuZ29vZ2xlQ2hlY2tJbnRlcnZhbCxcclxuICAgICAgdGhpcy5nb29nbGVNYXhDaGVja3NcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpZnJhbWVMb2FkZWQoKSB7XHJcbiAgICBjb25zdCBpZnJhbWUgPSB0aGlzLmlmcmFtZXM/LmZpcnN0Py5uYXRpdmVFbGVtZW50IGFzIEhUTUxJRnJhbWVFbGVtZW50O1xyXG4gICAgaWYgKGlmcmFtZSAmJiBpZnJhbWVJc0xvYWRlZChpZnJhbWUpKSB7XHJcbiAgICAgIHRoaXMubG9hZGVkLmVtaXQodW5kZWZpbmVkKTtcclxuICAgICAgaWYgKHRoaXMuY2hlY2tJRnJhbWVTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLmNoZWNrSUZyYW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFleHRlcm5hbFZpZXdlclwiPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWd1cmVkVmlld2VyICE9PSAncGRmJ1wiIFtpbm5lckh0bWxdPVwiZG9jSHRtbFwiPjwvZGl2PlxyXG4gIDxvYmplY3RcclxuICAgICpuZ0lmPVwiZnVsbFVybCAmJiBjb25maWd1cmVkVmlld2VyID09PSAncGRmJ1wiXHJcbiAgICBbZGF0YV09XCJmdWxsVXJsXCJcclxuICAgIHR5cGU9XCJhcHBsaWNhdGlvbi9wZGZcIlxyXG4gICAgd2lkdGg9XCIxMDAlXCJcclxuICAgIGhlaWdodD1cIjEwMCVcIlxyXG4gID5cclxuICAgIDxwPlxyXG4gICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBQREZzLlxyXG4gICAgICA8YSBbaHJlZl09XCJmdWxsVXJsXCI+RG93bmxvYWQgdGhlIFBERjwvYT4uXHJcbiAgICA8L3A+XHJcbiAgPC9vYmplY3Q+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiZXh0ZXJuYWxWaWV3ZXJcIj5cclxuICA8aWZyYW1lXHJcbiAgICAobG9hZCk9XCJpZnJhbWVMb2FkZWQoKVwiXHJcbiAgICAqbmdJZj1cImZ1bGxVcmwgJiYgZGlzYWJsZUNvbnRlbnQgPT09ICdub25lJ1wiXHJcbiAgICAjaWZyYW1lXHJcbiAgICBpZD1cImlmcmFtZS1kb2Mtdmlld2VyXCJcclxuICAgIGZyYW1lQm9yZGVyPVwiMFwiXHJcbiAgICBbc3JjXT1cImZ1bGxVcmxcIlxyXG4gID48L2lmcmFtZT5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgKm5nSWY9XCJkaXNhYmxlQ29udGVudCAhPT0gJ25vbmUnXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIFtjbGFzcy5vdmVybGF5LWZ1bGxdPVwiZGlzYWJsZUNvbnRlbnQgPT09ICdhbGwnXCJcclxuICAgICAgW2NsYXNzLm92ZXJsYXktcG9wb3V0LWdvb2dsZV09XCJcclxuICAgICAgICBjb25maWd1cmVkVmlld2VyID09PSAnZ29vZ2xlJyAmJlxyXG4gICAgICAgIChkaXNhYmxlQ29udGVudCA9PT0gJ3BvcG91dCcgfHwgZGlzYWJsZUNvbnRlbnQgPT09ICdwb3BvdXQtaGlkZScpXHJcbiAgICAgIFwiXHJcbiAgICAgIFtjbGFzcy5vdmVybGF5LXBvcG91dC1vZmZpY2VdPVwiXHJcbiAgICAgICAgY29uZmlndXJlZFZpZXdlciA9PT0gJ29mZmljZScgJiZcclxuICAgICAgICAoZGlzYWJsZUNvbnRlbnQgPT09ICdwb3BvdXQnIHx8IGRpc2FibGVDb250ZW50ID09PSAncG9wb3V0LWhpZGUnKVxyXG4gICAgICBcIlxyXG4gICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJcclxuICAgICAgICBkaXNhYmxlQ29udGVudCA9PT0gJ3BvcG91dC1oaWRlJyA/ICcjZmZmJyA6ICd0cmFuc3BhcmVudCdcclxuICAgICAgXCJcclxuICAgID48L2Rpdj5cclxuICAgIDxpZnJhbWVcclxuICAgICAgKGxvYWQpPVwiaWZyYW1lTG9hZGVkKClcIlxyXG4gICAgICAqbmdJZj1cImZ1bGxVcmxcIlxyXG4gICAgICAjaWZyYW1lXHJcbiAgICAgIGlkPVwiaWZyYW1lXCJcclxuICAgICAgZnJhbWVCb3JkZXI9XCIwXCJcclxuICAgICAgW3NyY109XCJmdWxsVXJsXCJcclxuICAgID48L2lmcmFtZT5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -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: "
|
|
8
|
-
NgxDocViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
9
|
-
NgxDocViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
imports: [CommonModule],
|
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
15
15
|
exports: [NgxDocViewerComponent],
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmlld2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25neC1kb2Mtdmlld2VyL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPL0MsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQUhkLHFCQUFxQixhQUQxQixZQUFZLGFBRVoscUJBQXFCO2dIQUVwQixrQkFBa0IsWUFKbkIsWUFBWTsyRkFJWCxrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmd4RG9jVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kb2N1bWVudC12aWV3ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZGVjbGFyYXRpb25zOiBbTmd4RG9jVmlld2VyQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbTmd4RG9jVmlld2VyQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neERvY1ZpZXdlck1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -125,50 +125,11 @@ class NgxDocViewerComponent {
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
-
NgxDocViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
129
|
-
NgxDocViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: [{
|
|
131
131
|
type: Component,
|
|
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" }]
|
|
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"] }]
|
|
172
133
|
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.NgZone }]; }, propDecorators: { loaded: [{
|
|
173
134
|
type: Output
|
|
174
135
|
}], url: [{
|
|
@@ -196,10 +157,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
196
157
|
|
|
197
158
|
class NgxDocViewerModule {
|
|
198
159
|
}
|
|
199
|
-
NgxDocViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
200
|
-
NgxDocViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
201
|
-
NgxDocViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
202
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: [{
|
|
203
164
|
type: NgModule,
|
|
204
165
|
args: [{
|
|
205
166
|
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,50 +120,11 @@ class NgxDocViewerComponent {
|
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
|
-
NgxDocViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
124
|
-
NgxDocViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: [{
|
|
126
126
|
type: Component,
|
|
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" }]
|
|
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"] }]
|
|
167
128
|
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.NgZone }]; }, propDecorators: { loaded: [{
|
|
168
129
|
type: Output
|
|
169
130
|
}], url: [{
|
|
@@ -191,10 +152,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
191
152
|
|
|
192
153
|
class NgxDocViewerModule {
|
|
193
154
|
}
|
|
194
|
-
NgxDocViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
195
|
-
NgxDocViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
196
|
-
NgxDocViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
197
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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: [{
|
|
198
159
|
type: NgModule,
|
|
199
160
|
args: [{
|
|
200
161
|
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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"}
|
|
@@ -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>;
|
|
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>;
|
|
34
34
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-doc-viewer",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.3",
|
|
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": "
|
|
37
|
+
"typings": "index.d.ts",
|
|
38
38
|
"exports": {
|
|
39
39
|
"./package.json": {
|
|
40
40
|
"default": "./package.json"
|
|
41
41
|
},
|
|
42
42
|
".": {
|
|
43
|
-
"types": "./
|
|
43
|
+
"types": "./index.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",
|