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.

71 lines 7.85 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { Pipe } from '@angular/core'; import linkifyStr from 'linkifyjs/string'; export class GplinkPipe { /** * @param {?} value * @param {?=} args * @return {?} */ transform(value, args) { value = value ? linkifyStr(value, { target: '_system' }) : value; // this is the default indian number validation regex if user not provide /** @type {?} */ const indianNumber = '^[\\+]?[(]?[0-9]{3}[)]?[-\\s\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$'; /** @type {?} */ let userRegex = new RegExp(args ? args : indianNumber, 'igm'); if (value.includes("+")) { //splitting string on + sign to find mobile numbers from that /** @type {?} */ let inputStringArray = value ? value.split("+") : []; if (inputStringArray.length > 0) { /** @type {?} */ let line = ""; for (let 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 {?} */ getAnchoredNumber(value, userRegex, isContainPlusSign) { /** @type {?} */ let inputStringArray = value ? value.split(" ") : []; if (inputStringArray.length > 0) { for (let 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' },] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3BsaW5rLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9ncGxpbmsvIiwic291cmNlcyI6WyJsaWIvZ3BsaW5rLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBSzFDLE1BQU0sT0FBTyxVQUFVOzs7Ozs7SUFFckIsU0FBUyxDQUFDLEtBQVUsRUFBRSxJQUFVO1FBQzlCLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDOzs7Y0FFekQsWUFBWSxHQUFHLCtEQUErRDs7WUFDaEYsU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUMsS0FBSyxDQUFDO1FBQzVELElBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBQzs7O2dCQUVqQixnQkFBZ0IsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEQsSUFBRyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDOztvQkFDekIsSUFBSSxHQUFHLEVBQUU7Z0JBQ2IsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztvQkFDM0MsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ3RFO2dCQUNELEtBQUssR0FBRyxJQUFJLENBQUM7YUFDZDtTQUNGO2FBRUksSUFBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQzFCLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQztTQUN4RDthQUVJLElBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBQztZQUM3QixLQUFLLEdBQUcsZUFBZSxHQUFDLEtBQUssR0FBQyxpQkFBaUIsR0FBQyxLQUFLLEdBQUMsTUFBTSxDQUFDO1NBQzlEO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7Ozs7O0lBRUQsaUJBQWlCLENBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxpQkFBaUI7O1lBQzdDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNwRCxJQUFHLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7WUFDN0IsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDM0MsSUFBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUM7b0JBQ3RDLElBQUcsaUJBQWlCLEVBQUM7d0JBQ25CLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLGVBQWUsR0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBQyxrQkFBa0IsR0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBQyxNQUFNLENBQUM7cUJBQ3pHO3lCQUNHO3dCQUNGLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsR0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBQyxpQkFBaUIsR0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBQyxNQUFNLENBQUM7cUJBQ3ZHO2lCQUNGO2FBQ0Y7WUFDRCxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7WUFoREYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxRQUFRO2FBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbGlua2lmeVN0ciBmcm9tICdsaW5raWZ5anMvc3RyaW5nJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZ3BsaW5rJ1xufSlcbmV4cG9ydCBjbGFzcyBHcGxpbmtQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFyZ3M/OiBhbnkpOiBhbnkge1xuICAgIHZhbHVlID0gdmFsdWUgPyBsaW5raWZ5U3RyKHZhbHVlLCB7dGFyZ2V0OiAnX3N5c3RlbSd9KSA6IHZhbHVlO1xuICAgIC8vIHRoaXMgaXMgdGhlIGRlZmF1bHQgaW5kaWFuIG51bWJlciB2YWxpZGF0aW9uIHJlZ2V4IGlmIHVzZXIgbm90IHByb3ZpZGVcbiAgICBjb25zdCBpbmRpYW5OdW1iZXIgPSAnXltcXFxcK10/WyhdP1swLTldezN9WyldP1stXFxcXHNcXC5dP1swLTldezN9Wy1cXFxcc1xcXFwuXT9bMC05XXs0LDZ9JCc7IFxuICAgIGxldCB1c2VyUmVnZXggPSBuZXcgUmVnRXhwKGFyZ3MgPyBhcmdzIDogaW5kaWFuTnVtYmVyLCdpZ20nKTtcbiAgICBpZih2YWx1ZS5pbmNsdWRlcyhcIitcIikpe1xuICAgICAgLy9zcGxpdHRpbmcgc3RyaW5nIG9uICsgc2lnbiB0byBmaW5kIG1vYmlsZSBudW1iZXJzIGZyb20gdGhhdFxuICAgICAgbGV0IGlucHV0U3RyaW5nQXJyYXkgPSB2YWx1ZSA/IHZhbHVlLnNwbGl0KFwiK1wiKSA6IFtdO1xuICAgICAgaWYoaW5wdXRTdHJpbmdBcnJheS5sZW5ndGggPiAwKXtcbiAgICAgICAgbGV0IGxpbmUgPSBcIlwiO1xuICAgICAgICBmb3IobGV0IGk9MDtpIDwgaW5wdXRTdHJpbmdBcnJheS5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgbGluZSArPSB0aGlzLmdldEFuY2hvcmVkTnVtYmVyKGlucHV0U3RyaW5nQXJyYXlbaV0sIHVzZXJSZWdleCwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSBsaW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsc2UgaWYodmFsdWUuaW5jbHVkZXMoXCIgXCIpKXtcbiAgICAgIHZhbHVlID0gdGhpcy5nZXRBbmNob3JlZE51bWJlcih2YWx1ZSwgdXNlclJlZ2V4LGZhbHNlKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmKHZhbHVlLm1hdGNoKHVzZXJSZWdleCkpe1xuICAgICAgdmFsdWUgPSBcIjxhIGhyZWY9dGVsOitcIit2YWx1ZStcIiB0YXJnZXQ9J190b3AnPlwiK3ZhbHVlK1wiPC9hPlwiO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBnZXRBbmNob3JlZE51bWJlcih2YWx1ZSx1c2VyUmVnZXgsaXNDb250YWluUGx1c1NpZ24pIHtcbiAgICBsZXQgaW5wdXRTdHJpbmdBcnJheSA9IHZhbHVlID8gdmFsdWUuc3BsaXQoXCIgXCIpIDogW107XG4gICAgaWYoaW5wdXRTdHJpbmdBcnJheS5sZW5ndGggPiAwKXtcbiAgICAgIGZvcihsZXQgaT0wO2kgPCBpbnB1dFN0cmluZ0FycmF5Lmxlbmd0aDsgaSsrKXtcbiAgICAgICAgaWYoaW5wdXRTdHJpbmdBcnJheVtpXS5tYXRjaCh1c2VyUmVnZXgpKXtcbiAgICAgICAgICBpZihpc0NvbnRhaW5QbHVzU2lnbil7XG4gICAgICAgICAgICBpbnB1dFN0cmluZ0FycmF5W2ldID0gXCI8YSBocmVmPXRlbDorXCIraW5wdXRTdHJpbmdBcnJheVtpXStcIiB0YXJnZXQ9J190b3AnPitcIitpbnB1dFN0cmluZ0FycmF5W2ldK1wiPC9hPlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgaW5wdXRTdHJpbmdBcnJheVtpXSA9IFwiPGEgaHJlZj10ZWw6XCIraW5wdXRTdHJpbmdBcnJheVtpXStcIiB0YXJnZXQ9J190b3AnPlwiK2lucHV0U3RyaW5nQXJyYXlbaV0rXCI8L2E+XCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YWx1ZSA9IGlucHV0U3RyaW5nQXJyYXkuam9pbihcIiBcIik7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuIl19