@alauda-fe/common
Version:
Alauda frontend team common codes.
36 lines • 4.13 kB
JavaScript
import { Pipe, SecurityContext } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { sanitize } from 'dompurify';
import * as i0 from "@angular/core";
import * as i1 from "@angular/platform-browser";
export class SanitizePipe {
constructor(sanitizer) {
this.sanitizer = sanitizer;
}
transform(value, type = 'html') {
switch (type) {
case 'html': {
return this.sanitizer.bypassSecurityTrustHtml(sanitize(value ?? ''));
}
case 'url': {
return this.sanitizer.sanitize(SecurityContext.URL, value ?? '');
}
case 'style': {
return this.sanitizer.sanitize(SecurityContext.STYLE, value ?? '');
}
default: {
throw new Error(`Invalid sanitize type specified: ${type}`);
}
}
}
static { this.ɵfac = function SanitizePipe_Factory(t) { return new (t || SanitizePipe)(i0.ɵɵdirectiveInject(i1.DomSanitizer, 16)); }; }
static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "aclSanitize", type: SanitizePipe, pure: true, standalone: true }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SanitizePipe, [{
type: Pipe,
args: [{
name: 'aclSanitize',
standalone: true,
}]
}], () => [{ type: i1.DomSanitizer }], null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuaXRpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3BpcGVzL3Nhbml0aXplLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFNckMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBNkIsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFHLENBQUM7SUFFeEQsU0FBUyxDQUNQLEtBQWEsRUFDYixPQUFpQyxNQUFNO1FBRXZDLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2RSxDQUFDO1lBQ0QsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbkUsQ0FBQztZQUNELEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzZFQXJCVSxZQUFZO3FGQUFaLFlBQVk7O2lGQUFaLFlBQVk7Y0FKeEIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxhQUFhO2dCQUNuQixVQUFVLEVBQUUsSUFBSTthQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIFNlY3VyaXR5Q29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgc2FuaXRpemUgfSBmcm9tICdkb21wdXJpZnknO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdhY2xTYW5pdGl6ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNhbml0aXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIHR5cGU6ICdodG1sJyB8ICd1cmwnIHwgJ3N0eWxlJyA9ICdodG1sJyxcbiAgKTogU2FmZUh0bWwgfCBzdHJpbmcgfCBudWxsIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2h0bWwnOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChzYW5pdGl6ZSh2YWx1ZSA/PyAnJykpO1xuICAgICAgfVxuICAgICAgY2FzZSAndXJsJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LlVSTCwgdmFsdWUgPz8gJycpO1xuICAgICAgfVxuICAgICAgY2FzZSAnc3R5bGUnOiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuU1RZTEUsIHZhbHVlID8/ICcnKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNhbml0aXplIHR5cGUgc3BlY2lmaWVkOiAke3R5cGV9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=