UNPKG

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
/** * @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=