diff --git a/src/app/shared/pipes/truncate.pipe.spec.ts b/src/app/shared/pipes/truncate.pipe.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..b16f3ef167cb106c0fed2fff5097443798c4fcc9 --- /dev/null +++ b/src/app/shared/pipes/truncate.pipe.spec.ts @@ -0,0 +1,8 @@ +import { TruncatePipe } from './truncate.pipe'; + +describe('TruncatePipe', () => { + it('create an instance', () => { + const pipe = new TruncatePipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/src/app/shared/pipes/truncate.pipe.ts b/src/app/shared/pipes/truncate.pipe.ts new file mode 100644 index 0000000000000000000000000000000000000000..b03e5e69f7a0cb469860e4a6513ec1a10a155509 --- /dev/null +++ b/src/app/shared/pipes/truncate.pipe.ts @@ -0,0 +1,19 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'truncate', + standalone: true, +}) +export class TruncatePipe implements PipeTransform { + transform( + value: string, + limit = 25, + completeWords = false, + ellipsis = '...', + ) { + if (completeWords) { + limit = value.slice(0, limit).lastIndexOf(' '); + } + return value.length > limit ? value.slice(0, limit) + ellipsis : value; + } +}