import { PipeTransform } from '@angular/core'; import { Pipe } from '@angular/core'; /** * @desc Highlight pipe används för att markera en token i en sträng, markering sker genom att wrappa den token med en strong tagg * @param {string} input strängen som innehåller token * @param {string} token token som bör markeras */ @Pipe({ name: 'highlight' }) export class HighlightPipe implements PipeTransform { transform(input: string, token: string): string { if (!token || token === '') { return input; } let lastUpdatedPosition: number = 0; while (input.indexOf(token, lastUpdatedPosition) > -1) { lastUpdatedPosition = input.indexOf(token, lastUpdatedPosition + 1); const part1: string = input.substring(0, lastUpdatedPosition); let part2: string = input.substring(lastUpdatedPosition + 1 - token.length); part2 = part2.replace(token, `${token}`); input = part1.concat(part2); lastUpdatedPosition += token.length + ''.length; } return input; } }