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

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

  transform(value: string, ...args: unknown[]): string { 
    let text = value ;
    if(text) {
        var arr = text.split(" ");
        var res = '';
        /**
         * Capitalizes each word in a string
         */
         arr.forEach((value:string) => {
            value = this.capitalizeWord(value, true);
            res = res + ' ' + value;
        });
        return res;
    } else {
        return '';
    }
  }

  /**
   * Capitalizes a Word
   * @param {string} value
   * @param {string} lower
   * @returns {unresolved}
   */
  capitalizeWord(value: string, lower:boolean) {
      return (lower ? value.toLowerCase() : value).replace(/(?:^|\s)\S/g, function(a:string) { return a.toUpperCase(); });
  };

}
