@alauda-fe/common
Version:
Alauda frontend team common codes.
49 lines • 5.59 kB
JavaScript
import { Pipe, isDevMode } from '@angular/core';
import { DomSanitizer, } from '@angular/platform-browser';
import * as i0 from "@angular/core";
import * as i1 from "@angular/platform-browser";
export class SafePipe {
constructor(sanitizer) {
this.sanitizer = sanitizer;
}
transform(value, type) {
if (!value) {
return value;
}
if (isDevMode()) {
console.warn(`Make sure the ${type} content is XSS safe${['html', 'url'].includes(type)
? ", otherwise replace with 'aclSanitize'"
: ''}`);
}
switch (type) {
case 'html': {
return this.sanitizer.bypassSecurityTrustHtml(value);
}
case 'style': {
return this.sanitizer.bypassSecurityTrustStyle(value);
}
case 'script': {
return this.sanitizer.bypassSecurityTrustScript(value);
}
case 'url': {
return this.sanitizer.bypassSecurityTrustUrl(value);
}
case 'resourceUrl': {
return this.sanitizer.bypassSecurityTrustResourceUrl(value);
}
default: {
throw new Error(`Invalid safe type specified: ${type}`);
}
}
}
static { this.ɵfac = function SafePipe_Factory(t) { return new (t || SafePipe)(i0.ɵɵdirectiveInject(i1.DomSanitizer, 16)); }; }
static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "aclSafe", type: SafePipe, pure: true, standalone: true }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SafePipe, [{
type: Pipe,
args: [{
name: 'aclSafe',
standalone: true,
}]
}], () => [{ type: i1.DomSanitizer }], null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvcGlwZXMvc2FmZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsWUFBWSxHQU1iLE1BQU0sMkJBQTJCLENBQUM7OztBQU1uQyxNQUFNLE9BQU8sUUFBUTtJQUNuQixZQUE2QixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQUcsQ0FBQztJQUV4RCxTQUFTLENBQ1AsS0FBYSxFQUNiLElBQVk7UUFFWixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FDVixpQkFBaUIsSUFBSSx1QkFDbkIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLHdDQUF3QztnQkFDMUMsQ0FBQyxDQUFDLEVBQ04sRUFBRSxDQUNILENBQUM7UUFDSixDQUFDO1FBRUQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkQsQ0FBQztZQUNELEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEQsQ0FBQztZQUNELEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUNELEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUNELEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlELENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3lFQXpDVSxRQUFRO2lGQUFSLFFBQVE7O2lGQUFSLFFBQVE7Y0FKcEIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxTQUFTO2dCQUNmLFVBQVUsRUFBRSxJQUFJO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBEb21TYW5pdGl6ZXIsXG4gIFNhZmVIdG1sLFxuICBTYWZlUmVzb3VyY2VVcmwsXG4gIFNhZmVTY3JpcHQsXG4gIFNhZmVTdHlsZSxcbiAgU2FmZVVybCxcbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FjbFNhZmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTYWZlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIHR5cGU6IHN0cmluZyxcbiAgKTogU2FmZUh0bWwgfCBTYWZlU3R5bGUgfCBTYWZlU2NyaXB0IHwgU2FmZVVybCB8IFNhZmVSZXNvdXJjZVVybCB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTWFrZSBzdXJlIHRoZSAke3R5cGV9IGNvbnRlbnQgaXMgWFNTIHNhZmUke1xuICAgICAgICAgIFsnaHRtbCcsICd1cmwnXS5pbmNsdWRlcyh0eXBlKVxuICAgICAgICAgICAgPyBcIiwgb3RoZXJ3aXNlIHJlcGxhY2Ugd2l0aCAnYWNsU2FuaXRpemUnXCJcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnaHRtbCc6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3N0eWxlJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3NjcmlwdCc6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTY3JpcHQodmFsdWUpO1xuICAgICAgfVxuICAgICAgY2FzZSAndXJsJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBjYXNlICdyZXNvdXJjZVVybCc6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzYWZlIHR5cGUgc3BlY2lmaWVkOiAke3R5cGV9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=