diff --git a/npm/ng-packs/packages/core/src/lib/pipes/html-encode.pipe.ts b/npm/ng-packs/packages/core/src/lib/pipes/html-encode.pipe.ts new file mode 100644 index 0000000000..9089e77c8b --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/pipes/html-encode.pipe.ts @@ -0,0 +1,19 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'htmlEncode', +}) +export class HtmlEncodePipe implements PipeTransform { + transform(value: string): string { + if (!value) { + return value; + } + + return value + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } +} diff --git a/npm/ng-packs/packages/core/src/lib/pipes/index.ts b/npm/ng-packs/packages/core/src/lib/pipes/index.ts index cbfc8f77e9..b7f945c6f5 100644 --- a/npm/ng-packs/packages/core/src/lib/pipes/index.ts +++ b/npm/ng-packs/packages/core/src/lib/pipes/index.ts @@ -7,3 +7,4 @@ export * from './short-time.pipe'; export * from './short-date-time.pipe'; export * from './utc-to-local.pipe'; export * from './lazy-localization.pipe'; +export * from './html-encode.pipe'; diff --git a/npm/ng-packs/packages/core/src/lib/services/html-encoding.service.ts b/npm/ng-packs/packages/core/src/lib/services/html-encoding.service.ts new file mode 100644 index 0000000000..051aa5336a --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/services/html-encoding.service.ts @@ -0,0 +1,32 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class HtmlEncodingService { + encode(value: string): string { + if (!value) { + return value; + } + + return value + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } + + decode(value: string): string { + if (!value) { + return value; + } + + return value + .replace(/&/g, '&') + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/"/g, '"') + .replace(/'/g, "'"); + } +} diff --git a/npm/ng-packs/packages/core/src/lib/services/index.ts b/npm/ng-packs/packages/core/src/lib/services/index.ts index 6b006be74e..66f320b7b3 100644 --- a/npm/ng-packs/packages/core/src/lib/services/index.ts +++ b/npm/ng-packs/packages/core/src/lib/services/index.ts @@ -2,6 +2,7 @@ export * from './config-state.service'; export * from './content-projection.service'; export * from './dom-insertion.service'; export * from './environment.service'; +export * from './html-encoding.service'; export * from './http-error-reporter.service'; export * from './http-wait.service'; export * from './lazy-load.service';