/*! * inputmask.phone.extensions.js * https://github.com/RobinHerbots/Inputmask * Copyright (c) 2010 - 2017 Robin Herbots * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) * Version: 3.3.11 */ !(function (factory) { "function" == typeof define && define.amd ? define( ["./dependencyLibs/inputmask.dependencyLib", "./inputmask"], factory ) : "object" == typeof exports ? (module.exports = factory( require("./dependencyLibs/inputmask.dependencyLib"), require("./inputmask") )) : factory(window.dependencyLib || jQuery, window.Inputmask); })(function ($, Inputmask) { function maskSort(a, b) { var maska = (a.mask || a) .replace(/#/g, "9") .replace(/\)/, "9") .replace(/[+()#-]/g, ""), maskb = (b.mask || b) .replace(/#/g, "9") .replace(/\)/, "9") .replace(/[+()#-]/g, ""), maskas = (a.mask || a).split("#")[0], maskbs = (b.mask || b).split("#")[0]; return 0 === maskbs.indexOf(maskas) ? -1 : 0 === maskas.indexOf(maskbs) ? 1 : maska.localeCompare(maskb); } var analyseMaskBase = Inputmask.prototype.analyseMask; return ( (Inputmask.prototype.analyseMask = function (mask, regexMask, opts) { function reduceVariations(masks, previousVariation, previousmaskGroup) { (previousVariation = previousVariation || ""), (previousmaskGroup = previousmaskGroup || maskGroups), "" !== previousVariation && (previousmaskGroup[previousVariation] = {}); for ( var variation = "", maskGroup = previousmaskGroup[previousVariation] || previousmaskGroup, i = masks.length - 1; i >= 0; i-- ) (maskGroup[ (variation = (mask = masks[i].mask || masks[i]).substr(0, 1)) ] = maskGroup[variation] || []), maskGroup[variation].unshift(mask.substr(1)), masks.splice(i, 1); for (var ndx in maskGroup) maskGroup[ndx].length > 500 && reduceVariations(maskGroup[ndx].slice(), ndx, maskGroup); } function rebuild(maskGroup) { var mask = "", submasks = []; for (var ndx in maskGroup) $.isArray(maskGroup[ndx]) ? 1 === maskGroup[ndx].length ? submasks.push(ndx + maskGroup[ndx]) : submasks.push( ndx + opts.groupmarker.start + maskGroup[ndx].join( opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start ) + opts.groupmarker.end ) : submasks.push(ndx + rebuild(maskGroup[ndx])); return ( 1 === submasks.length ? (mask += submasks[0]) : (mask += opts.groupmarker.start + submasks.join( opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start ) + opts.groupmarker.end), mask ); } var maskGroups = {}; return ( opts.phoneCodes && (opts.phoneCodes && opts.phoneCodes.length > 1e3 && (reduceVariations( (mask = mask.substr(1, mask.length - 2)).split( opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start ) ), (mask = rebuild(maskGroups))), (mask = mask.replace(/9/g, "\\9"))), analyseMaskBase.call(this, mask, regexMask, opts) ); }), Inputmask.extendAliases({ abstractphone: { groupmarker: { start: "<", end: ">", }, countrycode: "", phoneCodes: [], mask: function (opts) { return ( (opts.definitions = { "#": Inputmask.prototype.definitions[9], }), opts.phoneCodes.sort(maskSort) ); }, keepStatic: !0, onBeforeMask: function (value, opts) { var processedValue = value .replace(/^0{1,2}/, "") .replace(/[\s]/g, ""); return ( (processedValue.indexOf(opts.countrycode) > 1 || -1 === processedValue.indexOf(opts.countrycode)) && (processedValue = "+" + opts.countrycode + processedValue), processedValue ); }, onUnMask: function (maskedValue, unmaskedValue, opts) { return maskedValue.replace(/[()#-]/g, ""); }, inputmode: "tel", }, }), Inputmask ); });