import {Pipe, PipeTransform} from '@angular/core';
import * as moment from 'moment';
/**
 * Pipe to transform a string to a date
 */
@Pipe({name: 'formattedDate'})
export class FormattedDatePipe implements PipeTransform {
    /**
     * Constructor
     */
    constructor() {
    }
    /**
     * Transform a date that is passed as string into a date
     * @param value The date passed as string
     * @param format The date passed as string
     */
   transform(value: any, format: string = ''): string {
        // Try and parse the passed value.
        const momentDate = moment(value);

        // If moment didn't understand the value, return it unformatted.
        if (!momentDate.isValid()) { 
            return value;
        }

        // Otherwise, return the date formatted as requested.
        if (format) {
            return momentDate.format(format);
        }
        return momentDate.format('DD.MM.YYYY');
    }
}
