| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | /* Input Mask plugin extensions http://github.com/RobinHerbots/jquery.inputmask Copyright (c) 2010 -  Robin Herbots Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) Version: 0.0.0-dev Phone extension. */(function (factory) {	if (typeof define === "function" && define.amd) {		define(["./dependencyLibs/inputmask.dependencyLib", "./inputmask"], factory);	} else if (typeof exports === "object") {		module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./inputmask"));	} else {		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 maskbs.indexOf(maskas) === 0 ? -1 : (maskas.indexOf(maskbs) === 0 ? 1 : maska.localeCompare(maskb));	}	var analyseMaskBase = Inputmask.prototype.analyseMask;	Inputmask.prototype.analyseMask = function (mask, regexMask, opts) {		var maskGroups = {};		function reduceVariations(masks, previousVariation, previousmaskGroup) {			previousVariation = previousVariation || "";			previousmaskGroup = previousmaskGroup || maskGroups;			if (previousVariation !== "")				previousmaskGroup[previousVariation] = {};			var variation = "", maskGroup = previousmaskGroup[previousVariation] || previousmaskGroup;			for (var i = masks.length - 1; i >= 0; i--) {				mask = masks[i].mask || masks[i];				variation = mask.substr(0, 1);				maskGroup[variation] = maskGroup[variation] || [];				maskGroup[variation].unshift(mask.substr(1));				masks.splice(i, 1);			}			for (var ndx in maskGroup) {				if (maskGroup[ndx].length > 500) {					reduceVariations(maskGroup[ndx].slice(), ndx, maskGroup);				}			}		}		function rebuild(maskGroup) {			var mask = "", submasks = [];			for (var ndx in maskGroup) {				if ($.isArray(maskGroup[ndx])) {					if (maskGroup[ndx].length === 1)						submasks.push(ndx + maskGroup[ndx]);					else						submasks.push(ndx + opts.groupmarker.start + maskGroup[ndx].join(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start) + opts.groupmarker.end);				} else {					submasks.push(ndx + rebuild(maskGroup[ndx]));				}			}			if (submasks.length === 1) {				mask += submasks[0];			} else {				mask += opts.groupmarker.start + submasks.join(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start) + opts.groupmarker.end;			}			return mask;		}		if (opts.phoneCodes) {			if (opts.phoneCodes && opts.phoneCodes.length > 1000) {				mask = mask.substr(1, mask.length - 2);				reduceVariations(mask.split(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start));				mask = rebuild(maskGroups);			}			//escape 9 definition			mask = mask.replace(/9/g, "\\9");		}		// console.log(mask);		var mt = analyseMaskBase.call(this, mask, regexMask,opts);		return mt;	};	Inputmask.extendAliases({		"abstractphone": {			groupmarker: {				start: "<",				end: ">"			},			countrycode: "",			phoneCodes: [],			mask: function (opts) {				opts.definitions = {"#": Inputmask.prototype.definitions["9"]};				return opts.phoneCodes.sort(maskSort);			},			keepStatic: true,			onBeforeMask: function (value, opts) {				var processedValue = value.replace(/^0{1,2}/, "").replace(/[\s]/g, "");				if (processedValue.indexOf(opts.countrycode) > 1 || processedValue.indexOf(opts.countrycode) === -1) {					processedValue = "+" + opts.countrycode + processedValue;				}				return processedValue;			},			onUnMask: function (maskedValue, unmaskedValue, opts) {				var unmasked = maskedValue.replace(/[()#-]/g, "");				return unmasked;			},			inputmode: "tel",		}	});	return Inputmask;}));
 |