gplink
Version:
This is a Angular Library which provide pipe to convert the url, email and mobile number to link format by using linkifyjs.
86 lines • 8.35 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import { Pipe } from '@angular/core';
import linkifyStr from 'linkifyjs/string';
var GplinkPipe = /** @class */ (function () {
function GplinkPipe() {
}
/**
* @param {?} value
* @param {?=} args
* @return {?}
*/
GplinkPipe.prototype.transform = /**
* @param {?} value
* @param {?=} args
* @return {?}
*/
function (value, args) {
value = value ? linkifyStr(value, { target: '_system' }) : value;
// this is the default indian number validation regex if user not provide
/** @type {?} */
var indianNumber = '^[\\+]?[(]?[0-9]{3}[)]?[-\\s\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$';
/** @type {?} */
var userRegex = new RegExp(args ? args : indianNumber, 'igm');
if (value.includes("+")) {
//splitting string on + sign to find mobile numbers from that
/** @type {?} */
var inputStringArray = value ? value.split("+") : [];
if (inputStringArray.length > 0) {
/** @type {?} */
var line = "";
for (var i = 0; i < inputStringArray.length; i++) {
line += this.getAnchoredNumber(inputStringArray[i], userRegex, true);
}
value = line;
}
}
else if (value.includes(" ")) {
value = this.getAnchoredNumber(value, userRegex, false);
}
else if (value.match(userRegex)) {
value = "<a href=tel:+" + value + " target='_top'>" + value + "</a>";
}
return value;
};
/**
* @param {?} value
* @param {?} userRegex
* @param {?} isContainPlusSign
* @return {?}
*/
GplinkPipe.prototype.getAnchoredNumber = /**
* @param {?} value
* @param {?} userRegex
* @param {?} isContainPlusSign
* @return {?}
*/
function (value, userRegex, isContainPlusSign) {
/** @type {?} */
var inputStringArray = value ? value.split(" ") : [];
if (inputStringArray.length > 0) {
for (var i = 0; i < inputStringArray.length; i++) {
if (inputStringArray[i].match(userRegex)) {
if (isContainPlusSign) {
inputStringArray[i] = "<a href=tel:+" + inputStringArray[i] + " target='_top'>+" + inputStringArray[i] + "</a>";
}
else {
inputStringArray[i] = "<a href=tel:" + inputStringArray[i] + " target='_top'>" + inputStringArray[i] + "</a>";
}
}
}
value = inputStringArray.join(" ");
}
return value;
};
GplinkPipe.decorators = [
{ type: Pipe, args: [{
name: 'gplink'
},] }
];
return GplinkPipe;
}());
export { GplinkPipe };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3BsaW5rLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9ncGxpbmsvIiwic291cmNlcyI6WyJsaWIvZ3BsaW5rLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBRTFDO0lBQUE7SUFpREEsQ0FBQzs7Ozs7O0lBNUNDLDhCQUFTOzs7OztJQUFULFVBQVUsS0FBVSxFQUFFLElBQVU7UUFDOUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7OztZQUV6RCxZQUFZLEdBQUcsK0RBQStEOztZQUNoRixTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBQyxLQUFLLENBQUM7UUFDNUQsSUFBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFDOzs7Z0JBRWpCLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwRCxJQUFHLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7O29CQUN6QixJQUFJLEdBQUcsRUFBRTtnQkFDYixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO29CQUMzQyxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDdEU7Z0JBQ0QsS0FBSyxHQUFHLElBQUksQ0FBQzthQUNkO1NBQ0Y7YUFFSSxJQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDMUIsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hEO2FBRUksSUFBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFDO1lBQzdCLEtBQUssR0FBRyxlQUFlLEdBQUMsS0FBSyxHQUFDLGlCQUFpQixHQUFDLEtBQUssR0FBQyxNQUFNLENBQUM7U0FDOUQ7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7Ozs7SUFFRCxzQ0FBaUI7Ozs7OztJQUFqQixVQUFrQixLQUFLLEVBQUMsU0FBUyxFQUFDLGlCQUFpQjs7WUFDN0MsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3BELElBQUcsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUM3QixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO2dCQUMzQyxJQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBQztvQkFDdEMsSUFBRyxpQkFBaUIsRUFBQzt3QkFDbkIsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZSxHQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFDLGtCQUFrQixHQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFDLE1BQU0sQ0FBQztxQkFDekc7eUJBQ0c7d0JBQ0YsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxHQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFDLGlCQUFpQixHQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFDLE1BQU0sQ0FBQztxQkFDdkc7aUJBQ0Y7YUFDRjtZQUNELEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O2dCQWhERixJQUFJLFNBQUM7b0JBQ0osSUFBSSxFQUFFLFFBQVE7aUJBQ2Y7O0lBK0NELGlCQUFDO0NBQUEsQUFqREQsSUFpREM7U0E5Q1ksVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBsaW5raWZ5U3RyIGZyb20gJ2xpbmtpZnlqcy9zdHJpbmcnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdncGxpbmsnXG59KVxuZXhwb3J0IGNsYXNzIEdwbGlua1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgYXJncz86IGFueSk6IGFueSB7XG4gICAgdmFsdWUgPSB2YWx1ZSA/IGxpbmtpZnlTdHIodmFsdWUsIHt0YXJnZXQ6ICdfc3lzdGVtJ30pIDogdmFsdWU7XG4gICAgLy8gdGhpcyBpcyB0aGUgZGVmYXVsdCBpbmRpYW4gbnVtYmVyIHZhbGlkYXRpb24gcmVnZXggaWYgdXNlciBub3QgcHJvdmlkZVxuICAgIGNvbnN0IGluZGlhbk51bWJlciA9ICdeW1xcXFwrXT9bKF0/WzAtOV17M31bKV0/Wy1cXFxcc1xcLl0/WzAtOV17M31bLVxcXFxzXFxcXC5dP1swLTldezQsNn0kJzsgXG4gICAgbGV0IHVzZXJSZWdleCA9IG5ldyBSZWdFeHAoYXJncyA/IGFyZ3MgOiBpbmRpYW5OdW1iZXIsJ2lnbScpO1xuICAgIGlmKHZhbHVlLmluY2x1ZGVzKFwiK1wiKSl7XG4gICAgICAvL3NwbGl0dGluZyBzdHJpbmcgb24gKyBzaWduIHRvIGZpbmQgbW9iaWxlIG51bWJlcnMgZnJvbSB0aGF0XG4gICAgICBsZXQgaW5wdXRTdHJpbmdBcnJheSA9IHZhbHVlID8gdmFsdWUuc3BsaXQoXCIrXCIpIDogW107XG4gICAgICBpZihpbnB1dFN0cmluZ0FycmF5Lmxlbmd0aCA+IDApe1xuICAgICAgICBsZXQgbGluZSA9IFwiXCI7XG4gICAgICAgIGZvcihsZXQgaT0wO2kgPCBpbnB1dFN0cmluZ0FycmF5Lmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICBsaW5lICs9IHRoaXMuZ2V0QW5jaG9yZWROdW1iZXIoaW5wdXRTdHJpbmdBcnJheVtpXSwgdXNlclJlZ2V4LCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IGxpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZWxzZSBpZih2YWx1ZS5pbmNsdWRlcyhcIiBcIikpe1xuICAgICAgdmFsdWUgPSB0aGlzLmdldEFuY2hvcmVkTnVtYmVyKHZhbHVlLCB1c2VyUmVnZXgsZmFsc2UpO1xuICAgIH1cblxuICAgIGVsc2UgaWYodmFsdWUubWF0Y2godXNlclJlZ2V4KSl7XG4gICAgICB2YWx1ZSA9IFwiPGEgaHJlZj10ZWw6K1wiK3ZhbHVlK1wiIHRhcmdldD0nX3RvcCc+XCIrdmFsdWUrXCI8L2E+XCI7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGdldEFuY2hvcmVkTnVtYmVyKHZhbHVlLHVzZXJSZWdleCxpc0NvbnRhaW5QbHVzU2lnbikge1xuICAgIGxldCBpbnB1dFN0cmluZ0FycmF5ID0gdmFsdWUgPyB2YWx1ZS5zcGxpdChcIiBcIikgOiBbXTtcbiAgICBpZihpbnB1dFN0cmluZ0FycmF5Lmxlbmd0aCA+IDApe1xuICAgICAgZm9yKGxldCBpPTA7aSA8IGlucHV0U3RyaW5nQXJyYXkubGVuZ3RoOyBpKyspe1xuICAgICAgICBpZihpbnB1dFN0cmluZ0FycmF5W2ldLm1hdGNoKHVzZXJSZWdleCkpe1xuICAgICAgICAgIGlmKGlzQ29udGFpblBsdXNTaWduKXtcbiAgICAgICAgICAgIGlucHV0U3RyaW5nQXJyYXlbaV0gPSBcIjxhIGhyZWY9dGVsOitcIitpbnB1dFN0cmluZ0FycmF5W2ldK1wiIHRhcmdldD0nX3RvcCc+K1wiK2lucHV0U3RyaW5nQXJyYXlbaV0rXCI8L2E+XCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICBpbnB1dFN0cmluZ0FycmF5W2ldID0gXCI8YSBocmVmPXRlbDpcIitpbnB1dFN0cmluZ0FycmF5W2ldK1wiIHRhcmdldD0nX3RvcCc+XCIraW5wdXRTdHJpbmdBcnJheVtpXStcIjwvYT5cIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhbHVlID0gaW5wdXRTdHJpbmdBcnJheS5qb2luKFwiIFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=