{"version":3,"file":"samask-masker.min.js","sources":["../src/samask.js"],"sourcesContent":["export default function Samask(target, maskText = {}) {\n  var self;\n\n  var regexLocalTable = {\n    '0': {\n      pattern: /\\d/\n    },\n    'S': {\n      pattern: /[a-zA-Z]/\n    }\n  }\n\n  var getRegex = function(position) {\n    return regexLocalTable[maskText[position]]\n  }\n\n  var isSplitter = function(char, position) {\n    return char == maskText[position]\n  }\n\n  var regexTest = function(char, position) {\n    var regex = getRegex(position)\n    if(regex && regex.pattern.test(char)) {\n      return true\n    } else if(isSplitter(char, position)) {\n      return true\n    } else if(getRegex(position + 1) && getRegex(position + 1).pattern.test(char)) {\n      self.value += maskText[position] + char\n      return false\n    } else {\n      return false\n    }\n  }\n\n  var mask = function() {\n    self = this    \n    this.setAttribute('maxlength', maskText.length)\n    this.addEventListener('keypress', function(e) {\n      var char = e.key\n      var position = this.value.length\n      if(!regexTest(char, position)) {\n        e.preventDefault()\n      }\n    })\n  }\n\n  target.each(mask)\n}"],"names":["target","self","maskText","regexLocalTable","getRegex","position","regexTest","char","regex","pattern","test","isSplitter","value","each","this","setAttribute","length","addEventListener","e","key","preventDefault"],"mappings":"+LAAe,SAAgBA,OACzBC,EADiCC,4DAGjCC,cAES,iBAGA,aAITC,EAAW,SAASC,UACfF,EAAgBD,EAASG,KAO9BC,EAAY,SAASC,EAAMF,OACzBG,EAAQJ,EAASC,aAClBG,IAASA,EAAMC,QAAQC,KAAKH,MANhB,SAASA,EAAMF,UACvBE,GAAQL,EAASG,GAOdM,CAAWJ,EAAMF,MAEjBD,EAASC,EAAW,KAAMD,EAASC,EAAW,GAAGI,QAAQC,KAAKH,OACjEK,OAASV,EAASG,GAAYE,EAC5B,QAkBJM,KAZI,aACFC,UACFC,aAAa,YAAab,EAASc,aACnCC,iBAAiB,WAAY,SAASC,OACrCX,EAAOW,EAAEC,IACTd,EAAWS,KAAKF,MAAMI,OACtBV,EAAUC,EAAMF,MAChBe"}