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.

126 lines (117 loc) 10.7 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('linkifyjs/string')) : typeof define === 'function' && define.amd ? define('gplink', ['exports', '@angular/core', 'linkifyjs/string'], factory) : (factory((global.gplink = {}),global.ng.core,global.linkifyStr)); }(this, (function (exports,core,linkifyStr) { 'use strict'; linkifyStr = linkifyStr && linkifyStr.hasOwnProperty('default') ? linkifyStr['default'] : linkifyStr; /** * @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: core.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: core.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 */ exports.GplinkModule = GplinkModule; exports.ɵa = GplinkPipe; Object.defineProperty(exports, '__esModule', { value: true }); }))); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3BsaW5rLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vZ3BsaW5rL2xpYi9ncGxpbmsucGlwZS50cyIsIm5nOi8vZ3BsaW5rL2xpYi9ncGxpbmsubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBsaW5raWZ5U3RyIGZyb20gJ2xpbmtpZnlqcy9zdHJpbmcnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdncGxpbmsnXG59KVxuZXhwb3J0IGNsYXNzIEdwbGlua1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgYXJncz86IGFueSk6IGFueSB7XG4gICAgdmFsdWUgPSB2YWx1ZSA/IGxpbmtpZnlTdHIodmFsdWUsIHt0YXJnZXQ6ICdfc3lzdGVtJ30pIDogdmFsdWU7XG4gICAgLy8gdGhpcyBpcyB0aGUgZGVmYXVsdCBpbmRpYW4gbnVtYmVyIHZhbGlkYXRpb24gcmVnZXggaWYgdXNlciBub3QgcHJvdmlkZVxuICAgIGNvbnN0IGluZGlhbk51bWJlciA9ICdeW1xcXFwrXT9bKF0/WzAtOV17M31bKV0/Wy1cXFxcc1xcLl0/WzAtOV17M31bLVxcXFxzXFxcXC5dP1swLTldezQsNn0kJzsgXG4gICAgbGV0IHVzZXJSZWdleCA9IG5ldyBSZWdFeHAoYXJncyA/IGFyZ3MgOiBpbmRpYW5OdW1iZXIsJ2lnbScpO1xuICAgIGlmKHZhbHVlLmluY2x1ZGVzKFwiK1wiKSl7XG4gICAgICAvL3NwbGl0dGluZyBzdHJpbmcgb24gKyBzaWduIHRvIGZpbmQgbW9iaWxlIG51bWJlcnMgZnJvbSB0aGF0XG4gICAgICBsZXQgaW5wdXRTdHJpbmdBcnJheSA9IHZhbHVlID8gdmFsdWUuc3BsaXQoXCIrXCIpIDogW107XG4gICAgICBpZihpbnB1dFN0cmluZ0FycmF5Lmxlbmd0aCA+IDApe1xuICAgICAgICBsZXQgbGluZSA9IFwiXCI7XG4gICAgICAgIGZvcihsZXQgaT0wO2kgPCBpbnB1dFN0cmluZ0FycmF5Lmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICBsaW5lICs9IHRoaXMuZ2V0QW5jaG9yZWROdW1iZXIoaW5wdXRTdHJpbmdBcnJheVtpXSwgdXNlclJlZ2V4LCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IGxpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZWxzZSBpZih2YWx1ZS5pbmNsdWRlcyhcIiBcIikpe1xuICAgICAgdmFsdWUgPSB0aGlzLmdldEFuY2hvcmVkTnVtYmVyKHZhbHVlLCB1c2VyUmVnZXgsZmFsc2UpO1xuICAgIH1cblxuICAgIGVsc2UgaWYodmFsdWUubWF0Y2godXNlclJlZ2V4KSl7XG4gICAgICB2YWx1ZSA9IFwiPGEgaHJlZj10ZWw6K1wiK3ZhbHVlK1wiIHRhcmdldD0nX3RvcCc+XCIrdmFsdWUrXCI8L2E+XCI7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGdldEFuY2hvcmVkTnVtYmVyKHZhbHVlLHVzZXJSZWdleCxpc0NvbnRhaW5QbHVzU2lnbikge1xuICAgIGxldCBpbnB1dFN0cmluZ0FycmF5ID0gdmFsdWUgPyB2YWx1ZS5zcGxpdChcIiBcIikgOiBbXTtcbiAgICBpZihpbnB1dFN0cmluZ0FycmF5Lmxlbmd0aCA+IDApe1xuICAgICAgZm9yKGxldCBpPTA7aSA8IGlucHV0U3RyaW5nQXJyYXkubGVuZ3RoOyBpKyspe1xuICAgICAgICBpZihpbnB1dFN0cmluZ0FycmF5W2ldLm1hdGNoKHVzZXJSZWdleCkpe1xuICAgICAgICAgIGlmKGlzQ29udGFpblBsdXNTaWduKXtcbiAgICAgICAgICAgIGlucHV0U3RyaW5nQXJyYXlbaV0gPSBcIjxhIGhyZWY9dGVsOitcIitpbnB1dFN0cmluZ0FycmF5W2ldK1wiIHRhcmdldD0nX3RvcCc+K1wiK2lucHV0U3RyaW5nQXJyYXlbaV0rXCI8L2E+XCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICBpbnB1dFN0cmluZ0FycmF5W2ldID0gXCI8YSBocmVmPXRlbDpcIitpbnB1dFN0cmluZ0FycmF5W2ldK1wiIHRhcmdldD0nX3RvcCc+XCIraW5wdXRTdHJpbmdBcnJheVtpXStcIjwvYT5cIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhbHVlID0gaW5wdXRTdHJpbmdBcnJheS5qb2luKFwiIFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgR3BsaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9ncGxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IEdwbGlua1BpcGUgfSBmcm9tICcuL2dwbGluay5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbIEdwbGlua1BpcGVdLFxuICBpbXBvcnRzOiBbXG4gIF0sXG4gIGV4cG9ydHM6IFtHcGxpbmtQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBHcGxpbmtNb2R1bGUgeyB9XG4iXSwibmFtZXMiOlsiUGlwZSIsIk5nTW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtRQUdBO1NBaURDOzs7Ozs7UUE1Q0MsOEJBQVM7Ozs7O1lBQVQsVUFBVSxLQUFVLEVBQUUsSUFBVTtnQkFDOUIsS0FBSyxHQUFHLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxDQUFDLEdBQUcsS0FBSyxDQUFDOzs7b0JBRXpELFlBQVksR0FBRywrREFBK0Q7O29CQUNoRixTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxZQUFZLEVBQUMsS0FBSyxDQUFDO2dCQUM1RCxJQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUM7Ozt3QkFFakIsZ0JBQWdCLEdBQUcsS0FBSyxH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