import { Directive, ElementRef, HostListener } from '@angular/core'
import { Router } from '@angular/router'

@Directive({
    selector: '[internalUrlToRoute]'
})
export class InternalUrlToRouteDirective {

    constructor(private router: Router) { }

    @HostListener('click', ['$event'])
    public onClick(event) {
        if (event.target.tagName === 'A' || event.target.tagName === 'a') {
            
            // Stop rule from executing if external link or mailto
            let href = event.target.getAttribute('href'),
            includesHttp = href.includes('http'),
            includesMail = href.includes('mailto')
            
            if(!!href && !includesHttp && !includesMail) {
                this.router.navigate([event.target.getAttribute('href')])
                event.preventDefault()
            }
        } else {
            return
        }
    }

}