ngx-extended-pdf-viewer
Version:
Embedding PDF files in your Angular application. Highly configurable viewer including the toolbar, sidebar, and all the features you're used to.
112 lines • 10.4 kB
JavaScript
import { CSP_NONCE, Inject, Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class PdfCspPolicyService {
sanitizer = undefined; // TrustedTypePolicy;
csp_nonce;
constructor() { }
init() {
if (typeof window === 'undefined') {
// server-side rendering
return;
}
if (this.sanitizer) {
// already initialized
return;
}
const ttWindow = globalThis;
if (ttWindow.trustedTypes) {
this.sanitizer = ttWindow.trustedTypes.createPolicy('pdf-viewer', {
createHTML: (input) => input,
createScriptURL: (input) => input,
});
}
}
addTrustedCSS(styles, css) {
if (typeof window === 'undefined') {
// server-side rendering
return;
}
this.init();
if (this.sanitizer) {
styles.textContent = this.sanitizer.createHTML(css);
}
else {
styles.textContent = css;
}
}
addTrustedJavaScript(scripts, css) {
if (typeof window === 'undefined') {
// server-side rendering
return;
}
this.init();
if (this.sanitizer) {
scripts.src = this.sanitizer.createScriptURL(css);
}
else {
scripts.src = css;
}
}
sanitizeHTML(html) {
if (typeof window === 'undefined') {
// server-side rendering
return '';
}
this.init();
if (this.sanitizer) {
return this.sanitizer.createHTML(html);
}
else {
return html;
}
}
addTrustedHTML(element, html) {
if (typeof window === 'undefined') {
// server-side rendering
return;
}
this.init();
if (this.sanitizer) {
element.innerHTML = this.sanitizer.createHTML(html);
}
else {
element.innerHTML = html;
}
}
createTrustedHTML(html) {
if (typeof window === 'undefined') {
// server-side rendering
return;
}
this.init();
if (this.sanitizer) {
return this.sanitizer.createHTML(html);
}
else {
return html;
}
}
generateTrustedURL(sourcePath) {
if (typeof window === 'undefined') {
// server-side rendering
return;
}
this.init();
if (this.sanitizer) {
return this.sanitizer.createScriptURL(sourcePath);
}
return sourcePath;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfCspPolicyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfCspPolicyService, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfCspPolicyService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: () => [], propDecorators: { csp_nonce: [{
type: Inject,
args: [CSP_NONCE]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWNzcC1wb2xpY3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvcGRmLWNzcC1wb2xpY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTlELE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsU0FBUyxHQUFRLFNBQVMsQ0FBQyxDQUFDLHFCQUFxQjtJQUU5QixTQUFTLENBQTRCO0lBRWhFLGdCQUFlLENBQUM7SUFFVCxJQUFJO1FBQ1QsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDakMsd0JBQXdCO1lBQ3hCLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixzQkFBc0I7WUFDdEIsT0FBTztTQUNSO1FBQ0QsTUFBTSxRQUFRLEdBQUcsVUFBMkMsQ0FBQztRQUM3RCxJQUFJLFFBQVEsQ0FBQyxZQUFZLEVBQUU7WUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUU7Z0JBQ2hFLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztnQkFDNUIsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLO2FBQ2xDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBQyxNQUFtQixFQUFFLEdBQVc7UUFDbkQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDakMsd0JBQXdCO1lBQ3hCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBbUIsQ0FBQztTQUN2RTthQUFNO1lBQ0wsTUFBTSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsT0FBMEIsRUFBRSxHQUFXO1FBQ2pFLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO1lBQ2pDLHdCQUF3QjtZQUN4QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQW1CLENBQUM7U0FDckU7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZO1FBQzlCLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO1lBQ2pDLHdCQUF3QjtZQUN4QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFtQixDQUFDO1NBQzFEO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUNNLGNBQWMsQ0FBQyxPQUFvQixFQUFFLElBQVk7UUFDdEQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDakMsd0JBQXdCO1lBQ3hCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBbUIsQ0FBQztTQUN2RTthQUFNO1lBQ0wsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU0saUJBQWlCLENBQUMsSUFBWTtRQUNuQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUNqQyx3QkFBd0I7WUFDeEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFtQixDQUFDO1NBQzFEO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFVBQVU7UUFDbEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDakMsd0JBQXdCO1lBQ3hCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzt3R0FuR1UsbUJBQW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjt3REFJNEIsU0FBUztzQkFBbkMsTUFBTTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1NQX05PTkNFLCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRydXN0ZWRUeXBlc1dpbmRvdyB9IGZyb20gJ3RydXN0ZWQtdHlwZXMvbGliJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBkZkNzcFBvbGljeVNlcnZpY2Uge1xuICBwcml2YXRlIHNhbml0aXplcjogYW55ID0gdW5kZWZpbmVkOyAvLyBUcnVzdGVkVHlwZVBvbGljeTtcblxuICBASW5qZWN0KENTUF9OT05DRSkgcHJpdmF0ZSBjc3Bfbm9uY2U6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBpbml0KCkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gc2VydmVyLXNpZGUgcmVuZGVyaW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnNhbml0aXplcikge1xuICAgICAgLy8gYWxyZWFkeSBpbml0aWFsaXplZFxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0dFdpbmRvdyA9IGdsb2JhbFRoaXMgYXMgdW5rbm93biBhcyBUcnVzdGVkVHlwZXNXaW5kb3c7XG4gICAgaWYgKHR0V2luZG93LnRydXN0ZWRUeXBlcykge1xuICAgICAgdGhpcy5zYW5pdGl6ZXIgPSB0dFdpbmRvdy50cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KCdwZGYtdmlld2VyJywge1xuICAgICAgICBjcmVhdGVIVE1MOiAoaW5wdXQpID0+IGlucHV0LFxuICAgICAgICBjcmVhdGVTY3JpcHRVUkw6IChpbnB1dCkgPT4gaW5wdXQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkVHJ1c3RlZENTUyhzdHlsZXM6IEhUTUxFbGVtZW50LCBjc3M6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gc2VydmVyLXNpZGUgcmVuZGVyaW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdCgpO1xuICAgIGlmICh0aGlzLnNhbml0aXplcikge1xuICAgICAgc3R5bGVzLnRleHRDb250ZW50ID0gdGhpcy5zYW5pdGl6ZXIuY3JlYXRlSFRNTChjc3MpIGFzIHVua25vd24gYXMgYW55O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZXMudGV4dENvbnRlbnQgPSBjc3M7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZFRydXN0ZWRKYXZhU2NyaXB0KHNjcmlwdHM6IEhUTUxTY3JpcHRFbGVtZW50LCBjc3M6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gc2VydmVyLXNpZGUgcmVuZGVyaW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdCgpO1xuICAgIGlmICh0aGlzLnNhbml0aXplcikge1xuICAgICAgc2NyaXB0cy5zcmMgPSB0aGlzLnNhbml0aXplci5jcmVhdGVTY3JpcHRVUkwoY3NzKSBhcyB1bmtub3duIGFzIGFueTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2NyaXB0cy5zcmMgPSBjc3M7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNhbml0aXplSFRNTChodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gc2VydmVyLXNpZGUgcmVuZGVyaW5nXG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHRoaXMuaW5pdCgpO1xuICAgIGlmICh0aGlzLnNhbml0aXplcikge1xuICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmNyZWF0ZUhUTUwoaHRtbCkgYXMgdW5rbm93biBhcyBhbnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBodG1sO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgYWRkVHJ1c3RlZEhUTUwoZWxlbWVudDogSFRNTEVsZW1lbnQsIGh0bWw6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gc2VydmVyLXNpZGUgcmVuZGVyaW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdCgpO1xuICAgIGlmICh0aGlzLnNhbml0aXplcikge1xuICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnNhbml0aXplci5jcmVhdGVIVE1MKGh0bWwpIGFzIHVua25vd24gYXMgYW55O1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50LmlubmVySFRNTCA9IGh0bWw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNyZWF0ZVRydXN0ZWRIVE1MKGh0bWw6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gc2VydmVyLXNpZGUgcmVuZGVyaW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdCgpO1xuICAgIGlmICh0aGlzLnNhbml0aXplcikge1xuICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmNyZWF0ZUhUTUwoaHRtbCkgYXMgdW5rbm93biBhcyBhbnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBodG1sO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZVRydXN0ZWRVUkwoc291cmNlUGF0aCkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gc2VydmVyLXNpZGUgcmVuZGVyaW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdCgpO1xuICAgIGlmICh0aGlzLnNhbml0aXplcikge1xuICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmNyZWF0ZVNjcmlwdFVSTChzb3VyY2VQYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNvdXJjZVBhdGg7XG4gIH1cbn1cbiJdfQ==