// Angular Core
import { Pipe, PipeTransform } from '@angular/core';

// Utilities
import { UtilitiesService } from '../services/utilities/utilities.service';

@Pipe({
  name: 'filterEncoded',
  standalone: false
})
export class FilterEncodedPipe implements PipeTransform {

  constructor(private util: UtilitiesService) { }

  transform(value: string | number, ...args: unknown[]): string {
    /**
    * detects html strings and places it in the text
    * @param {String} input
    * @returns {String}
    */

    let input = unescape((value as string));
    var possible = [
      {
        search: '&amp;',
        replace: '&'
      },
      {
        search: '&#039;',
        replace: '\''
      }
    ];

    possible.forEach((pos) => {
      var search = pos.search;
      var replace = pos.replace;
      input = this.util.replaceAll(input, search, replace);
    });
    
    if (/\(dme\)/i.test(input)) {
      input = input.replace(/\(dme\)/gi, '(DME)');
    }

    return input;

  }

}
