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;
}
}