UNPKG

@lifeintelligencegroup/ngx-lig-ari

Version:

Life Intelligence Group Artificial Intelligence

62 lines 7.62 kB
import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/platform-browser"; export class LinkifyPipe { constructor(domSanitizer) { this.domSanitizer = domSanitizer; this.urlsRegex = /(\b(https?|http|ftp|ftps|Https|rtsp|Rtsp):\/\/[A-Z0-9+&@#\/%?=~_|!:,.;-]*[-A-Z0-9+&@#\/%=~_|])/gim; // tslint:disable-next-line:only-arrow-functions document.onclick = function (e) { e = e || window.event; const element = e.target || e.srcElement; // making sure there's an URL if (element.tagName === 'A' && element.href && element.dataset.id === 'ari-link') { // opening in a new window window.open(element.href, '_blank', 'location=yes noopener noreferrer'); return false; } }; } transform(value, args) { return this.domSanitizer.bypassSecurityTrustHtml(this.stylize(value)); } stylize(text) { if (text && text.length > 0) { if (text.match(this.urlsRegex)) { text = text.replace(this.urlsRegex, function replacer($1, $2, $3) { const url = $1; const urlClean = url.replace('' + $3 + '://', ''); // const value = // '<a href="javascript: void(0);" onclick="window.open(' + // `'${url}'` + // '),"_blank", "location=yes");return false;">' + // urlClean + // '</a>'; const value = '<a href="' + url + '" data-id="ari-link">' + urlClean + '</a>'; return value; }); return text; } else { return text; } } else { return text; } } openLink(link) { window.open(link, '_blank', 'noopener noreferrer'); } } LinkifyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: LinkifyPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); LinkifyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: LinkifyPipe, name: "linkify" }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: LinkifyPipe, decorators: [{ type: Pipe, args: [{ name: 'linkify', }] }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2lmeS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZy1hcmkvc3JjL2xpYi9waXBlcy9saW5raWZ5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQVVwRCxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWtCOUMsY0FBUyxHQUFRLG1HQUFtRyxDQUFDO1FBakJuSCxnREFBZ0Q7UUFDaEQsUUFBUSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7WUFDNUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ3RCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUN6Qyw2QkFBNkI7WUFDN0IsSUFDRSxPQUFPLENBQUMsT0FBTyxLQUFLLEdBQUc7Z0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJO2dCQUNaLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFVBQVUsRUFDakM7Z0JBQ0EsMEJBQTBCO2dCQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLGtDQUFrQyxDQUFDLENBQUM7Z0JBQ3hFLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0lBR0QsU0FBUyxDQUFDLEtBQVUsRUFBRSxJQUFVO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFZO1FBQzFCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzlCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO29CQUM5RCxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7b0JBQ3BCLE1BQU0sUUFBUSxHQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3ZELGdCQUFnQjtvQkFDaEIsNkRBQTZEO29CQUM3RCxpQkFBaUI7b0JBQ2pCLG9EQUFvRDtvQkFDcEQsZUFBZTtvQkFDZixZQUFZO29CQUNaLE1BQU0sS0FBSyxHQUNULFdBQVcsR0FBRyxHQUFHLEdBQUcsdUJBQXVCLEdBQUcsUUFBUSxHQUFHLE1BQU0sQ0FBQztvQkFDbEUsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQUk7UUFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUNyRCxDQUFDOzt3R0FuRFUsV0FBVztzR0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBSHZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuZGVjbGFyZSBjb25zdCB3aW5kb3c6IGFueTtcbmRlY2xhcmUgY29uc3QgZG9jdW1lbnQ6IGFueTtcblxuQFBpcGUoe1xuICBuYW1lOiAnbGlua2lmeScsXG59KVxuZXhwb3J0IGNsYXNzIExpbmtpZnlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6b25seS1hcnJvdy1mdW5jdGlvbnNcbiAgICBkb2N1bWVudC5vbmNsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBlLnRhcmdldCB8fCBlLnNyY0VsZW1lbnQ7XG4gICAgICAvLyBtYWtpbmcgc3VyZSB0aGVyZSdzIGFuIFVSTFxuICAgICAgaWYgKFxuICAgICAgICBlbGVtZW50LnRhZ05hbWUgPT09ICdBJyAmJlxuICAgICAgICBlbGVtZW50LmhyZWYgJiZcbiAgICAgICAgZWxlbWVudC5kYXRhc2V0LmlkID09PSAnYXJpLWxpbmsnXG4gICAgICApIHtcbiAgICAgICAgLy8gb3BlbmluZyBpbiBhIG5ldyB3aW5kb3dcbiAgICAgICAgd2luZG93Lm9wZW4oZWxlbWVudC5ocmVmLCAnX2JsYW5rJywgJ2xvY2F0aW9uPXllcyBub29wZW5lciBub3JlZmVycmVyJyk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgdXJsc1JlZ2V4OiBhbnkgPSAvKFxcYihodHRwcz98aHR0cHxmdHB8ZnRwc3xIdHRwc3xydHNwfFJ0c3ApOlxcL1xcL1tBLVowLTkrJkAjXFwvJT89fl98ITosLjstXSpbLUEtWjAtOSsmQCNcXC8lPX5ffF0pL2dpbTtcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFyZ3M/OiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLnN0eWxpemUodmFsdWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3R5bGl6ZSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0ZXh0ICYmIHRleHQubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRleHQubWF0Y2godGhpcy51cmxzUmVnZXgpKSB7XG4gICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UodGhpcy51cmxzUmVnZXgsIGZ1bmN0aW9uIHJlcGxhY2VyKCQxLCAkMiwgJDMpIHtcbiAgICAgICAgICBjb25zdCB1cmw6IGFueSA9ICQxO1xuICAgICAgICAgIGNvbnN0IHVybENsZWFuOiBhbnkgPSB1cmwucmVwbGFjZSgnJyArICQzICsgJzovLycsICcnKTtcbiAgICAgICAgICAvLyBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgLy8gICAnPGEgaHJlZj1cImphdmFzY3JpcHQ6IHZvaWQoMCk7XCIgb25jbGljaz1cIndpbmRvdy5vcGVuKCcgK1xuICAgICAgICAgIC8vICAgYCcke3VybH0nYCArXG4gICAgICAgICAgLy8gICAnKSxcIl9ibGFua1wiLCBcImxvY2F0aW9uPXllc1wiKTtyZXR1cm4gZmFsc2U7XCI+JyArXG4gICAgICAgICAgLy8gICB1cmxDbGVhbiArXG4gICAgICAgICAgLy8gICAnPC9hPic7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgICAgJzxhIGhyZWY9XCInICsgdXJsICsgJ1wiIGRhdGEtaWQ9XCJhcmktbGlua1wiPicgKyB1cmxDbGVhbiArICc8L2E+JztcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG4gIH1cblxuICBvcGVuTGluayhsaW5rKSB7XG4gICAgd2luZG93Lm9wZW4obGluaywgJ19ibGFuaycsICdub29wZW5lciBub3JlZmVycmVyJyk7XG4gIH1cbn1cbiJdfQ==