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
JavaScript
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