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.

116 lines (110 loc) 9.48 kB
import { Pipe, NgModule } from '@angular/core'; import linkifyStr from 'linkifyjs/string'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ 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; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ var GplinkModule = /** @class */ (function () { function GplinkModule() { } GplinkModule.decorators = [ { type: NgModule, args: [{ declarations: [GplinkPipe], imports: [], exports: [GplinkPipe] },] } ]; return GplinkModule; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ export { GplinkModule, GplinkPipe as ɵa }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3BsaW5rLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9ncGxpbmsvbGliL2dwbGluay5waXBlLnRzIiwibmc6Ly9ncGxpbmsvbGliL2dwbGluay5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGxpbmtpZnlTdHIgZnJvbSAnbGlua2lmeWpzL3N0cmluZyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2dwbGluaydcbn0pXG5leHBvcnQgY2xhc3MgR3BsaW5rUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBhcmdzPzogYW55KTogYW55IHtcbiAgICB2YWx1ZSA9IHZhbHVlID8gbGlua2lmeVN0cih2YWx1ZSwge3RhcmdldDogJ19zeXN0ZW0nfSkgOiB2YWx1ZTtcbiAgICAvLyB0aGlzIGlzIHRoZSBkZWZhdWx0IGluZGlhbiBudW1iZXIgdmFsaWRhdGlvbiByZWdleCBpZiB1c2VyIG5vdCBwcm92aWRlXG4gICAgY29uc3QgaW5kaWFuTnVtYmVyID0gJ15bXFxcXCtdP1soXT9bMC05XXszfVspXT9bLVxcXFxzXFwuXT9bMC05XXszfVstXFxcXHNcXFxcLl0/WzAtOV17NCw2fSQnOyBcbiAgICBsZXQgdXNlclJlZ2V4ID0gbmV3IFJlZ0V4cChhcmdzID8gYXJncyA6IGluZGlhbk51bWJlciwnaWdtJyk7XG4gICAgaWYodmFsdWUuaW5jbHVkZXMoXCIrXCIpKXtcbiAgICAgIC8vc3BsaXR0aW5nIHN0cmluZyBvbiArIHNpZ24gdG8gZmluZCBtb2JpbGUgbnVtYmVycyBmcm9tIHRoYXRcbiAgICAgIGxldCBpbnB1dFN0cmluZ0FycmF5ID0gdmFsdWUgPyB2YWx1ZS5zcGxpdChcIitcIikgOiBbXTtcbiAgICAgIGlmKGlucHV0U3RyaW5nQXJyYXkubGVuZ3RoID4gMCl7XG4gICAgICAgIGxldCBsaW5lID0gXCJcIjtcbiAgICAgICAgZm9yKGxldCBpPTA7aSA8IGlucHV0U3RyaW5nQXJyYXkubGVuZ3RoOyBpKyspe1xuICAgICAgICAgIGxpbmUgKz0gdGhpcy5nZXRBbmNob3JlZE51bWJlcihpbnB1dFN0cmluZ0FycmF5W2ldLCB1c2VyUmVnZXgsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlID0gbGluZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBlbHNlIGlmKHZhbHVlLmluY2x1ZGVzKFwiIFwiKSl7XG4gICAgICB2YWx1ZSA9IHRoaXMuZ2V0QW5jaG9yZWROdW1iZXIodmFsdWUsIHVzZXJSZWdleCxmYWxzZSk7XG4gICAgfVxuXG4gICAgZWxzZSBpZih2YWx1ZS5tYXRjaCh1c2VyUmVnZXgpKXtcbiAgICAgIHZhbHVlID0gXCI8YSBocmVmPXRlbDorXCIrdmFsdWUrXCIgdGFyZ2V0PSdfdG9wJz5cIit2YWx1ZStcIjwvYT5cIjtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZ2V0QW5jaG9yZWROdW1iZXIodmFsdWUsdXNlclJlZ2V4LGlzQ29udGFpblBsdXNTaWduKSB7XG4gICAgbGV0IGlucHV0U3RyaW5nQXJyYXkgPSB2YWx1ZSA/IHZhbHVlLnNwbGl0KFwiIFwiKSA6IFtdO1xuICAgIGlmKGlucHV0U3RyaW5nQXJyYXkubGVuZ3RoID4gMCl7XG4gICAgICBmb3IobGV0IGk9MDtpIDwgaW5wdXRTdHJpbmdBcnJheS5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGlmKGlucHV0U3RyaW5nQXJyYXlbaV0ubWF0Y2godXNlclJlZ2V4KSl7XG4gICAgICAgICAgaWYoaXNDb250YWluUGx1c1NpZ24pe1xuICAgICAgICAgICAgaW5wdXRTdHJpbmdBcnJheVtpXSA9IFwiPGEgaHJlZj10ZWw6K1wiK2lucHV0U3RyaW5nQXJyYXlbaV0rXCIgdGFyZ2V0PSdfdG9wJz4rXCIraW5wdXRTdHJpbmdBcnJheVtpXStcIjwvYT5cIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIGlucHV0U3RyaW5nQXJyYXlbaV0gPSBcIjxhIGhyZWY9dGVsOlwiK2lucHV0U3RyaW5nQXJyYXlbaV0rXCIgdGFyZ2V0PSdfdG9wJz5cIitpbnB1dFN0cmluZ0FycmF5W2ldK1wiPC9hPlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFsdWUgPSBpbnB1dFN0cmluZ0FycmF5LmpvaW4oXCIgXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBpbXBvcnQgeyBHcGxpbmtDb21wb25lbnQgfSBmcm9tICcuL2dwbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3BsaW5rUGlwZSB9IGZyb20gJy4vZ3BsaW5rLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsgR3BsaW5rUGlwZV0sXG4gIGltcG9ydHM6IFtcbiAgXSxcbiAgZXhwb3J0czogW0dwbGlua1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEdwbGlua01vZHVsZSB7IH1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7SUFHQTtLQWlEQzs7Ozs7O0lBNUNDLDhCQUFTOzs7OztJQUFULFVBQVUsS0FBVSxFQUFFLElBQVU7UUFDOUIsS0FBSyxHQUFHLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxDQUFDLEdBQUcsS0FBSyxDQUFDOzs7WUFFekQsWUFBWSxHQUFHLCtEQUErRDs7WUFDaEYsU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsWUFBWSxFQUFDLEtBQUssQ0FBQztRQUM1RCxJQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUM7OztnQkFFakIsZ0JBQWdCLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFHLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7O29CQUN6QixJQUFJLEdBQUcsRUFBRTtnQkFDYixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO29CQUMzQyxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDdEU7Z0JBQ0QsS0FBSyxHQUFHLElBQUksQ0FBQzthQUNkO1NBQ0Y7YUFFSSxJQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDMUIsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hEO2FBRUksSUFBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFDO1lBQzdCLEtBQUssR0FBRyxlQUFlLEdBQUMsS0FBSyxHQUFDLGlCQUFpQixHQUFDLEtBQUssR0FBQyxNQUFNLENBQUM7U0FDOUQ7UUFDRCxPQUFPLEtBQUssQ0FBQztLQUNkOzs7Ozs7O0lBRUQsc0NBQWlCOzs7Ozs7SUFBakIsVUFBa0IsS0FBSyxFQUFDLFNBQVMsRUFBQyxpQkFBaUI7O1lBQzdDLGdCQUFnQixHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDcEQsSUFBRyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQzdCLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUM7Z0JBQzNDLElBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFDO29CQUN0QyxJQUFHLGlCQUFpQixFQUFDO3dCQUNuQixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFlLEdBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUMsa0JBQWtCLEdBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUMsTUFBTSxDQUFDO3FCQUN6Rzt5QkFDRzt3QkFDRixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxjQUFjLEdBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUMsaUJBQWlCLEdBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUMsTUFBTSxDQUFDO3FCQUN2RztpQkFDRjthQUNGO1lBQ0QsS0FBSyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQztRQUNELE9BQU8sS0FBSyxDQUFDO0tBQ2Q7O2dCQWhERixJQUFJLFNBQUM7b0JBQ0osSUFBSSxFQUFFLFFBQVE7aUJBQ2Y7O0lBK0NELGlCQUFDO0NBakREOzs7Ozs7QUNIQTtJQUlBO0tBTTZCOztnQkFONUIsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRSxDQUFFLFVBQVUsQ0FBQztvQkFDM0IsT0FBTyxFQUFFLEVBQ1I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUN0Qjs7SUFDMkIsbUJBQUM7Q0FON0I7Ozs7Ozs7Ozs7Ozs7OyJ9