@taiga-ui/dompurify
Version:
Inclusive Angular API for DOMPurify
44 lines • 6.56 kB
JavaScript
import { inject, Pipe, SecurityContext } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { NgDompurifySanitizer } from './ng-dompurify.service';
import * as i0 from "@angular/core";
/**
* Pipe that transforms dirty content to clean via {@link NgDompurifySanitizer}
*/
class NgDompurifyPipe {
constructor() {
this.sanitizer = inject(NgDompurifySanitizer);
this.domSanitizer = inject(DomSanitizer);
}
transform(value, context = SecurityContext.HTML, config) {
return this.bypassSecurityTrust(context, this.sanitizer.sanitize(context, value, config));
}
bypassSecurityTrust(context, purifiedValue) {
switch (context) {
case SecurityContext.HTML:
return this.domSanitizer.bypassSecurityTrustHtml(purifiedValue);
case SecurityContext.RESOURCE_URL:
return this.domSanitizer.bypassSecurityTrustResourceUrl(purifiedValue);
case SecurityContext.SCRIPT:
return this.domSanitizer.bypassSecurityTrustScript(purifiedValue);
case SecurityContext.STYLE:
return this.domSanitizer.bypassSecurityTrustStyle(purifiedValue);
case SecurityContext.URL:
return this.domSanitizer.bypassSecurityTrustUrl(purifiedValue);
case SecurityContext.NONE:
default:
return null;
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgDompurifyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgDompurifyPipe, isStandalone: true, name: "dompurify" }); }
}
export { NgDompurifyPipe };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgDompurifyPipe, decorators: [{
type: Pipe,
args: [{
standalone: true,
name: 'dompurify',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9tcHVyaWZ5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9uZy1kb21wdXJpZnkvbGliL25nLWRvbXB1cmlmeS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7O0FBRzVEOztHQUVHO0FBQ0gsTUFJYSxlQUFlO0lBSjVCO1FBS3FCLGNBQVMsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztLQWlDeEQ7SUEvQlUsU0FBUyxDQUNaLEtBQTZDLEVBQzdDLFVBQTJCLGVBQWUsQ0FBQyxJQUFJLEVBQy9DLE1BQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUMzQixPQUFPLEVBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FDbEQsQ0FBQztJQUNOLENBQUM7SUFFTyxtQkFBbUIsQ0FDdkIsT0FBd0IsRUFDeEIsYUFBcUI7UUFFckIsUUFBUSxPQUFPLEVBQUU7WUFDYixLQUFLLGVBQWUsQ0FBQyxJQUFJO2dCQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEUsS0FBSyxlQUFlLENBQUMsWUFBWTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNFLEtBQUssZUFBZSxDQUFDLE1BQU07Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN0RSxLQUFLLGVBQWUsQ0FBQyxLQUFLO2dCQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDckUsS0FBSyxlQUFlLENBQUMsR0FBRztnQkFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25FLEtBQUssZUFBZSxDQUFDLElBQUksQ0FBQztZQUMxQjtnQkFDSSxPQUFPLElBQUksQ0FBQztTQUNuQjtJQUNMLENBQUM7K0dBbENRLGVBQWU7NkdBQWYsZUFBZTs7U0FBZixlQUFlOzRGQUFmLGVBQWU7a0JBSjNCLElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxXQUFXO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHNvbmFyanMvbm8tYW5ndWxhci1ieXBhc3Mtc2FuaXRpemF0aW9uICovXG5pbXBvcnQgdHlwZSB7UGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2luamVjdCwgUGlwZSwgU2VjdXJpdHlDb250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtTYWZlVmFsdWV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtEb21TYW5pdGl6ZXJ9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQge05nRG9tcHVyaWZ5U2FuaXRpemVyfSBmcm9tICcuL25nLWRvbXB1cmlmeS5zZXJ2aWNlJztcbmltcG9ydCB0eXBlIHtOZ0RvbXB1cmlmeUNvbmZpZ30gZnJvbSAnLi90eXBlcy9uZy1kb21wdXJpZnktY29uZmlnJztcblxuLyoqXG4gKiBQaXBlIHRoYXQgdHJhbnNmb3JtcyBkaXJ0eSBjb250ZW50IHRvIGNsZWFuIHZpYSB7QGxpbmsgTmdEb21wdXJpZnlTYW5pdGl6ZXJ9XG4gKi9cbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICdkb21wdXJpZnknLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0RvbXB1cmlmeVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplciA9IGluamVjdChOZ0RvbXB1cmlmeVNhbml0aXplcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkb21TYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0oXG4gICAgICAgIHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgY29udGV4dDogU2VjdXJpdHlDb250ZXh0ID0gU2VjdXJpdHlDb250ZXh0LkhUTUwsXG4gICAgICAgIGNvbmZpZz86IE5nRG9tcHVyaWZ5Q29uZmlnLFxuICAgICk6IFNhZmVWYWx1ZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5ieXBhc3NTZWN1cml0eVRydXN0KFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIHRoaXMuc2FuaXRpemVyLnNhbml0aXplKGNvbnRleHQsIHZhbHVlLCBjb25maWcpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnlwYXNzU2VjdXJpdHlUcnVzdChcbiAgICAgICAgY29udGV4dDogU2VjdXJpdHlDb250ZXh0LFxuICAgICAgICBwdXJpZmllZFZhbHVlOiBzdHJpbmcsXG4gICAgKTogU2FmZVZhbHVlIHwgbnVsbCB7XG4gICAgICAgIHN3aXRjaCAoY29udGV4dCkge1xuICAgICAgICAgICAgY2FzZSBTZWN1cml0eUNvbnRleHQuSFRNTDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocHVyaWZpZWRWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIFNlY3VyaXR5Q29udGV4dC5SRVNPVVJDRV9VUkw6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChwdXJpZmllZFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgU2VjdXJpdHlDb250ZXh0LlNDUklQVDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFNjcmlwdChwdXJpZmllZFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgU2VjdXJpdHlDb250ZXh0LlNUWUxFOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUocHVyaWZpZWRWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIFNlY3VyaXR5Q29udGV4dC5VUkw6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwocHVyaWZpZWRWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIFNlY3VyaXR5Q29udGV4dC5OT05FOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==