{"version":3,"sources":["jquery.inputmask.bundle.js","subpage.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1xHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"subpage.js","sourcesContent":["/*!\r\n* jquery.inputmask.bundle.js\r\n* https://github.com/RobinHerbots/Inputmask\r\n* Copyright (c) 2010 - 2018 Robin Herbots\r\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\r\n* Version: 4.0.5\r\n*/\r\n\r\n(function (modules) {\r\n var installedModules = {};\r\n function __webpack_require__(moduleId) {\r\n if (installedModules[moduleId]) {\r\n return installedModules[moduleId].exports;\r\n }\r\n var module = installedModules[moduleId] = {\r\n i: moduleId,\r\n l: false,\r\n exports: {}\r\n };\r\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n module.l = true;\r\n return module.exports;\r\n }\r\n __webpack_require__.m = modules;\r\n __webpack_require__.c = installedModules;\r\n __webpack_require__.d = function (exports, name, getter) {\r\n if (!__webpack_require__.o(exports, name)) {\r\n Object.defineProperty(exports, name, {\r\n enumerable: true,\r\n get: getter\r\n });\r\n }\r\n };\r\n __webpack_require__.r = function (exports) {\r\n if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\r\n Object.defineProperty(exports, Symbol.toStringTag, {\r\n value: \"Module\"\r\n });\r\n }\r\n Object.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n });\r\n };\r\n __webpack_require__.t = function (value, mode) {\r\n if (mode & 1) value = __webpack_require__(value);\r\n if (mode & 8) return value;\r\n if (mode & 4 && typeof value === \"object\" && value && value.__esModule) return value;\r\n var ns = Object.create(null);\r\n __webpack_require__.r(ns);\r\n Object.defineProperty(ns, \"default\", {\r\n enumerable: true,\r\n value: value\r\n });\r\n if (mode & 2 && typeof value != \"string\") for (var key in value) __webpack_require__.d(ns, key, function (key) {\r\n return value[key];\r\n }.bind(null, key));\r\n return ns;\r\n };\r\n __webpack_require__.n = function (module) {\r\n var getter = module && module.__esModule ? function getDefault() {\r\n return module[\"default\"];\r\n } : function getModuleExports() {\r\n return module;\r\n };\r\n __webpack_require__.d(getter, \"a\", getter);\r\n return getter;\r\n };\r\n __webpack_require__.o = function (object, property) {\r\n return Object.prototype.hasOwnProperty.call(object, property);\r\n };\r\n __webpack_require__.p = \"\";\r\n return __webpack_require__(__webpack_require__.s = 0);\r\n})([function (module, exports, __webpack_require__) {\r\n \"use strict\";\r\n __webpack_require__(1);\r\n __webpack_require__(6);\r\n __webpack_require__(7);\r\n var _inputmask = __webpack_require__(2);\r\n var _inputmask2 = _interopRequireDefault(_inputmask);\r\n var _inputmask3 = __webpack_require__(3);\r\n var _inputmask4 = _interopRequireDefault(_inputmask3);\r\n var _jquery = __webpack_require__(4);\r\n var _jquery2 = _interopRequireDefault(_jquery);\r\n function _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n default: obj\r\n };\r\n }\r\n if (_inputmask4.default === _jquery2.default) {\r\n __webpack_require__(8);\r\n }\r\n window.Inputmask = _inputmask2.default;\r\n}, function (module, exports, __webpack_require__) {\r\n \"use strict\";\r\n var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\r\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\r\n return typeof obj;\r\n } : function (obj) {\r\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\r\n };\r\n (function (factory) {\r\n if (true) {\r\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2)], __WEBPACK_AMD_DEFINE_FACTORY__ = factory,\r\n __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \"function\" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__,\r\n __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n } else { }\r\n })(function (Inputmask) {\r\n Inputmask.extendDefinitions({\r\n A: {\r\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\r\n casing: \"upper\"\r\n },\r\n \"&\": {\r\n validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\r\n casing: \"upper\"\r\n },\r\n \"#\": {\r\n validator: \"[0-9A-Fa-f]\",\r\n casing: \"upper\"\r\n }\r\n });\r\n Inputmask.extendAliases({\r\n cssunit: {\r\n regex: \"[+-]?[0-9]+\\\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)\"\r\n },\r\n url: {\r\n regex: \"(https?|ftp)//.*\",\r\n autoUnmask: false\r\n },\r\n ip: {\r\n mask: \"i[i[i]].i[i[i]].i[i[i]].i[i[i]]\",\r\n definitions: {\r\n i: {\r\n validator: function validator(chrs, maskset, pos, strict, opts) {\r\n if (pos - 1 > -1 && maskset.buffer[pos - 1] !== \".\") {\r\n chrs = maskset.buffer[pos - 1] + chrs;\r\n if (pos - 2 > -1 && maskset.buffer[pos - 2] !== \".\") {\r\n chrs = maskset.buffer[pos - 2] + chrs;\r\n } else chrs = \"0\" + chrs;\r\n } else chrs = \"00\" + chrs;\r\n return new RegExp(\"25[0-5]|2[0-4][0-9]|[01][0-9][0-9]\").test(chrs);\r\n }\r\n }\r\n },\r\n onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\r\n return maskedValue;\r\n },\r\n inputmode: \"numeric\"\r\n },\r\n email: {\r\n mask: \"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]\",\r\n greedy: false,\r\n casing: \"lower\",\r\n onBeforePaste: function onBeforePaste(pastedValue, opts) {\r\n pastedValue = pastedValue.toLowerCase();\r\n return pastedValue.replace(\"mailto:\", \"\");\r\n },\r\n definitions: {\r\n \"*\": {\r\n validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5!#$%&'*+/=?^_`{|}~-]\"\r\n },\r\n \"-\": {\r\n validator: \"[0-9A-Za-z-]\"\r\n }\r\n },\r\n onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\r\n return maskedValue;\r\n },\r\n inputmode: \"email\"\r\n },\r\n mac: {\r\n mask: \"##:##:##:##:##:##\"\r\n },\r\n vin: {\r\n mask: \"V{13}9{4}\",\r\n definitions: {\r\n V: {\r\n validator: \"[A-HJ-NPR-Za-hj-npr-z\\\\d]\",\r\n casing: \"upper\"\r\n }\r\n },\r\n clearIncomplete: true,\r\n autoUnmask: true\r\n }\r\n });\r\n return Inputmask;\r\n });\r\n}, function (module, exports, __webpack_require__) {\r\n \"use strict\";\r\n var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\r\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\r\n return typeof obj;\r\n } : function (obj) {\r\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\r\n };\r\n (function (factory) {\r\n if (true) {\r\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(3), __webpack_require__(5)],\r\n __WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \"function\" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__,\r\n __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n } else { }\r\n })(function ($, window, undefined) {\r\n var document = window.document, ua = navigator.userAgent, ie = ua.indexOf(\"MSIE \") > 0 || ua.indexOf(\"Trident/\") > 0, mobile = isInputEventSupported(\"touchstart\"), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile;\r\n function Inputmask(alias, options, internal) {\r\n if (!(this instanceof Inputmask)) {\r\n return new Inputmask(alias, options, internal);\r\n }\r\n this.el = undefined;\r\n this.events = {};\r\n this.maskset = undefined;\r\n this.refreshValue = false;\r\n if (internal !== true) {\r\n if ($.isPlainObject(alias)) {\r\n options = alias;\r\n } else {\r\n options = options || {};\r\n if (alias) options.alias = alias;\r\n }\r\n this.opts = $.extend(true, {}, this.defaults, options);\r\n this.noMasksCache = options && options.definitions !== undefined;\r\n this.userOptions = options || {};\r\n this.isRTL = this.opts.numericInput;\r\n resolveAlias(this.opts.alias, options, this.opts);\r\n }\r\n }\r\n Inputmask.prototype = {\r\n dataAttribute: \"data-inputmask\",\r\n defaults: {\r\n placeholder: \"_\",\r\n optionalmarker: [\"[\", \"]\"],\r\n quantifiermarker: [\"{\", \"}\"],\r\n groupmarker: [\"(\", \")\"],\r\n alternatormarker: \"|\",\r\n escapeChar: \"\\\\\",\r\n mask: null,\r\n regex: null,\r\n oncomplete: $.noop,\r\n onincomplete: $.noop,\r\n oncleared: $.noop,\r\n repeat: 0,\r\n greedy: false,\r\n autoUnmask: false,\r\n removeMaskOnSubmit: false,\r\n clearMaskOnLostFocus: true,\r\n insertMode: true,\r\n clearIncomplete: false,\r\n alias: null,\r\n onKeyDown: $.noop,\r\n onBeforeMask: null,\r\n onBeforePaste: function onBeforePaste(pastedValue, opts) {\r\n return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(this, pastedValue, opts) : pastedValue;\r\n },\r\n onBeforeWrite: null,\r\n onUnMask: null,\r\n showMaskOnFocus: true,\r\n showMaskOnHover: true,\r\n onKeyValidation: $.noop,\r\n skipOptionalPartCharacter: \" \",\r\n numericInput: false,\r\n rightAlign: false,\r\n undoOnEscape: true,\r\n radixPoint: \"\",\r\n _radixDance: false,\r\n groupSeparator: \"\",\r\n keepStatic: null,\r\n positionCaretOnTab: true,\r\n tabThrough: false,\r\n supportsInputType: [\"text\", \"tel\", \"url\", \"password\", \"search\"],\r\n ignorables: [8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229],\r\n isComplete: null,\r\n preValidation: null,\r\n postValidation: null,\r\n staticDefinitionSymbol: undefined,\r\n jitMasking: false,\r\n nullable: true,\r\n inputEventOnly: false,\r\n noValuePatching: false,\r\n positionCaretOnClick: \"lvp\",\r\n casing: null,\r\n inputmode: \"verbatim\",\r\n colorMask: false,\r\n disablePredictiveText: false,\r\n importDataAttributes: true,\r\n shiftPositions: true\r\n },\r\n definitions: {\r\n 9: {\r\n validator: \"[0-9\\uff11-\\uff19]\",\r\n definitionSymbol: \"*\"\r\n },\r\n a: {\r\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\r\n definitionSymbol: \"*\"\r\n },\r\n \"*\": {\r\n validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\"\r\n }\r\n },\r\n aliases: {},\r\n masksCache: {},\r\n mask: function mask(elems) {\r\n var that = this;\r\n function importAttributeOptions(npt, opts, userOptions, dataAttribute) {\r\n if (opts.importDataAttributes === true) {\r\n var importOption = function importOption(option, optionData) {\r\n optionData = optionData !== undefined ? optionData : npt.getAttribute(dataAttribute + \"-\" + option);\r\n if (optionData !== null) {\r\n if (typeof optionData === \"string\") {\r\n if (option.indexOf(\"on\") === 0) optionData = window[optionData]; else if (optionData === \"false\") optionData = false; else if (optionData === \"true\") optionData = true;\r\n }\r\n userOptions[option] = optionData;\r\n }\r\n };\r\n var attrOptions = npt.getAttribute(dataAttribute), option, dataoptions, optionData, p;\r\n if (attrOptions && attrOptions !== \"\") {\r\n attrOptions = attrOptions.replace(/'/g, '\"');\r\n dataoptions = JSON.parse(\"{\" + attrOptions + \"}\");\r\n }\r\n if (dataoptions) {\r\n optionData = undefined;\r\n for (p in dataoptions) {\r\n if (p.toLowerCase() === \"alias\") {\r\n optionData = dataoptions[p];\r\n break;\r\n }\r\n }\r\n }\r\n importOption(\"alias\", optionData);\r\n if (userOptions.alias) {\r\n resolveAlias(userOptions.alias, userOptions, opts);\r\n }\r\n for (option in opts) {\r\n if (dataoptions) {\r\n optionData = undefined;\r\n for (p in dataoptions) {\r\n if (p.toLowerCase() === option.toLowerCase()) {\r\n optionData = dataoptions[p];\r\n break;\r\n }\r\n }\r\n }\r\n importOption(option, optionData);\r\n }\r\n }\r\n $.extend(true, opts, userOptions);\r\n if (npt.dir === \"rtl\" || opts.rightAlign) {\r\n npt.style.textAlign = \"right\";\r\n }\r\n if (npt.dir === \"rtl\" || opts.numericInput) {\r\n npt.dir = \"ltr\";\r\n npt.removeAttribute(\"dir\");\r\n opts.isRTL = true;\r\n }\r\n return Object.keys(userOptions).length;\r\n }\r\n if (typeof elems === \"string\") {\r\n elems = document.getElementById(elems) || document.querySelectorAll(elems);\r\n }\r\n elems = elems.nodeName ? [elems] : elems;\r\n $.each(elems, function (ndx, el) {\r\n var scopedOpts = $.extend(true, {}, that.opts);\r\n if (importAttributeOptions(el, scopedOpts, $.extend(true, {}, that.userOptions), that.dataAttribute)) {\r\n var maskset = generateMaskSet(scopedOpts, that.noMasksCache);\r\n if (maskset !== undefined) {\r\n if (el.inputmask !== undefined) {\r\n el.inputmask.opts.autoUnmask = true;\r\n el.inputmask.remove();\r\n }\r\n el.inputmask = new Inputmask(undefined, undefined, true);\r\n el.inputmask.opts = scopedOpts;\r\n el.inputmask.noMasksCache = that.noMasksCache;\r\n el.inputmask.userOptions = $.extend(true, {}, that.userOptions);\r\n el.inputmask.isRTL = scopedOpts.isRTL || scopedOpts.numericInput;\r\n el.inputmask.el = el;\r\n el.inputmask.maskset = maskset;\r\n $.data(el, \"_inputmask_opts\", scopedOpts);\r\n maskScope.call(el.inputmask, {\r\n action: \"mask\"\r\n });\r\n }\r\n }\r\n });\r\n return elems && elems[0] ? elems[0].inputmask || this : this;\r\n },\r\n option: function option(options, noremask) {\r\n if (typeof options === \"string\") {\r\n return this.opts[options];\r\n } else if ((typeof options === \"undefined\" ? \"undefined\" : _typeof(options)) === \"object\") {\r\n $.extend(this.userOptions, options);\r\n if (this.el && noremask !== true) {\r\n this.mask(this.el);\r\n }\r\n return this;\r\n }\r\n },\r\n unmaskedvalue: function unmaskedvalue(value) {\r\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\r\n return maskScope.call(this, {\r\n action: \"unmaskedvalue\",\r\n value: value\r\n });\r\n },\r\n remove: function remove() {\r\n return maskScope.call(this, {\r\n action: \"remove\"\r\n });\r\n },\r\n getemptymask: function getemptymask() {\r\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\r\n return maskScope.call(this, {\r\n action: \"getemptymask\"\r\n });\r\n },\r\n hasMaskedValue: function hasMaskedValue() {\r\n return !this.opts.autoUnmask;\r\n },\r\n isComplete: function isComplete() {\r\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\r\n return maskScope.call(this, {\r\n action: \"isComplete\"\r\n });\r\n },\r\n getmetadata: function getmetadata() {\r\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\r\n return maskScope.call(this, {\r\n action: \"getmetadata\"\r\n });\r\n },\r\n isValid: function isValid(value) {\r\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\r\n return maskScope.call(this, {\r\n action: \"isValid\",\r\n value: value\r\n });\r\n },\r\n format: function format(value, metadata) {\r\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\r\n return maskScope.call(this, {\r\n action: \"format\",\r\n value: value,\r\n metadata: metadata\r\n });\r\n },\r\n setValue: function setValue(value) {\r\n if (this.el) {\r\n $(this.el).trigger(\"setvalue\", [value]);\r\n }\r\n },\r\n analyseMask: function analyseMask(mask, regexMask, opts) {\r\n var tokenizer = /(?:[?*+]|\\{[0-9\\+\\*]+(?:,[0-9\\+\\*]*)?(?:\\|[0-9\\+\\*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, regexTokenizer = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g, escaped = false, currentToken = new MaskToken(), match, m, openenings = [], maskTokens = [], openingToken, currentOpeningToken, alternator, lastMatch, groupToken;\r\n function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {\r\n this.matches = [];\r\n this.openGroup = isGroup || false;\r\n this.alternatorGroup = false;\r\n this.isGroup = isGroup || false;\r\n this.isOptional = isOptional || false;\r\n this.isQuantifier = isQuantifier || false;\r\n this.isAlternator = isAlternator || false;\r\n this.quantifier = {\r\n min: 1,\r\n max: 1\r\n };\r\n }\r\n function insertTestDefinition(mtoken, element, position) {\r\n position = position !== undefined ? position : mtoken.matches.length;\r\n var prevMatch = mtoken.matches[position - 1];\r\n if (regexMask) {\r\n if (element.indexOf(\"[\") === 0 || escaped && /\\\\d|\\\\s|\\\\w]/i.test(element) || element === \".\") {\r\n mtoken.matches.splice(position++, 0, {\r\n fn: new RegExp(element, opts.casing ? \"i\" : \"\"),\r\n optionality: false,\r\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== element,\r\n casing: null,\r\n def: element,\r\n placeholder: undefined,\r\n nativeDef: element\r\n });\r\n } else {\r\n if (escaped) element = element[element.length - 1];\r\n $.each(element.split(\"\"), function (ndx, lmnt) {\r\n prevMatch = mtoken.matches[position - 1];\r\n mtoken.matches.splice(position++, 0, {\r\n fn: null,\r\n optionality: false,\r\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== lmnt && prevMatch.fn !== null,\r\n casing: null,\r\n def: opts.staticDefinitionSymbol || lmnt,\r\n placeholder: opts.staticDefinitionSymbol !== undefined ? lmnt : undefined,\r\n nativeDef: (escaped ? \"'\" : \"\") + lmnt\r\n });\r\n });\r\n }\r\n escaped = false;\r\n } else {\r\n var maskdef = (opts.definitions ? opts.definitions[element] : undefined) || Inputmask.prototype.definitions[element];\r\n if (maskdef && !escaped) {\r\n mtoken.matches.splice(position++, 0, {\r\n fn: maskdef.validator ? typeof maskdef.validator == \"string\" ? new RegExp(maskdef.validator, opts.casing ? \"i\" : \"\") : new function () {\r\n this.test = maskdef.validator;\r\n }() : new RegExp(\".\"),\r\n optionality: false,\r\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== (maskdef.definitionSymbol || element),\r\n casing: maskdef.casing,\r\n def: maskdef.definitionSymbol || element,\r\n placeholder: maskdef.placeholder,\r\n nativeDef: element\r\n });\r\n } else {\r\n mtoken.matches.splice(position++, 0, {\r\n fn: null,\r\n optionality: false,\r\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== element && prevMatch.fn !== null,\r\n casing: null,\r\n def: opts.staticDefinitionSymbol || element,\r\n placeholder: opts.staticDefinitionSymbol !== undefined ? element : undefined,\r\n nativeDef: (escaped ? \"'\" : \"\") + element\r\n });\r\n escaped = false;\r\n }\r\n }\r\n }\r\n function verifyGroupMarker(maskToken) {\r\n if (maskToken && maskToken.matches) {\r\n $.each(maskToken.matches, function (ndx, token) {\r\n var nextToken = maskToken.matches[ndx + 1];\r\n if ((nextToken === undefined || nextToken.matches === undefined || nextToken.isQuantifier === false) && token && token.isGroup) {\r\n token.isGroup = false;\r\n if (!regexMask) {\r\n insertTestDefinition(token, opts.groupmarker[0], 0);\r\n if (token.openGroup !== true) {\r\n insertTestDefinition(token, opts.groupmarker[1]);\r\n }\r\n }\r\n }\r\n verifyGroupMarker(token);\r\n });\r\n }\r\n }\r\n function defaultCase() {\r\n if (openenings.length > 0) {\r\n currentOpeningToken = openenings[openenings.length - 1];\r\n insertTestDefinition(currentOpeningToken, m);\r\n if (currentOpeningToken.isAlternator) {\r\n alternator = openenings.pop();\r\n for (var mndx = 0; mndx < alternator.matches.length; mndx++) {\r\n if (alternator.matches[mndx].isGroup) alternator.matches[mndx].isGroup = false;\r\n }\r\n if (openenings.length > 0) {\r\n currentOpeningToken = openenings[openenings.length - 1];\r\n currentOpeningToken.matches.push(alternator);\r\n } else {\r\n currentToken.matches.push(alternator);\r\n }\r\n }\r\n } else {\r\n insertTestDefinition(currentToken, m);\r\n }\r\n }\r\n function reverseTokens(maskToken) {\r\n function reverseStatic(st) {\r\n if (st === opts.optionalmarker[0]) st = opts.optionalmarker[1]; else if (st === opts.optionalmarker[1]) st = opts.optionalmarker[0]; else if (st === opts.groupmarker[0]) st = opts.groupmarker[1]; else if (st === opts.groupmarker[1]) st = opts.groupmarker[0];\r\n return st;\r\n }\r\n maskToken.matches = maskToken.matches.reverse();\r\n for (var match in maskToken.matches) {\r\n if (maskToken.matches.hasOwnProperty(match)) {\r\n var intMatch = parseInt(match);\r\n if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {\r\n var qt = maskToken.matches[match];\r\n maskToken.matches.splice(match, 1);\r\n maskToken.matches.splice(intMatch + 1, 0, qt);\r\n }\r\n if (maskToken.matches[match].matches !== undefined) {\r\n maskToken.matches[match] = reverseTokens(maskToken.matches[match]);\r\n } else {\r\n maskToken.matches[match] = reverseStatic(maskToken.matches[match]);\r\n }\r\n }\r\n }\r\n return maskToken;\r\n }\r\n function groupify(matches) {\r\n var groupToken = new MaskToken(true);\r\n groupToken.openGroup = false;\r\n groupToken.matches = matches;\r\n return groupToken;\r\n }\r\n if (regexMask) {\r\n opts.optionalmarker[0] = undefined;\r\n opts.optionalmarker[1] = undefined;\r\n }\r\n while (match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask)) {\r\n m = match[0];\r\n if (regexMask) {\r\n switch (m.charAt(0)) {\r\n case \"?\":\r\n m = \"{0,1}\";\r\n break;\r\n\r\n case \"+\":\r\n case \"*\":\r\n m = \"{\" + m + \"}\";\r\n break;\r\n }\r\n }\r\n if (escaped) {\r\n defaultCase();\r\n continue;\r\n }\r\n switch (m.charAt(0)) {\r\n case \"(?=\":\r\n break;\r\n\r\n case \"(?!\":\r\n break;\r\n\r\n case \"(?<=\":\r\n break;\r\n\r\n case \"(? 0) {\r\n currentOpeningToken = openenings[openenings.length - 1];\r\n currentOpeningToken.matches.push(openingToken);\r\n if (currentOpeningToken.isAlternator) {\r\n alternator = openenings.pop();\r\n for (var mndx = 0; mndx < alternator.matches.length; mndx++) {\r\n alternator.matches[mndx].isGroup = false;\r\n alternator.matches[mndx].alternatorGroup = false;\r\n }\r\n if (openenings.length > 0) {\r\n currentOpeningToken = openenings[openenings.length - 1];\r\n currentOpeningToken.matches.push(alternator);\r\n } else {\r\n currentToken.matches.push(alternator);\r\n }\r\n }\r\n } else {\r\n currentToken.matches.push(openingToken);\r\n }\r\n } else defaultCase();\r\n break;\r\n\r\n case opts.optionalmarker[0]:\r\n openenings.push(new MaskToken(false, true));\r\n break;\r\n\r\n case opts.groupmarker[0]:\r\n openenings.push(new MaskToken(true));\r\n break;\r\n\r\n case opts.quantifiermarker[0]:\r\n var quantifier = new MaskToken(false, false, true);\r\n m = m.replace(/[{}]/g, \"\");\r\n var mqj = m.split(\"|\"), mq = mqj[0].split(\",\"), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = mq.length === 1 ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);\r\n if (mq0 === \"*\" || mq0 === \"+\") {\r\n mq0 = mq1 === \"*\" ? 0 : 1;\r\n }\r\n quantifier.quantifier = {\r\n min: mq0,\r\n max: mq1,\r\n jit: mqj[1]\r\n };\r\n var matches = openenings.length > 0 ? openenings[openenings.length - 1].matches : currentToken.matches;\r\n match = matches.pop();\r\n if (match.isAlternator) {\r\n matches.push(match);\r\n matches = match.matches;\r\n var groupToken = new MaskToken(true);\r\n var tmpMatch = matches.pop();\r\n matches.push(groupToken);\r\n matches = groupToken.matches;\r\n match = tmpMatch;\r\n }\r\n if (!match.isGroup) {\r\n match = groupify([match]);\r\n }\r\n matches.push(match);\r\n matches.push(quantifier);\r\n break;\r\n\r\n case opts.alternatormarker:\r\n var groupQuantifier = function groupQuantifier(matches) {\r\n var lastMatch = matches.pop();\r\n if (lastMatch.isQuantifier) {\r\n lastMatch = groupify([matches.pop(), lastMatch]);\r\n }\r\n return lastMatch;\r\n };\r\n if (openenings.length > 0) {\r\n currentOpeningToken = openenings[openenings.length - 1];\r\n var subToken = currentOpeningToken.matches[currentOpeningToken.matches.length - 1];\r\n if (currentOpeningToken.openGroup && (subToken.matches === undefined || subToken.isGroup === false && subToken.isAlternator === false)) {\r\n lastMatch = openenings.pop();\r\n } else {\r\n lastMatch = groupQuantifier(currentOpeningToken.matches);\r\n }\r\n } else {\r\n lastMatch = groupQuantifier(currentToken.matches);\r\n }\r\n if (lastMatch.isAlternator) {\r\n openenings.push(lastMatch);\r\n } else {\r\n if (lastMatch.alternatorGroup) {\r\n alternator = openenings.pop();\r\n lastMatch.alternatorGroup = false;\r\n } else {\r\n alternator = new MaskToken(false, false, false, true);\r\n }\r\n alternator.matches.push(lastMatch);\r\n openenings.push(alternator);\r\n if (lastMatch.openGroup) {\r\n lastMatch.openGroup = false;\r\n var alternatorGroup = new MaskToken(true);\r\n alternatorGroup.alternatorGroup = true;\r\n openenings.push(alternatorGroup);\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n defaultCase();\r\n }\r\n }\r\n while (openenings.length > 0) {\r\n openingToken = openenings.pop();\r\n currentToken.matches.push(openingToken);\r\n }\r\n if (currentToken.matches.length > 0) {\r\n verifyGroupMarker(currentToken);\r\n maskTokens.push(currentToken);\r\n }\r\n if (opts.numericInput || opts.isRTL) {\r\n reverseTokens(maskTokens[0]);\r\n }\r\n return maskTokens;\r\n }\r\n };\r\n Inputmask.extendDefaults = function (options) {\r\n $.extend(true, Inputmask.prototype.defaults, options);\r\n };\r\n Inputmask.extendDefinitions = function (definition) {\r\n $.extend(true, Inputmask.prototype.definitions, definition);\r\n };\r\n Inputmask.extendAliases = function (alias) {\r\n $.extend(true, Inputmask.prototype.aliases, alias);\r\n };\r\n Inputmask.format = function (value, options, metadata) {\r\n return Inputmask(options).format(value, metadata);\r\n };\r\n Inputmask.unmask = function (value, options) {\r\n return Inputmask(options).unmaskedvalue(value);\r\n };\r\n Inputmask.isValid = function (value, options) {\r\n return Inputmask(options).isValid(value);\r\n };\r\n Inputmask.remove = function (elems) {\r\n if (typeof elems === \"string\") {\r\n elems = document.getElementById(elems) || document.querySelectorAll(elems);\r\n }\r\n elems = elems.nodeName ? [elems] : elems;\r\n $.each(elems, function (ndx, el) {\r\n if (el.inputmask) el.inputmask.remove();\r\n });\r\n };\r\n Inputmask.setValue = function (elems, value) {\r\n if (typeof elems === \"string\") {\r\n elems = document.getElementById(elems) || document.querySelectorAll(elems);\r\n }\r\n elems = elems.nodeName ? [elems] : elems;\r\n $.each(elems, function (ndx, el) {\r\n if (el.inputmask) el.inputmask.setValue(value); else $(el).trigger(\"setvalue\", [value]);\r\n });\r\n };\r\n Inputmask.escapeRegex = function (str) {\r\n var specials = [\"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\"];\r\n return str.replace(new RegExp(\"(\\\\\" + specials.join(\"|\\\\\") + \")\", \"gim\"), \"\\\\$1\");\r\n };\r\n Inputmask.keyCode = {\r\n BACKSPACE: 8,\r\n BACKSPACE_SAFARI: 127,\r\n DELETE: 46,\r\n DOWN: 40,\r\n END: 35,\r\n ENTER: 13,\r\n ESCAPE: 27,\r\n HOME: 36,\r\n INSERT: 45,\r\n LEFT: 37,\r\n PAGE_DOWN: 34,\r\n PAGE_UP: 33,\r\n RIGHT: 39,\r\n SPACE: 32,\r\n TAB: 9,\r\n UP: 38,\r\n X: 88,\r\n CONTROL: 17\r\n };\r\n Inputmask.dependencyLib = $;\r\n function resolveAlias(aliasStr, options, opts) {\r\n var aliasDefinition = Inputmask.prototype.aliases[aliasStr];\r\n if (aliasDefinition) {\r\n if (aliasDefinition.alias) resolveAlias(aliasDefinition.alias, undefined, opts);\r\n $.extend(true, opts, aliasDefinition);\r\n $.extend(true, opts, options);\r\n return true;\r\n } else if (opts.mask === null) {\r\n opts.mask = aliasStr;\r\n }\r\n return false;\r\n }\r\n function generateMaskSet(opts, nocache) {\r\n function generateMask(mask, metadata, opts) {\r\n var regexMask = false;\r\n if (mask === null || mask === \"\") {\r\n regexMask = opts.regex !== null;\r\n if (regexMask) {\r\n mask = opts.regex;\r\n mask = mask.replace(/^(\\^)(.*)(\\$)$/, \"$2\");\r\n } else {\r\n regexMask = true;\r\n mask = \".*\";\r\n }\r\n }\r\n if (mask.length === 1 && opts.greedy === false && opts.repeat !== 0) {\r\n opts.placeholder = \"\";\r\n }\r\n if (opts.repeat > 0 || opts.repeat === \"*\" || opts.repeat === \"+\") {\r\n var repeatStart = opts.repeat === \"*\" ? 0 : opts.repeat === \"+\" ? 1 : opts.repeat;\r\n mask = opts.groupmarker[0] + mask + opts.groupmarker[1] + opts.quantifiermarker[0] + repeatStart + \",\" + opts.repeat + opts.quantifiermarker[1];\r\n }\r\n var masksetDefinition, maskdefKey = regexMask ? \"regex_\" + opts.regex : opts.numericInput ? mask.split(\"\").reverse().join(\"\") : mask;\r\n if (Inputmask.prototype.masksCache[maskdefKey] === undefined || nocache === true) {\r\n masksetDefinition = {\r\n mask: mask,\r\n maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),\r\n validPositions: {},\r\n _buffer: undefined,\r\n buffer: undefined,\r\n tests: {},\r\n excludes: {},\r\n metadata: metadata,\r\n maskLength: undefined,\r\n jitOffset: {}\r\n };\r\n if (nocache !== true) {\r\n Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition;\r\n masksetDefinition = $.extend(true, {}, Inputmask.prototype.masksCache[maskdefKey]);\r\n }\r\n } else masksetDefinition = $.extend(true, {}, Inputmask.prototype.masksCache[maskdefKey]);\r\n return masksetDefinition;\r\n }\r\n var ms;\r\n if ($.isFunction(opts.mask)) {\r\n opts.mask = opts.mask(opts);\r\n }\r\n if ($.isArray(opts.mask)) {\r\n if (opts.mask.length > 1) {\r\n if (opts.keepStatic === null) {\r\n opts.keepStatic = \"auto\";\r\n for (var i = 0; i < opts.mask.length; i++) {\r\n if (opts.mask[i].charAt(0) !== opts.mask[0].charAt(0)) {\r\n opts.keepStatic = true;\r\n break;\r\n }\r\n }\r\n }\r\n var altMask = opts.groupmarker[0];\r\n $.each(opts.isRTL ? opts.mask.reverse() : opts.mask, function (ndx, msk) {\r\n if (altMask.length > 1) {\r\n altMask += opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0];\r\n }\r\n if (msk.mask !== undefined && !$.isFunction(msk.mask)) {\r\n altMask += msk.mask;\r\n } else {\r\n altMask += msk;\r\n }\r\n });\r\n altMask += opts.groupmarker[1];\r\n return generateMask(altMask, opts.mask, opts);\r\n } else opts.mask = opts.mask.pop();\r\n }\r\n if (opts.mask && opts.mask.mask !== undefined && !$.isFunction(opts.mask.mask)) {\r\n ms = generateMask(opts.mask.mask, opts.mask, opts);\r\n } else {\r\n ms = generateMask(opts.mask, opts.mask, opts);\r\n }\r\n return ms;\r\n }\r\n function isInputEventSupported(eventName) {\r\n var el = document.createElement(\"input\"), evName = \"on\" + eventName, isSupported = evName in el;\r\n if (!isSupported) {\r\n el.setAttribute(evName, \"return;\");\r\n isSupported = typeof el[evName] === \"function\";\r\n }\r\n el = null;\r\n return isSupported;\r\n }\r\n function maskScope(actionObj, maskset, opts) {\r\n maskset = maskset || this.maskset;\r\n opts = opts || this.opts;\r\n var inputmask = this, el = this.el, isRTL = this.isRTL, undoValue, $el, skipKeyPressEvent = false, skipInputEvent = false, ignorable = false, maxLength, mouseEnter = false, colorMask, originalPlaceholder;\r\n function getMaskTemplate(baseOnInput, minimalPos, includeMode, noJit, clearOptionalTail) {\r\n var greedy = opts.greedy;\r\n if (clearOptionalTail) opts.greedy = false;\r\n minimalPos = minimalPos || 0;\r\n var maskTemplate = [], ndxIntlzr, pos = 0, test, testPos, lvp = getLastValidPosition();\r\n do {\r\n if (baseOnInput === true && getMaskSet().validPositions[pos]) {\r\n testPos = clearOptionalTail && getMaskSet().validPositions[pos].match.optionality === true && getMaskSet().validPositions[pos + 1] === undefined && (getMaskSet().validPositions[pos].generatedInput === true || getMaskSet().validPositions[pos].input == opts.skipOptionalPartCharacter && pos > 0) ? determineTestTemplate(pos, getTests(pos, ndxIntlzr, pos - 1)) : getMaskSet().validPositions[pos];\r\n test = testPos.match;\r\n ndxIntlzr = testPos.locator.slice();\r\n maskTemplate.push(includeMode === true ? testPos.input : includeMode === false ? test.nativeDef : getPlaceholder(pos, test));\r\n } else {\r\n testPos = getTestTemplate(pos, ndxIntlzr, pos - 1);\r\n test = testPos.match;\r\n ndxIntlzr = testPos.locator.slice();\r\n var jitMasking = noJit === true ? false : opts.jitMasking !== false ? opts.jitMasking : test.jit;\r\n if (jitMasking === false || jitMasking === undefined || typeof jitMasking === \"number\" && isFinite(jitMasking) && jitMasking > pos) {\r\n maskTemplate.push(includeMode === false ? test.nativeDef : getPlaceholder(pos, test));\r\n }\r\n }\r\n if (opts.keepStatic === \"auto\") {\r\n if (test.newBlockMarker && test.fn !== null) {\r\n opts.keepStatic = pos - 1;\r\n }\r\n }\r\n pos++;\r\n } while ((maxLength === undefined || pos < maxLength) && (test.fn !== null || test.def !== \"\") || minimalPos > pos);\r\n if (maskTemplate[maskTemplate.length - 1] === \"\") {\r\n maskTemplate.pop();\r\n }\r\n if (includeMode !== false || getMaskSet().maskLength === undefined) getMaskSet().maskLength = pos - 1;\r\n opts.greedy = greedy;\r\n return maskTemplate;\r\n }\r\n function getMaskSet() {\r\n return maskset;\r\n }\r\n function resetMaskSet(soft) {\r\n var maskset = getMaskSet();\r\n maskset.buffer = undefined;\r\n if (soft !== true) {\r\n maskset.validPositions = {};\r\n maskset.p = 0;\r\n }\r\n }\r\n function getLastValidPosition(closestTo, strict, validPositions) {\r\n var before = -1, after = -1, valids = validPositions || getMaskSet().validPositions;\r\n if (closestTo === undefined) closestTo = -1;\r\n for (var posNdx in valids) {\r\n var psNdx = parseInt(posNdx);\r\n if (valids[psNdx] && (strict || valids[psNdx].generatedInput !== true)) {\r\n if (psNdx <= closestTo) before = psNdx;\r\n if (psNdx >= closestTo) after = psNdx;\r\n }\r\n }\r\n return before === -1 || before == closestTo ? after : after == -1 ? before : closestTo - before < after - closestTo ? before : after;\r\n }\r\n function getDecisionTaker(tst) {\r\n var decisionTaker = tst.locator[tst.alternation];\r\n if (typeof decisionTaker == \"string\" && decisionTaker.length > 0) {\r\n decisionTaker = decisionTaker.split(\",\")[0];\r\n }\r\n return decisionTaker !== undefined ? decisionTaker.toString() : \"\";\r\n }\r\n function getLocator(tst, align) {\r\n var locator = (tst.alternation != undefined ? tst.mloc[getDecisionTaker(tst)] : tst.locator).join(\"\");\r\n if (locator !== \"\") while (locator.length < align) {\r\n locator += \"0\";\r\n }\r\n return locator;\r\n }\r\n function determineTestTemplate(pos, tests) {\r\n pos = pos > 0 ? pos - 1 : 0;\r\n var altTest = getTest(pos), targetLocator = getLocator(altTest), tstLocator, closest, bestMatch;\r\n for (var ndx = 0; ndx < tests.length; ndx++) {\r\n var tst = tests[ndx];\r\n tstLocator = getLocator(tst, targetLocator.length);\r\n var distance = Math.abs(tstLocator - targetLocator);\r\n if (closest === undefined || tstLocator !== \"\" && distance < closest || bestMatch && !opts.greedy && bestMatch.match.optionality && bestMatch.match.newBlockMarker === \"master\" && (!tst.match.optionality || !tst.match.newBlockMarker) || bestMatch && bestMatch.match.optionalQuantifier && !tst.match.optionalQuantifier) {\r\n closest = distance;\r\n bestMatch = tst;\r\n }\r\n }\r\n return bestMatch;\r\n }\r\n function getTestTemplate(pos, ndxIntlzr, tstPs) {\r\n return getMaskSet().validPositions[pos] || determineTestTemplate(pos, getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs));\r\n }\r\n function getTest(pos, tests) {\r\n if (getMaskSet().validPositions[pos]) {\r\n return getMaskSet().validPositions[pos];\r\n }\r\n return (tests || getTests(pos))[0];\r\n }\r\n function positionCanMatchDefinition(pos, def) {\r\n var valid = false, tests = getTests(pos);\r\n for (var tndx = 0; tndx < tests.length; tndx++) {\r\n if (tests[tndx].match && tests[tndx].match.def === def) {\r\n valid = true;\r\n break;\r\n }\r\n }\r\n return valid;\r\n }\r\n function getTests(pos, ndxIntlzr, tstPs) {\r\n var maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [0], matches = [], insertStop = false, latestMatch, cacheDependency = ndxIntlzr ? ndxIntlzr.join(\"\") : \"\";\r\n function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {\r\n function handleMatch(match, loopNdx, quantifierRecurse) {\r\n function isFirstMatch(latestMatch, tokenGroup) {\r\n var firstMatch = $.inArray(latestMatch, tokenGroup.matches) === 0;\r\n if (!firstMatch) {\r\n $.each(tokenGroup.matches, function (ndx, match) {\r\n if (match.isQuantifier === true) firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]); else if (match.hasOwnProperty(\"matches\")) firstMatch = isFirstMatch(latestMatch, match);\r\n if (firstMatch) return false;\r\n });\r\n }\r\n return firstMatch;\r\n }\r\n function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {\r\n var bestMatch, indexPos;\r\n if (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) {\r\n $.each(getMaskSet().tests[pos] || [getMaskSet().validPositions[pos]], function (ndx, lmnt) {\r\n if (lmnt.mloc[alternateNdx]) {\r\n bestMatch = lmnt;\r\n return false;\r\n }\r\n var alternation = targetAlternation !== undefined ? targetAlternation : lmnt.alternation, ndxPos = lmnt.locator[alternation] !== undefined ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1;\r\n if ((indexPos === undefined || ndxPos < indexPos) && ndxPos !== -1) {\r\n bestMatch = lmnt;\r\n indexPos = ndxPos;\r\n }\r\n });\r\n }\r\n if (bestMatch) {\r\n var bestMatchAltIndex = bestMatch.locator[bestMatch.alternation];\r\n var locator = bestMatch.mloc[alternateNdx] || bestMatch.mloc[bestMatchAltIndex] || bestMatch.locator;\r\n return locator.slice((targetAlternation !== undefined ? targetAlternation : bestMatch.alternation) + 1);\r\n } else {\r\n return targetAlternation !== undefined ? resolveNdxInitializer(pos, alternateNdx) : undefined;\r\n }\r\n }\r\n function isSubsetOf(source, target) {\r\n function expand(pattern) {\r\n var expanded = [], start, end;\r\n for (var i = 0, l = pattern.length; i < l; i++) {\r\n if (pattern.charAt(i) === \"-\") {\r\n end = pattern.charCodeAt(i + 1);\r\n while (++start < end) {\r\n expanded.push(String.fromCharCode(start));\r\n }\r\n } else {\r\n start = pattern.charCodeAt(i);\r\n expanded.push(pattern.charAt(i));\r\n }\r\n }\r\n return expanded.join(\"\");\r\n }\r\n if (opts.regex && source.match.fn !== null && target.match.fn !== null) {\r\n return expand(target.match.def.replace(/[\\[\\]]/g, \"\")).indexOf(expand(source.match.def.replace(/[\\[\\]]/g, \"\"))) !== -1;\r\n }\r\n return source.match.def === target.match.nativeDef;\r\n }\r\n function staticCanMatchDefinition(source, target) {\r\n var sloc = source.locator.slice(source.alternation).join(\"\"), tloc = target.locator.slice(target.alternation).join(\"\"), canMatch = sloc == tloc;\r\n canMatch = canMatch && source.match.fn === null && target.match.fn !== null ? target.match.fn.test(source.match.def, getMaskSet(), pos, false, opts, false) : false;\r\n return canMatch;\r\n }\r\n function setMergeLocators(targetMatch, altMatch) {\r\n if (altMatch === undefined || targetMatch.alternation === altMatch.alternation && targetMatch.locator[targetMatch.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) === -1) {\r\n targetMatch.mloc = targetMatch.mloc || {};\r\n var locNdx = targetMatch.locator[targetMatch.alternation];\r\n if (locNdx === undefined) targetMatch.alternation = undefined; else {\r\n if (typeof locNdx === \"string\") locNdx = locNdx.split(\",\")[0];\r\n if (targetMatch.mloc[locNdx] === undefined) targetMatch.mloc[locNdx] = targetMatch.locator.slice();\r\n if (altMatch !== undefined) {\r\n for (var ndx in altMatch.mloc) {\r\n if (typeof ndx === \"string\") ndx = ndx.split(\",\")[0];\r\n if (targetMatch.mloc[ndx] === undefined) targetMatch.mloc[ndx] = altMatch.mloc[ndx];\r\n }\r\n targetMatch.locator[targetMatch.alternation] = Object.keys(targetMatch.mloc).join(\",\");\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n if (testPos > 500 && quantifierRecurse !== undefined) {\r\n throw \"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \" + getMaskSet().mask;\r\n }\r\n if (testPos === pos && match.matches === undefined) {\r\n matches.push({\r\n match: match,\r\n locator: loopNdx.reverse(),\r\n cd: cacheDependency,\r\n mloc: {}\r\n });\r\n return true;\r\n } else if (match.matches !== undefined) {\r\n if (match.isGroup && quantifierRecurse !== match) {\r\n match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx, quantifierRecurse);\r\n if (match) return true;\r\n } else if (match.isOptional) {\r\n var optionalToken = match;\r\n match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse);\r\n if (match) {\r\n $.each(matches, function (ndx, mtch) {\r\n mtch.match.optionality = true;\r\n });\r\n latestMatch = matches[matches.length - 1].match;\r\n if (quantifierRecurse === undefined && isFirstMatch(latestMatch, optionalToken)) {\r\n insertStop = true;\r\n testPos = pos;\r\n } else return true;\r\n }\r\n } else if (match.isAlternator) {\r\n var alternateToken = match, malternateMatches = [], maltMatches, currentMatches = matches.slice(), loopNdxCnt = loopNdx.length;\r\n var altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1;\r\n if (altIndex === -1 || typeof altIndex === \"string\") {\r\n var currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [], amndx;\r\n if (typeof altIndex == \"string\") {\r\n altIndexArr = altIndex.split(\",\");\r\n } else {\r\n for (amndx = 0; amndx < alternateToken.matches.length; amndx++) {\r\n altIndexArr.push(amndx.toString());\r\n }\r\n }\r\n if (getMaskSet().excludes[pos]) {\r\n var altIndexArrClone = altIndexArr.slice();\r\n for (var i = 0, el = getMaskSet().excludes[pos].length; i < el; i++) {\r\n altIndexArr.splice(altIndexArr.indexOf(getMaskSet().excludes[pos][i].toString()), 1);\r\n }\r\n if (altIndexArr.length === 0) {\r\n getMaskSet().excludes[pos] = undefined;\r\n altIndexArr = altIndexArrClone;\r\n }\r\n }\r\n if (opts.keepStatic === true || isFinite(parseInt(opts.keepStatic)) && currentPos >= opts.keepStatic) altIndexArr = altIndexArr.slice(0, 1);\r\n var unMatchedAlternation = false;\r\n for (var ndx = 0; ndx < altIndexArr.length; ndx++) {\r\n amndx = parseInt(altIndexArr[ndx]);\r\n matches = [];\r\n ndxInitializer = typeof altIndex === \"string\" ? resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice() : ndxInitializerClone.slice();\r\n if (alternateToken.matches[amndx] && handleMatch(alternateToken.matches[amndx], [amndx].concat(loopNdx), quantifierRecurse)) match = true; else if (ndx === 0) {\r\n unMatchedAlternation = true;\r\n }\r\n maltMatches = matches.slice();\r\n testPos = currentPos;\r\n matches = [];\r\n for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {\r\n var altMatch = maltMatches[ndx1], dropMatch = false;\r\n altMatch.match.jit = altMatch.match.jit || unMatchedAlternation;\r\n altMatch.alternation = altMatch.alternation || loopNdxCnt;\r\n setMergeLocators(altMatch);\r\n for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {\r\n var altMatch2 = malternateMatches[ndx2];\r\n if (typeof altIndex !== \"string\" || altMatch.alternation !== undefined && $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr) !== -1) {\r\n if (altMatch.match.nativeDef === altMatch2.match.nativeDef) {\r\n dropMatch = true;\r\n setMergeLocators(altMatch2, altMatch);\r\n break;\r\n } else if (isSubsetOf(altMatch, altMatch2)) {\r\n if (setMergeLocators(altMatch, altMatch2)) {\r\n dropMatch = true;\r\n malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch);\r\n }\r\n break;\r\n } else if (isSubsetOf(altMatch2, altMatch)) {\r\n setMergeLocators(altMatch2, altMatch);\r\n break;\r\n } else if (staticCanMatchDefinition(altMatch, altMatch2)) {\r\n if (setMergeLocators(altMatch, altMatch2)) {\r\n dropMatch = true;\r\n malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n if (!dropMatch) {\r\n malternateMatches.push(altMatch);\r\n }\r\n }\r\n }\r\n matches = currentMatches.concat(malternateMatches);\r\n testPos = pos;\r\n insertStop = matches.length > 0;\r\n match = malternateMatches.length > 0;\r\n ndxInitializer = ndxInitializerClone.slice();\r\n } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [altIndex].concat(loopNdx), quantifierRecurse);\r\n if (match) return true;\r\n } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) {\r\n var qt = match;\r\n for (var qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) {\r\n var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1];\r\n match = handleMatch(tokenGroup, [qndx].concat(loopNdx), tokenGroup);\r\n if (match) {\r\n latestMatch = matches[matches.length - 1].match;\r\n latestMatch.optionalQuantifier = qndx >= qt.quantifier.min;\r\n latestMatch.jit = (qndx || 1) * tokenGroup.matches.indexOf(latestMatch) >= qt.quantifier.jit;\r\n if (latestMatch.optionalQuantifier && isFirstMatch(latestMatch, tokenGroup)) {\r\n insertStop = true;\r\n testPos = pos;\r\n break;\r\n }\r\n if (latestMatch.jit) {\r\n getMaskSet().jitOffset[pos] = tokenGroup.matches.indexOf(latestMatch);\r\n }\r\n return true;\r\n }\r\n }\r\n } else {\r\n match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse);\r\n if (match) return true;\r\n }\r\n } else {\r\n testPos++;\r\n }\r\n }\r\n for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) {\r\n if (maskToken.matches[tndx].isQuantifier !== true) {\r\n var match = handleMatch(maskToken.matches[tndx], [tndx].concat(loopNdx), quantifierRecurse);\r\n if (match && testPos === pos) {\r\n return match;\r\n } else if (testPos > pos) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n function mergeLocators(pos, tests) {\r\n var locator = [];\r\n if (!$.isArray(tests)) tests = [tests];\r\n if (tests.length > 0) {\r\n if (tests[0].alternation === undefined) {\r\n locator = determineTestTemplate(pos, tests.slice()).locator.slice();\r\n if (locator.length === 0) locator = tests[0].locator.slice();\r\n } else {\r\n $.each(tests, function (ndx, tst) {\r\n if (tst.def !== \"\") {\r\n if (locator.length === 0) locator = tst.locator.slice(); else {\r\n for (var i = 0; i < locator.length; i++) {\r\n if (tst.locator[i] && locator[i].toString().indexOf(tst.locator[i]) === -1) {\r\n locator[i] += \",\" + tst.locator[i];\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n return locator;\r\n }\r\n if (pos > -1) {\r\n if (ndxIntlzr === undefined) {\r\n var previousPos = pos - 1, test;\r\n while ((test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) === undefined && previousPos > -1) {\r\n previousPos--;\r\n }\r\n if (test !== undefined && previousPos > -1) {\r\n ndxInitializer = mergeLocators(previousPos, test);\r\n cacheDependency = ndxInitializer.join(\"\");\r\n testPos = previousPos;\r\n }\r\n }\r\n if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) {\r\n return getMaskSet().tests[pos];\r\n }\r\n for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) {\r\n var match = resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [mtndx]);\r\n if (match && testPos === pos || testPos > pos) {\r\n break;\r\n }\r\n }\r\n }\r\n if (matches.length === 0 || insertStop) {\r\n matches.push({\r\n match: {\r\n fn: null,\r\n optionality: false,\r\n casing: null,\r\n def: \"\",\r\n placeholder: \"\"\r\n },\r\n locator: [],\r\n mloc: {},\r\n cd: cacheDependency\r\n });\r\n }\r\n if (ndxIntlzr !== undefined && getMaskSet().tests[pos]) {\r\n return $.extend(true, [], matches);\r\n }\r\n getMaskSet().tests[pos] = $.extend(true, [], matches);\r\n return getMaskSet().tests[pos];\r\n }\r\n function getBufferTemplate() {\r\n if (getMaskSet()._buffer === undefined) {\r\n getMaskSet()._buffer = getMaskTemplate(false, 1);\r\n if (getMaskSet().buffer === undefined) getMaskSet().buffer = getMaskSet()._buffer.slice();\r\n }\r\n return getMaskSet()._buffer;\r\n }\r\n function getBuffer(noCache) {\r\n if (getMaskSet().buffer === undefined || noCache === true) {\r\n getMaskSet().buffer = getMaskTemplate(true, getLastValidPosition(), true);\r\n if (getMaskSet()._buffer === undefined) getMaskSet()._buffer = getMaskSet().buffer.slice();\r\n }\r\n return getMaskSet().buffer;\r\n }\r\n function refreshFromBuffer(start, end, buffer) {\r\n var i, p;\r\n if (start === true) {\r\n resetMaskSet();\r\n start = 0;\r\n end = buffer.length;\r\n } else {\r\n for (i = start; i < end; i++) {\r\n delete getMaskSet().validPositions[i];\r\n }\r\n }\r\n p = start;\r\n for (i = start; i < end; i++) {\r\n resetMaskSet(true);\r\n if (buffer[i] !== opts.skipOptionalPartCharacter) {\r\n var valResult = isValid(p, buffer[i], true, true);\r\n if (valResult !== false) {\r\n resetMaskSet(true);\r\n p = valResult.caret !== undefined ? valResult.caret : valResult.pos + 1;\r\n }\r\n }\r\n }\r\n }\r\n function casing(elem, test, pos) {\r\n switch (opts.casing || test.casing) {\r\n case \"upper\":\r\n elem = elem.toUpperCase();\r\n break;\r\n\r\n case \"lower\":\r\n elem = elem.toLowerCase();\r\n break;\r\n\r\n case \"title\":\r\n var posBefore = getMaskSet().validPositions[pos - 1];\r\n if (pos === 0 || posBefore && posBefore.input === String.fromCharCode(Inputmask.keyCode.SPACE)) {\r\n elem = elem.toUpperCase();\r\n } else {\r\n elem = elem.toLowerCase();\r\n }\r\n break;\r\n\r\n default:\r\n if ($.isFunction(opts.casing)) {\r\n var args = Array.prototype.slice.call(arguments);\r\n args.push(getMaskSet().validPositions);\r\n elem = opts.casing.apply(this, args);\r\n }\r\n }\r\n return elem;\r\n }\r\n function checkAlternationMatch(altArr1, altArr2, na) {\r\n var altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = false, naArr = na !== undefined ? na.split(\",\") : [], naNdx;\r\n for (var i = 0; i < naArr.length; i++) {\r\n if ((naNdx = altArr1.indexOf(naArr[i])) !== -1) {\r\n altArr1.splice(naNdx, 1);\r\n }\r\n }\r\n for (var alndx = 0; alndx < altArr1.length; alndx++) {\r\n if ($.inArray(altArr1[alndx], altArrC) !== -1) {\r\n isMatch = true;\r\n break;\r\n }\r\n }\r\n return isMatch;\r\n }\r\n function alternate(pos, c, strict, fromSetValid, rAltPos) {\r\n var validPsClone = $.extend(true, {}, getMaskSet().validPositions), lastAlt, alternation, isValidRslt = false, altPos, prevAltPos, i, validPos, decisionPos, lAltPos = rAltPos !== undefined ? rAltPos : getLastValidPosition();\r\n if (lAltPos === -1 && rAltPos === undefined) {\r\n lastAlt = 0;\r\n prevAltPos = getTest(lastAlt);\r\n alternation = prevAltPos.alternation;\r\n } else {\r\n for (; lAltPos >= 0; lAltPos--) {\r\n altPos = getMaskSet().validPositions[lAltPos];\r\n if (altPos && altPos.alternation !== undefined) {\r\n if (prevAltPos && prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) {\r\n break;\r\n }\r\n lastAlt = lAltPos;\r\n alternation = getMaskSet().validPositions[lastAlt].alternation;\r\n prevAltPos = altPos;\r\n }\r\n }\r\n }\r\n if (alternation !== undefined) {\r\n decisionPos = parseInt(lastAlt);\r\n getMaskSet().excludes[decisionPos] = getMaskSet().excludes[decisionPos] || [];\r\n if (pos !== true) {\r\n getMaskSet().excludes[decisionPos].push(getDecisionTaker(prevAltPos));\r\n }\r\n var validInputsClone = [], staticInputsBeforePos = 0;\r\n for (i = decisionPos; i < getLastValidPosition(undefined, true) + 1; i++) {\r\n validPos = getMaskSet().validPositions[i];\r\n if (validPos && validPos.generatedInput !== true) {\r\n validInputsClone.push(validPos.input);\r\n } else if (i < pos) staticInputsBeforePos++;\r\n delete getMaskSet().validPositions[i];\r\n }\r\n while (getMaskSet().excludes[decisionPos] && getMaskSet().excludes[decisionPos].length < 10) {\r\n var posOffset = staticInputsBeforePos * -1, validInputs = validInputsClone.slice();\r\n getMaskSet().tests[decisionPos] = undefined;\r\n resetMaskSet(true);\r\n isValidRslt = true;\r\n while (validInputs.length > 0) {\r\n var input = validInputs.shift();\r\n if (!(isValidRslt = isValid(getLastValidPosition(undefined, true) + 1, input, false, fromSetValid, true))) {\r\n break;\r\n }\r\n }\r\n if (isValidRslt && c !== undefined) {\r\n var targetLvp = getLastValidPosition(pos) + 1;\r\n for (i = decisionPos; i < getLastValidPosition() + 1; i++) {\r\n validPos = getMaskSet().validPositions[i];\r\n if ((validPos === undefined || validPos.match.fn == null) && i < pos + posOffset) {\r\n posOffset++;\r\n }\r\n }\r\n pos = pos + posOffset;\r\n isValidRslt = isValid(pos > targetLvp ? targetLvp : pos, c, strict, fromSetValid, true);\r\n }\r\n if (!isValidRslt) {\r\n resetMaskSet();\r\n prevAltPos = getTest(decisionPos);\r\n getMaskSet().validPositions = $.extend(true, {}, validPsClone);\r\n if (getMaskSet().excludes[decisionPos]) {\r\n var decisionTaker = getDecisionTaker(prevAltPos);\r\n if (getMaskSet().excludes[decisionPos].indexOf(decisionTaker) !== -1) {\r\n isValidRslt = alternate(pos, c, strict, fromSetValid, decisionPos - 1);\r\n break;\r\n }\r\n getMaskSet().excludes[decisionPos].push(decisionTaker);\r\n for (i = decisionPos; i < getLastValidPosition(undefined, true) + 1; i++) {\r\n delete getMaskSet().validPositions[i];\r\n }\r\n } else {\r\n isValidRslt = alternate(pos, c, strict, fromSetValid, decisionPos - 1);\r\n break;\r\n }\r\n } else break;\r\n }\r\n }\r\n getMaskSet().excludes[decisionPos] = undefined;\r\n return isValidRslt;\r\n }\r\n function isValid(pos, c, strict, fromSetValid, fromAlternate, validateOnly) {\r\n function isSelection(posObj) {\r\n return isRTL ? posObj.begin - posObj.end > 1 || posObj.begin - posObj.end === 1 : posObj.end - posObj.begin > 1 || posObj.end - posObj.begin === 1;\r\n }\r\n strict = strict === true;\r\n var maskPos = pos;\r\n if (pos.begin !== undefined) {\r\n maskPos = isRTL ? pos.end : pos.begin;\r\n }\r\n function _isValid(position, c, strict) {\r\n var rslt = false;\r\n $.each(getTests(position), function (ndx, tst) {\r\n var test = tst.match;\r\n getBuffer(true);\r\n rslt = test.fn != null ? test.fn.test(c, getMaskSet(), position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && test.def !== \"\" ? {\r\n c: getPlaceholder(position, test, true) || test.def,\r\n pos: position\r\n } : false;\r\n if (rslt !== false) {\r\n var elem = rslt.c !== undefined ? rslt.c : c, validatedPos = position;\r\n elem = elem === opts.skipOptionalPartCharacter && test.fn === null ? getPlaceholder(position, test, true) || test.def : elem;\r\n if (rslt.remove !== undefined) {\r\n if (!$.isArray(rslt.remove)) rslt.remove = [rslt.remove];\r\n $.each(rslt.remove.sort(function (a, b) {\r\n return b - a;\r\n }), function (ndx, lmnt) {\r\n revalidateMask({\r\n begin: lmnt,\r\n end: lmnt + 1\r\n });\r\n });\r\n }\r\n if (rslt.insert !== undefined) {\r\n if (!$.isArray(rslt.insert)) rslt.insert = [rslt.insert];\r\n $.each(rslt.insert.sort(function (a, b) {\r\n return a - b;\r\n }), function (ndx, lmnt) {\r\n isValid(lmnt.pos, lmnt.c, true, fromSetValid);\r\n });\r\n }\r\n if (rslt !== true && rslt.pos !== undefined && rslt.pos !== position) {\r\n validatedPos = rslt.pos;\r\n }\r\n if (rslt !== true && rslt.pos === undefined && rslt.c === undefined) {\r\n return false;\r\n }\r\n if (!revalidateMask(pos, $.extend({}, tst, {\r\n input: casing(elem, test, validatedPos)\r\n }), fromSetValid, validatedPos)) {\r\n rslt = false;\r\n }\r\n return false;\r\n }\r\n });\r\n return rslt;\r\n }\r\n var result = true, positionsClone = $.extend(true, {}, getMaskSet().validPositions);\r\n if ($.isFunction(opts.preValidation) && !strict && fromSetValid !== true && validateOnly !== true) {\r\n result = opts.preValidation(getBuffer(), maskPos, c, isSelection(pos), opts, getMaskSet());\r\n }\r\n if (result === true) {\r\n trackbackPositions(undefined, maskPos, true);\r\n if (maxLength === undefined || maskPos < maxLength) {\r\n result = _isValid(maskPos, c, strict);\r\n if ((!strict || fromSetValid === true) && result === false && validateOnly !== true) {\r\n var currentPosValid = getMaskSet().validPositions[maskPos];\r\n if (currentPosValid && currentPosValid.match.fn === null && (currentPosValid.match.def === c || c === opts.skipOptionalPartCharacter)) {\r\n result = {\r\n caret: seekNext(maskPos)\r\n };\r\n } else {\r\n if ((opts.insertMode || getMaskSet().validPositions[seekNext(maskPos)] === undefined) && (!isMask(maskPos, true) || getMaskSet().jitOffset[maskPos])) {\r\n if (getMaskSet().jitOffset[maskPos] && getMaskSet().validPositions[seekNext(maskPos)] === undefined) {\r\n result = isValid(maskPos + getMaskSet().jitOffset[maskPos], c, strict);\r\n if (result !== false) result.caret = maskPos;\r\n } else for (var nPos = maskPos + 1, snPos = seekNext(maskPos); nPos <= snPos; nPos++) {\r\n result = _isValid(nPos, c, strict);\r\n if (result !== false) {\r\n result = trackbackPositions(maskPos, result.pos !== undefined ? result.pos : nPos) || result;\r\n maskPos = nPos;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (result === false && opts.keepStatic !== false && (opts.regex == null || isComplete(getBuffer())) && !strict && fromAlternate !== true) {\r\n result = alternate(maskPos, c, strict, fromSetValid);\r\n }\r\n if (result === true) {\r\n result = {\r\n pos: maskPos\r\n };\r\n }\r\n }\r\n if ($.isFunction(opts.postValidation) && result !== false && !strict && fromSetValid !== true && validateOnly !== true) {\r\n var postResult = opts.postValidation(getBuffer(true), pos.begin !== undefined ? isRTL ? pos.end : pos.begin : pos, result, opts);\r\n if (postResult !== undefined) {\r\n if (postResult.refreshFromBuffer && postResult.buffer) {\r\n var refresh = postResult.refreshFromBuffer;\r\n refreshFromBuffer(refresh === true ? refresh : refresh.start, refresh.end, postResult.buffer);\r\n }\r\n result = postResult === true ? result : postResult;\r\n }\r\n }\r\n if (result && result.pos === undefined) {\r\n result.pos = maskPos;\r\n }\r\n if (result === false || validateOnly === true) {\r\n resetMaskSet(true);\r\n getMaskSet().validPositions = $.extend(true, {}, positionsClone);\r\n }\r\n return result;\r\n }\r\n function trackbackPositions(originalPos, newPos, fillOnly) {\r\n var result;\r\n if (originalPos === undefined) {\r\n for (originalPos = newPos - 1; originalPos > 0; originalPos--) {\r\n if (getMaskSet().validPositions[originalPos]) break;\r\n }\r\n }\r\n for (var ps = originalPos; ps < newPos; ps++) {\r\n if (getMaskSet().validPositions[ps] === undefined && !isMask(ps, true)) {\r\n var vp = ps == 0 ? getTest(ps) : getMaskSet().validPositions[ps - 1];\r\n if (vp) {\r\n var tests = getTests(ps).slice();\r\n if (tests[tests.length - 1].match.def === \"\") tests.pop();\r\n var bestMatch = determineTestTemplate(ps, tests);\r\n bestMatch = $.extend({}, bestMatch, {\r\n input: getPlaceholder(ps, bestMatch.match, true) || bestMatch.match.def\r\n });\r\n bestMatch.generatedInput = true;\r\n revalidateMask(ps, bestMatch, true);\r\n if (fillOnly !== true) {\r\n var cvpInput = getMaskSet().validPositions[newPos].input;\r\n getMaskSet().validPositions[newPos] = undefined;\r\n result = isValid(newPos, cvpInput, true, true);\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function revalidateMask(pos, validTest, fromSetValid, validatedPos) {\r\n function IsEnclosedStatic(pos, valids, selection) {\r\n var posMatch = valids[pos];\r\n if (posMatch !== undefined && (posMatch.match.fn === null && posMatch.match.optionality !== true || posMatch.input === opts.radixPoint)) {\r\n var prevMatch = selection.begin <= pos - 1 ? valids[pos - 1] && valids[pos - 1].match.fn === null && valids[pos - 1] : valids[pos - 1], nextMatch = selection.end > pos + 1 ? valids[pos + 1] && valids[pos + 1].match.fn === null && valids[pos + 1] : valids[pos + 1];\r\n return prevMatch && nextMatch;\r\n }\r\n return false;\r\n }\r\n var begin = pos.begin !== undefined ? pos.begin : pos, end = pos.end !== undefined ? pos.end : pos;\r\n if (pos.begin > pos.end) {\r\n begin = pos.end;\r\n end = pos.begin;\r\n }\r\n validatedPos = validatedPos !== undefined ? validatedPos : begin;\r\n if (begin !== end || opts.insertMode && getMaskSet().validPositions[validatedPos] !== undefined && fromSetValid === undefined) {\r\n var positionsClone = $.extend(true, {}, getMaskSet().validPositions), lvp = getLastValidPosition(undefined, true), i;\r\n getMaskSet().p = begin;\r\n for (i = lvp; i >= begin; i--) {\r\n if (getMaskSet().validPositions[i] && getMaskSet().validPositions[i].match.nativeDef === \"+\") {\r\n opts.isNegative = false;\r\n }\r\n delete getMaskSet().validPositions[i];\r\n }\r\n var valid = true, j = validatedPos, vps = getMaskSet().validPositions, needsValidation = false, posMatch = j, i = j;\r\n if (validTest) {\r\n getMaskSet().validPositions[validatedPos] = $.extend(true, {}, validTest);\r\n posMatch++;\r\n j++;\r\n if (begin < end) i++;\r\n }\r\n for (; i <= lvp; i++) {\r\n var t = positionsClone[i];\r\n if (t !== undefined && (i >= end || i >= begin && t.generatedInput !== true && IsEnclosedStatic(i, positionsClone, {\r\n begin: begin,\r\n end: end\r\n }))) {\r\n while (getTest(posMatch).match.def !== \"\") {\r\n if (needsValidation === false && positionsClone[posMatch] && positionsClone[posMatch].match.nativeDef === t.match.nativeDef) {\r\n getMaskSet().validPositions[posMatch] = $.extend(true, {}, positionsClone[posMatch]);\r\n getMaskSet().validPositions[posMatch].input = t.input;\r\n trackbackPositions(undefined, posMatch, true);\r\n j = posMatch + 1;\r\n valid = true;\r\n } else if (opts.shiftPositions && positionCanMatchDefinition(posMatch, t.match.def)) {\r\n var result = isValid(posMatch, t.input, true, true);\r\n valid = result !== false;\r\n j = result.caret || result.insert ? getLastValidPosition() : posMatch + 1;\r\n needsValidation = true;\r\n } else {\r\n valid = t.generatedInput === true || t.input === opts.radixPoint && opts.numericInput === true;\r\n }\r\n if (valid) break;\r\n if (!valid && posMatch > end && isMask(posMatch, true) && (t.match.fn !== null || posMatch > getMaskSet().maskLength)) {\r\n break;\r\n }\r\n posMatch++;\r\n }\r\n if (getTest(posMatch).match.def == \"\") valid = false;\r\n posMatch = j;\r\n }\r\n if (!valid) break;\r\n }\r\n if (!valid) {\r\n getMaskSet().validPositions = $.extend(true, {}, positionsClone);\r\n resetMaskSet(true);\r\n return false;\r\n }\r\n } else if (validTest) {\r\n getMaskSet().validPositions[validatedPos] = $.extend(true, {}, validTest);\r\n }\r\n resetMaskSet(true);\r\n return true;\r\n }\r\n function isMask(pos, strict) {\r\n var test = getTestTemplate(pos).match;\r\n if (test.def === \"\") test = getTest(pos).match;\r\n if (test.fn != null) {\r\n return test.fn;\r\n }\r\n if (strict !== true && pos > -1) {\r\n var tests = getTests(pos);\r\n return tests.length > 1 + (tests[tests.length - 1].match.def === \"\" ? 1 : 0);\r\n }\r\n return false;\r\n }\r\n function seekNext(pos, newBlock) {\r\n var position = pos + 1;\r\n while (getTest(position).match.def !== \"\" && (newBlock === true && (getTest(position).match.newBlockMarker !== true || !isMask(position)) || newBlock !== true && !isMask(position))) {\r\n position++;\r\n }\r\n return position;\r\n }\r\n function seekPrevious(pos, newBlock) {\r\n var position = pos, tests;\r\n if (position <= 0) return 0;\r\n while (--position > 0 && (newBlock === true && getTest(position).match.newBlockMarker !== true || newBlock !== true && !isMask(position) && (tests = getTests(position),\r\n tests.length < 2 || tests.length === 2 && tests[1].match.def === \"\"))) { }\r\n return position;\r\n }\r\n function writeBuffer(input, buffer, caretPos, event, triggerEvents) {\r\n if (event && $.isFunction(opts.onBeforeWrite)) {\r\n var result = opts.onBeforeWrite.call(inputmask, event, buffer, caretPos, opts);\r\n if (result) {\r\n if (result.refreshFromBuffer) {\r\n var refresh = result.refreshFromBuffer;\r\n refreshFromBuffer(refresh === true ? refresh : refresh.start, refresh.end, result.buffer || buffer);\r\n buffer = getBuffer(true);\r\n }\r\n if (caretPos !== undefined) caretPos = result.caret !== undefined ? result.caret : caretPos;\r\n }\r\n }\r\n if (input !== undefined) {\r\n input.inputmask._valueSet(buffer.join(\"\"));\r\n if (caretPos !== undefined && (event === undefined || event.type !== \"blur\")) {\r\n caret(input, caretPos);\r\n } else renderColorMask(input, caretPos, buffer.length === 0);\r\n if (triggerEvents === true) {\r\n var $input = $(input), nptVal = input.inputmask._valueGet();\r\n skipInputEvent = true;\r\n $input.trigger(\"input\");\r\n setTimeout(function () {\r\n if (nptVal === getBufferTemplate().join(\"\")) {\r\n $input.trigger(\"cleared\");\r\n } else if (isComplete(buffer) === true) {\r\n $input.trigger(\"complete\");\r\n }\r\n }, 0);\r\n }\r\n }\r\n }\r\n function getPlaceholder(pos, test, returnPL) {\r\n test = test || getTest(pos).match;\r\n if (test.placeholder !== undefined || returnPL === true) {\r\n return $.isFunction(test.placeholder) ? test.placeholder(opts) : test.placeholder;\r\n } else if (test.fn === null) {\r\n if (pos > -1 && getMaskSet().validPositions[pos] === undefined) {\r\n var tests = getTests(pos), staticAlternations = [], prevTest;\r\n if (tests.length > 1 + (tests[tests.length - 1].match.def === \"\" ? 1 : 0)) {\r\n for (var i = 0; i < tests.length; i++) {\r\n if (tests[i].match.optionality !== true && tests[i].match.optionalQuantifier !== true && (tests[i].match.fn === null || prevTest === undefined || tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, true, opts) !== false)) {\r\n staticAlternations.push(tests[i]);\r\n if (tests[i].match.fn === null) prevTest = tests[i];\r\n if (staticAlternations.length > 1) {\r\n if (/[0-9a-bA-Z]/.test(staticAlternations[0].match.def)) {\r\n return opts.placeholder.charAt(pos % opts.placeholder.length);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return test.def;\r\n }\r\n return opts.placeholder.charAt(pos % opts.placeholder.length);\r\n }\r\n function HandleNativePlaceholder(npt, value) {\r\n if (ie) {\r\n if (npt.inputmask._valueGet() !== value) {\r\n var buffer = getBuffer().slice(), nptValue = npt.inputmask._valueGet();\r\n if (nptValue !== value) {\r\n var lvp = getLastValidPosition();\r\n if (lvp === -1 && nptValue === getBufferTemplate().join(\"\")) {\r\n buffer = [];\r\n } else if (lvp !== -1) {\r\n clearOptionalTail(buffer);\r\n }\r\n writeBuffer(npt, buffer);\r\n }\r\n }\r\n } else if (npt.placeholder !== value) {\r\n npt.placeholder = value;\r\n if (npt.placeholder === \"\") npt.removeAttribute(\"placeholder\");\r\n }\r\n }\r\n var EventRuler = {\r\n on: function on(input, eventName, eventHandler) {\r\n var ev = function ev(e) {\r\n var that = this;\r\n if (that.inputmask === undefined && this.nodeName !== \"FORM\") {\r\n var imOpts = $.data(that, \"_inputmask_opts\");\r\n if (imOpts) new Inputmask(imOpts).mask(that); else EventRuler.off(that);\r\n } else if (e.type !== \"setvalue\" && this.nodeName !== \"FORM\" && (that.disabled || that.readOnly && !(e.type === \"keydown\" && e.ctrlKey && e.keyCode === 67 || opts.tabThrough === false && e.keyCode === Inputmask.keyCode.TAB))) {\r\n e.preventDefault();\r\n } else {\r\n switch (e.type) {\r\n case \"input\":\r\n if (skipInputEvent === true) {\r\n skipInputEvent = false;\r\n return e.preventDefault();\r\n }\r\n if (mobile) {\r\n var args = arguments;\r\n setTimeout(function () {\r\n eventHandler.apply(that, args);\r\n caret(that, that.inputmask.caretPos, undefined, true);\r\n }, 0);\r\n return false;\r\n }\r\n break;\r\n\r\n case \"keydown\":\r\n skipKeyPressEvent = false;\r\n skipInputEvent = false;\r\n break;\r\n\r\n case \"keypress\":\r\n if (skipKeyPressEvent === true) {\r\n return e.preventDefault();\r\n }\r\n skipKeyPressEvent = true;\r\n break;\r\n\r\n case \"click\":\r\n if (iemobile || iphone) {\r\n var args = arguments;\r\n setTimeout(function () {\r\n eventHandler.apply(that, args);\r\n }, 0);\r\n return false;\r\n }\r\n break;\r\n }\r\n var returnVal = eventHandler.apply(that, arguments);\r\n if (returnVal === false) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n return returnVal;\r\n }\r\n };\r\n input.inputmask.events[eventName] = input.inputmask.events[eventName] || [];\r\n input.inputmask.events[eventName].push(ev);\r\n if ($.inArray(eventName, [\"submit\", \"reset\"]) !== -1) {\r\n if (input.form !== null) $(input.form).on(eventName, ev);\r\n } else {\r\n $(input).on(eventName, ev);\r\n }\r\n },\r\n off: function off(input, event) {\r\n if (input.inputmask && input.inputmask.events) {\r\n var events;\r\n if (event) {\r\n events = [];\r\n events[event] = input.inputmask.events[event];\r\n } else {\r\n events = input.inputmask.events;\r\n }\r\n $.each(events, function (eventName, evArr) {\r\n while (evArr.length > 0) {\r\n var ev = evArr.pop();\r\n if ($.inArray(eventName, [\"submit\", \"reset\"]) !== -1) {\r\n if (input.form !== null) $(input.form).off(eventName, ev);\r\n } else {\r\n $(input).off(eventName, ev);\r\n }\r\n }\r\n delete input.inputmask.events[eventName];\r\n });\r\n }\r\n }\r\n };\r\n var EventHandlers = {\r\n keydownEvent: function keydownEvent(e) {\r\n var input = this, $input = $(input), k = e.keyCode, pos = caret(input);\r\n if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && k === Inputmask.keyCode.BACKSPACE_SAFARI || e.ctrlKey && k === Inputmask.keyCode.X && !isInputEventSupported(\"cut\")) {\r\n e.preventDefault();\r\n handleRemove(input, k, pos);\r\n writeBuffer(input, getBuffer(true), getMaskSet().p, e, input.inputmask._valueGet() !== getBuffer().join(\"\"));\r\n } else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) {\r\n e.preventDefault();\r\n var caretPos = seekNext(getLastValidPosition());\r\n caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, true);\r\n } else if (k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP) {\r\n e.preventDefault();\r\n caret(input, 0, e.shiftKey ? pos.begin : 0, true);\r\n } else if ((opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || k === 90 && e.ctrlKey) && e.altKey !== true) {\r\n checkVal(input, true, false, undoValue.split(\"\"));\r\n $input.trigger(\"click\");\r\n } else if (k === Inputmask.keyCode.INSERT && !(e.shiftKey || e.ctrlKey)) {\r\n opts.insertMode = !opts.insertMode;\r\n input.setAttribute(\"im-insert\", opts.insertMode);\r\n } else if (opts.tabThrough === true && k === Inputmask.keyCode.TAB) {\r\n if (e.shiftKey === true) {\r\n if (getTest(pos.begin).match.fn === null) {\r\n pos.begin = seekNext(pos.begin);\r\n }\r\n pos.end = seekPrevious(pos.begin, true);\r\n pos.begin = seekPrevious(pos.end, true);\r\n } else {\r\n pos.begin = seekNext(pos.begin, true);\r\n pos.end = seekNext(pos.begin, true);\r\n if (pos.end < getMaskSet().maskLength) pos.end--;\r\n }\r\n if (pos.begin < getMaskSet().maskLength) {\r\n e.preventDefault();\r\n caret(input, pos.begin, pos.end);\r\n }\r\n }\r\n opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts);\r\n ignorable = $.inArray(k, opts.ignorables) !== -1;\r\n },\r\n keypressEvent: function keypressEvent(e, checkval, writeOut, strict, ndx) {\r\n var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;\r\n if (checkval !== true && !(e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) {\r\n if (k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join(\"\")) {\r\n undoValue = getBuffer().join(\"\");\r\n setTimeout(function () {\r\n $input.trigger(\"change\");\r\n }, 0);\r\n }\r\n return true;\r\n } else {\r\n if (k) {\r\n if (k === 46 && e.shiftKey === false && opts.radixPoint !== \"\") k = opts.radixPoint.charCodeAt(0);\r\n var pos = checkval ? {\r\n begin: ndx,\r\n end: ndx\r\n } : caret(input), forwardPosition, c = String.fromCharCode(k), offset = 0;\r\n if (opts._radixDance && opts.numericInput) {\r\n var caretPos = getBuffer().indexOf(opts.radixPoint.charAt(0)) + 1;\r\n if (pos.begin <= caretPos) {\r\n if (k === opts.radixPoint.charCodeAt(0)) offset = 1;\r\n pos.begin -= 1;\r\n pos.end -= 1;\r\n }\r\n }\r\n getMaskSet().writeOutBuffer = true;\r\n var valResult = isValid(pos, c, strict);\r\n if (valResult !== false) {\r\n resetMaskSet(true);\r\n forwardPosition = valResult.caret !== undefined ? valResult.caret : seekNext(valResult.pos.begin ? valResult.pos.begin : valResult.pos);\r\n getMaskSet().p = forwardPosition;\r\n }\r\n forwardPosition = (opts.numericInput && valResult.caret === undefined ? seekPrevious(forwardPosition) : forwardPosition) + offset;\r\n if (writeOut !== false) {\r\n setTimeout(function () {\r\n opts.onKeyValidation.call(input, k, valResult, opts);\r\n }, 0);\r\n if (getMaskSet().writeOutBuffer && valResult !== false) {\r\n var buffer = getBuffer();\r\n writeBuffer(input, buffer, forwardPosition, e, checkval !== true);\r\n }\r\n }\r\n e.preventDefault();\r\n if (checkval) {\r\n if (valResult !== false) valResult.forwardPosition = forwardPosition;\r\n return valResult;\r\n }\r\n }\r\n }\r\n },\r\n pasteEvent: function pasteEvent(e) {\r\n var input = this, ev = e.originalEvent || e, $input = $(input), inputValue = input.inputmask._valueGet(true), caretPos = caret(input), tempValue;\r\n if (isRTL) {\r\n tempValue = caretPos.end;\r\n caretPos.end = caretPos.begin;\r\n caretPos.begin = tempValue;\r\n }\r\n var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);\r\n if (valueBeforeCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(0, caretPos.begin).join(\"\")) valueBeforeCaret = \"\";\r\n if (valueAfterCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(caretPos.end).join(\"\")) valueAfterCaret = \"\";\r\n if (window.clipboardData && window.clipboardData.getData) {\r\n inputValue = valueBeforeCaret + window.clipboardData.getData(\"Text\") + valueAfterCaret;\r\n } else if (ev.clipboardData && ev.clipboardData.getData) {\r\n inputValue = valueBeforeCaret + ev.clipboardData.getData(\"text/plain\") + valueAfterCaret;\r\n } else return true;\r\n var pasteValue = inputValue;\r\n if ($.isFunction(opts.onBeforePaste)) {\r\n pasteValue = opts.onBeforePaste.call(inputmask, inputValue, opts);\r\n if (pasteValue === false) {\r\n return e.preventDefault();\r\n }\r\n if (!pasteValue) {\r\n pasteValue = inputValue;\r\n }\r\n }\r\n checkVal(input, false, false, pasteValue.toString().split(\"\"));\r\n writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()), e, undoValue !== getBuffer().join(\"\"));\r\n return e.preventDefault();\r\n },\r\n inputFallBackEvent: function inputFallBackEvent(e) {\r\n function radixPointHandler(input, inputValue, caretPos) {\r\n if (inputValue.charAt(caretPos.begin - 1) === \".\" && opts.radixPoint !== \"\") {\r\n inputValue = inputValue.split(\"\");\r\n inputValue[caretPos.begin - 1] = opts.radixPoint.charAt(0);\r\n inputValue = inputValue.join(\"\");\r\n }\r\n return inputValue;\r\n }\r\n function ieMobileHandler(input, inputValue, caretPos) {\r\n if (iemobile) {\r\n var inputChar = inputValue.replace(getBuffer().join(\"\"), \"\");\r\n if (inputChar.length === 1) {\r\n var iv = inputValue.split(\"\");\r\n iv.splice(caretPos.begin, 0, inputChar);\r\n inputValue = iv.join(\"\");\r\n }\r\n }\r\n return inputValue;\r\n }\r\n var input = this, inputValue = input.inputmask._valueGet();\r\n if (getBuffer().join(\"\") !== inputValue) {\r\n var caretPos = caret(input);\r\n inputValue = radixPointHandler(input, inputValue, caretPos);\r\n inputValue = ieMobileHandler(input, inputValue, caretPos);\r\n if (getBuffer().join(\"\") !== inputValue) {\r\n var buffer = getBuffer().join(\"\"), offset = !opts.numericInput && inputValue.length > buffer.length ? -1 : 0, frontPart = inputValue.substr(0, caretPos.begin), backPart = inputValue.substr(caretPos.begin), frontBufferPart = buffer.substr(0, caretPos.begin + offset), backBufferPart = buffer.substr(caretPos.begin + offset);\r\n var selection = caretPos, entries = \"\", isEntry = false;\r\n if (frontPart !== frontBufferPart) {\r\n var fpl = (isEntry = frontPart.length >= frontBufferPart.length) ? frontPart.length : frontBufferPart.length, i;\r\n for (i = 0; frontPart.charAt(i) === frontBufferPart.charAt(i) && i < fpl; i++) { }\r\n if (isEntry) {\r\n selection.begin = i - offset;\r\n entries += frontPart.slice(i, selection.end);\r\n }\r\n }\r\n if (backPart !== backBufferPart) {\r\n if (backPart.length > backBufferPart.length) {\r\n entries += backPart.slice(0, 1);\r\n } else {\r\n if (backPart.length < backBufferPart.length) {\r\n selection.end += backBufferPart.length - backPart.length;\r\n if (!isEntry && opts.radixPoint !== \"\" && backPart === \"\" && frontPart.charAt(selection.begin + offset - 1) === opts.radixPoint) {\r\n selection.begin--;\r\n entries = opts.radixPoint;\r\n }\r\n }\r\n }\r\n }\r\n writeBuffer(input, getBuffer(), {\r\n begin: selection.begin + offset,\r\n end: selection.end + offset\r\n });\r\n if (entries.length > 0) {\r\n $.each(entries.split(\"\"), function (ndx, entry) {\r\n var keypress = new $.Event(\"keypress\");\r\n keypress.which = entry.charCodeAt(0);\r\n ignorable = false;\r\n EventHandlers.keypressEvent.call(input, keypress);\r\n });\r\n } else {\r\n if (selection.begin === selection.end - 1) {\r\n selection.begin = seekPrevious(selection.begin + 1);\r\n if (selection.begin === selection.end - 1) {\r\n caret(input, selection.begin);\r\n } else {\r\n caret(input, selection.begin, selection.end);\r\n }\r\n }\r\n var keydown = new $.Event(\"keydown\");\r\n keydown.keyCode = opts.numericInput ? Inputmask.keyCode.BACKSPACE : Inputmask.keyCode.DELETE;\r\n EventHandlers.keydownEvent.call(input, keydown);\r\n }\r\n e.preventDefault();\r\n }\r\n }\r\n },\r\n beforeInputEvent: function beforeInputEvent(e) {\r\n if (e.cancelable) {\r\n var input = this;\r\n switch (e.inputType) {\r\n case \"insertText\":\r\n $.each(e.data.split(\"\"), function (ndx, entry) {\r\n var keypress = new $.Event(\"keypress\");\r\n keypress.which = entry.charCodeAt(0);\r\n ignorable = false;\r\n EventHandlers.keypressEvent.call(input, keypress);\r\n });\r\n return e.preventDefault();\r\n\r\n case \"deleteContentBackward\":\r\n var keydown = new $.Event(\"keydown\");\r\n keydown.keyCode = Inputmask.keyCode.BACKSPACE;\r\n EventHandlers.keydownEvent.call(input, keydown);\r\n return e.preventDefault();\r\n\r\n case \"deleteContentForward\":\r\n var keydown = new $.Event(\"keydown\");\r\n keydown.keyCode = Inputmask.keyCode.DELETE;\r\n EventHandlers.keydownEvent.call(input, keydown);\r\n return e.preventDefault();\r\n }\r\n }\r\n },\r\n setValueEvent: function setValueEvent(e) {\r\n this.inputmask.refreshValue = false;\r\n var input = this, value = e && e.detail ? e.detail[0] : arguments[1], value = value || input.inputmask._valueGet(true);\r\n if ($.isFunction(opts.onBeforeMask)) value = opts.onBeforeMask.call(inputmask, value, opts) || value;\r\n value = value.split(\"\");\r\n checkVal(input, true, false, value);\r\n undoValue = getBuffer().join(\"\");\r\n if ((opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join(\"\")) {\r\n input.inputmask._valueSet(\"\");\r\n }\r\n },\r\n focusEvent: function focusEvent(e) {\r\n var input = this, nptValue = input.inputmask._valueGet();\r\n if (opts.showMaskOnFocus) {\r\n if (nptValue !== getBuffer().join(\"\")) {\r\n writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()));\r\n } else if (mouseEnter === false) {\r\n caret(input, seekNext(getLastValidPosition()));\r\n }\r\n }\r\n if (opts.positionCaretOnTab === true && mouseEnter === false) {\r\n EventHandlers.clickEvent.apply(input, [e, true]);\r\n }\r\n undoValue = getBuffer().join(\"\");\r\n },\r\n mouseleaveEvent: function mouseleaveEvent(e) {\r\n var input = this;\r\n mouseEnter = false;\r\n if (opts.clearMaskOnLostFocus && document.activeElement !== input) {\r\n HandleNativePlaceholder(input, originalPlaceholder);\r\n }\r\n },\r\n clickEvent: function clickEvent(e, tabbed) {\r\n function doRadixFocus(clickPos) {\r\n if (opts.radixPoint !== \"\") {\r\n var vps = getMaskSet().validPositions;\r\n if (vps[clickPos] === undefined || vps[clickPos].input === getPlaceholder(clickPos)) {\r\n if (clickPos < seekNext(-1)) return true;\r\n var radixPos = $.inArray(opts.radixPoint, getBuffer());\r\n if (radixPos !== -1) {\r\n for (var vp in vps) {\r\n if (radixPos < vp && vps[vp].input !== getPlaceholder(vp)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n var input = this;\r\n setTimeout(function () {\r\n if (document.activeElement === input) {\r\n var selectedCaret = caret(input);\r\n if (tabbed) {\r\n if (isRTL) {\r\n selectedCaret.end = selectedCaret.begin;\r\n } else {\r\n selectedCaret.begin = selectedCaret.end;\r\n }\r\n }\r\n if (selectedCaret.begin === selectedCaret.end) {\r\n switch (opts.positionCaretOnClick) {\r\n case \"none\":\r\n break;\r\n\r\n case \"select\":\r\n caret(input, 0, getBuffer().length);\r\n break;\r\n\r\n case \"ignore\":\r\n caret(input, seekNext(getLastValidPosition()));\r\n break;\r\n\r\n case \"radixFocus\":\r\n if (doRadixFocus(selectedCaret.begin)) {\r\n var radixPos = getBuffer().join(\"\").indexOf(opts.radixPoint);\r\n caret(input, opts.numericInput ? seekNext(radixPos) : radixPos);\r\n break;\r\n }\r\n\r\n default:\r\n var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, true), lastPosition = seekNext(lvclickPosition);\r\n if (clickPosition < lastPosition) {\r\n caret(input, !isMask(clickPosition, true) && !isMask(clickPosition - 1, true) ? seekNext(clickPosition) : clickPosition);\r\n } else {\r\n var lvp = getMaskSet().validPositions[lvclickPosition], tt = getTestTemplate(lastPosition, lvp ? lvp.match.locator : undefined, lvp), placeholder = getPlaceholder(lastPosition, tt.match);\r\n if (placeholder !== \"\" && getBuffer()[lastPosition] !== placeholder && tt.match.optionalQuantifier !== true && tt.match.newBlockMarker !== true || !isMask(lastPosition, opts.keepStatic) && tt.match.def === placeholder) {\r\n var newPos = seekNext(lastPosition);\r\n if (clickPosition >= newPos || clickPosition === lastPosition) {\r\n lastPosition = newPos;\r\n }\r\n }\r\n caret(input, lastPosition);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }, 0);\r\n },\r\n cutEvent: function cutEvent(e) {\r\n var input = this, $input = $(input), pos = caret(input), ev = e.originalEvent || e;\r\n var clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end);\r\n clipboardData.setData(\"text\", isRTL ? clipData.reverse().join(\"\") : clipData.join(\"\"));\r\n if (document.execCommand) document.execCommand(\"copy\");\r\n handleRemove(input, Inputmask.keyCode.DELETE, pos);\r\n writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join(\"\"));\r\n },\r\n blurEvent: function blurEvent(e) {\r\n var $input = $(this), input = this;\r\n if (input.inputmask) {\r\n HandleNativePlaceholder(input, originalPlaceholder);\r\n var nptValue = input.inputmask._valueGet(), buffer = getBuffer().slice();\r\n if (nptValue !== \"\" || colorMask !== undefined) {\r\n if (opts.clearMaskOnLostFocus) {\r\n if (getLastValidPosition() === -1 && nptValue === getBufferTemplate().join(\"\")) {\r\n buffer = [];\r\n } else {\r\n clearOptionalTail(buffer);\r\n }\r\n }\r\n if (isComplete(buffer) === false) {\r\n setTimeout(function () {\r\n $input.trigger(\"incomplete\");\r\n }, 0);\r\n if (opts.clearIncomplete) {\r\n resetMaskSet();\r\n if (opts.clearMaskOnLostFocus) {\r\n buffer = [];\r\n } else {\r\n buffer = getBufferTemplate().slice();\r\n }\r\n }\r\n }\r\n writeBuffer(input, buffer, undefined, e);\r\n }\r\n if (undoValue !== getBuffer().join(\"\")) {\r\n undoValue = buffer.join(\"\");\r\n $input.trigger(\"change\");\r\n }\r\n }\r\n },\r\n mouseenterEvent: function mouseenterEvent(e) {\r\n var input = this;\r\n mouseEnter = true;\r\n if (document.activeElement !== input && opts.showMaskOnHover) {\r\n HandleNativePlaceholder(input, (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(\"\"));\r\n }\r\n },\r\n submitEvent: function submitEvent(e) {\r\n if (undoValue !== getBuffer().join(\"\")) {\r\n $el.trigger(\"change\");\r\n }\r\n if (opts.clearMaskOnLostFocus && getLastValidPosition() === -1 && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join(\"\")) {\r\n el.inputmask._valueSet(\"\");\r\n }\r\n if (opts.clearIncomplete && isComplete(getBuffer()) === false) {\r\n el.inputmask._valueSet(\"\");\r\n }\r\n if (opts.removeMaskOnSubmit) {\r\n el.inputmask._valueSet(el.inputmask.unmaskedvalue(), true);\r\n setTimeout(function () {\r\n writeBuffer(el, getBuffer());\r\n }, 0);\r\n }\r\n },\r\n resetEvent: function resetEvent(e) {\r\n el.inputmask.refreshValue = true;\r\n setTimeout(function () {\r\n $el.trigger(\"setvalue\");\r\n }, 0);\r\n }\r\n };\r\n function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {\r\n var inputmask = this || input.inputmask, inputValue = nptvl.slice(), charCodes = \"\", initialNdx = -1, result = undefined;\r\n function isTemplateMatch(ndx, charCodes) {\r\n var charCodeNdx = getMaskTemplate(true, 0, false).slice(ndx, seekNext(ndx)).join(\"\").replace(/'/g, \"\").indexOf(charCodes);\r\n return charCodeNdx !== -1 && !isMask(ndx) && (getTest(ndx).match.nativeDef === charCodes.charAt(0) || getTest(ndx).match.fn === null && getTest(ndx).match.nativeDef === \"'\" + charCodes.charAt(0) || getTest(ndx).match.nativeDef === \" \" && (getTest(ndx + 1).match.nativeDef === charCodes.charAt(0) || getTest(ndx + 1).match.fn === null && getTest(ndx + 1).match.nativeDef === \"'\" + charCodes.charAt(0)));\r\n }\r\n resetMaskSet();\r\n if (!strict && opts.autoUnmask !== true) {\r\n var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(\"\"), matches = inputValue.join(\"\").match(new RegExp(\"^\" + Inputmask.escapeRegex(staticInput), \"g\"));\r\n if (matches && matches.length > 0) {\r\n inputValue.splice(0, matches.length * staticInput.length);\r\n initialNdx = seekNext(initialNdx);\r\n }\r\n } else {\r\n initialNdx = seekNext(initialNdx);\r\n }\r\n if (initialNdx === -1) {\r\n getMaskSet().p = seekNext(initialNdx);\r\n initialNdx = 0;\r\n } else getMaskSet().p = initialNdx;\r\n inputmask.caretPos = {\r\n begin: initialNdx\r\n };\r\n $.each(inputValue, function (ndx, charCode) {\r\n if (charCode !== undefined) {\r\n if (getMaskSet().validPositions[ndx] === undefined && inputValue[ndx] === getPlaceholder(ndx) && isMask(ndx, true) && isValid(ndx, inputValue[ndx], true, undefined, undefined, true) === false) {\r\n getMaskSet().p++;\r\n } else {\r\n var keypress = new $.Event(\"_checkval\");\r\n keypress.which = charCode.charCodeAt(0);\r\n charCodes += charCode;\r\n var lvp = getLastValidPosition(undefined, true);\r\n if (!isTemplateMatch(initialNdx, charCodes)) {\r\n result = EventHandlers.keypressEvent.call(input, keypress, true, false, strict, inputmask.caretPos.begin);\r\n if (result) {\r\n initialNdx = inputmask.caretPos.begin + 1;\r\n charCodes = \"\";\r\n }\r\n } else {\r\n result = EventHandlers.keypressEvent.call(input, keypress, true, false, strict, lvp + 1);\r\n }\r\n if (result) {\r\n writeBuffer(undefined, getBuffer(), result.forwardPosition, keypress, false);\r\n inputmask.caretPos = {\r\n begin: result.forwardPosition,\r\n end: result.forwardPosition\r\n };\r\n }\r\n }\r\n }\r\n });\r\n if (writeOut) writeBuffer(input, getBuffer(), result ? result.forwardPosition : undefined, initiatingEvent || new $.Event(\"checkval\"), initiatingEvent && initiatingEvent.type === \"input\");\r\n }\r\n function unmaskedvalue(input) {\r\n if (input) {\r\n if (input.inputmask === undefined) {\r\n return input.value;\r\n }\r\n if (input.inputmask && input.inputmask.refreshValue) {\r\n EventHandlers.setValueEvent.call(input);\r\n }\r\n }\r\n var umValue = [], vps = getMaskSet().validPositions;\r\n for (var pndx in vps) {\r\n if (vps[pndx].match && vps[pndx].match.fn != null) {\r\n umValue.push(vps[pndx].input);\r\n }\r\n }\r\n var unmaskedValue = umValue.length === 0 ? \"\" : (isRTL ? umValue.reverse() : umValue).join(\"\");\r\n if ($.isFunction(opts.onUnMask)) {\r\n var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(\"\");\r\n unmaskedValue = opts.onUnMask.call(inputmask, bufferValue, unmaskedValue, opts);\r\n }\r\n return unmaskedValue;\r\n }\r\n function caret(input, begin, end, notranslate) {\r\n function translatePosition(pos) {\r\n if (isRTL && typeof pos === \"number\" && (!opts.greedy || opts.placeholder !== \"\") && el) {\r\n pos = el.inputmask._valueGet().length - pos;\r\n }\r\n return pos;\r\n }\r\n var range;\r\n if (begin !== undefined) {\r\n if ($.isArray(begin)) {\r\n end = isRTL ? begin[0] : begin[1];\r\n begin = isRTL ? begin[1] : begin[0];\r\n }\r\n if (begin.begin !== undefined) {\r\n end = isRTL ? begin.begin : begin.end;\r\n begin = isRTL ? begin.end : begin.begin;\r\n }\r\n if (typeof begin === \"number\") {\r\n begin = notranslate ? begin : translatePosition(begin);\r\n end = notranslate ? end : translatePosition(end);\r\n end = typeof end == \"number\" ? end : begin;\r\n var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;\r\n input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0;\r\n input.inputmask.caretPos = {\r\n begin: begin,\r\n end: end\r\n };\r\n if (input === document.activeElement) {\r\n if (\"selectionStart\" in input) {\r\n input.selectionStart = begin;\r\n input.selectionEnd = end;\r\n } else if (window.getSelection) {\r\n range = document.createRange();\r\n if (input.firstChild === undefined || input.firstChild === null) {\r\n var textNode = document.createTextNode(\"\");\r\n input.appendChild(textNode);\r\n }\r\n range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length);\r\n range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length);\r\n range.collapse(true);\r\n var sel = window.getSelection();\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n } else if (input.createTextRange) {\r\n range = input.createTextRange();\r\n range.collapse(true);\r\n range.moveEnd(\"character\", end);\r\n range.moveStart(\"character\", begin);\r\n range.select();\r\n }\r\n renderColorMask(input, {\r\n begin: begin,\r\n end: end\r\n });\r\n }\r\n }\r\n } else {\r\n if (\"selectionStart\" in input) {\r\n begin = input.selectionStart;\r\n end = input.selectionEnd;\r\n } else if (window.getSelection) {\r\n range = window.getSelection().getRangeAt(0);\r\n if (range.commonAncestorContainer.parentNode === input || range.commonAncestorContainer === input) {\r\n begin = range.startOffset;\r\n end = range.endOffset;\r\n }\r\n } else if (document.selection && document.selection.createRange) {\r\n range = document.selection.createRange();\r\n begin = 0 - range.duplicate().moveStart(\"character\", -input.inputmask._valueGet().length);\r\n end = begin + range.text.length;\r\n }\r\n return {\r\n begin: notranslate ? begin : translatePosition(begin),\r\n end: notranslate ? end : translatePosition(end)\r\n };\r\n }\r\n }\r\n function determineLastRequiredPosition(returnDefinition) {\r\n var buffer = getMaskTemplate(true, getLastValidPosition(), true, true), bl = buffer.length, pos, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = lvTest !== undefined ? lvTest.locator.slice() : undefined, testPos;\r\n for (pos = lvp + 1; pos < buffer.length; pos++) {\r\n testPos = getTestTemplate(pos, ndxIntlzr, pos - 1);\r\n ndxIntlzr = testPos.locator.slice();\r\n positions[pos] = $.extend(true, {}, testPos);\r\n }\r\n var lvTestAlt = lvTest && lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation] : undefined;\r\n for (pos = bl - 1; pos > lvp; pos--) {\r\n testPos = positions[pos];\r\n if ((testPos.match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && testPos.match.fn != null || testPos.match.fn === null && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAlt.toString().split(\",\")) && getTests(pos)[0].def !== \"\")) && buffer[pos] === getPlaceholder(pos, testPos.match)) {\r\n bl--;\r\n } else break;\r\n }\r\n return returnDefinition ? {\r\n l: bl,\r\n def: positions[bl] ? positions[bl].match : undefined\r\n } : bl;\r\n }\r\n function clearOptionalTail(buffer) {\r\n buffer.length = 0;\r\n var template = getMaskTemplate(true, 0, true, undefined, true), lmnt, validPos;\r\n while (lmnt = template.shift(), lmnt !== undefined) {\r\n buffer.push(lmnt);\r\n }\r\n return buffer;\r\n }\r\n function isComplete(buffer) {\r\n if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);\r\n if (opts.repeat === \"*\") return undefined;\r\n var complete = false, lrp = determineLastRequiredPosition(true), aml = seekPrevious(lrp.l);\r\n if (lrp.def === undefined || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {\r\n complete = true;\r\n for (var i = 0; i <= aml; i++) {\r\n var test = getTestTemplate(i).match;\r\n if (test.fn !== null && getMaskSet().validPositions[i] === undefined && test.optionality !== true && test.optionalQuantifier !== true || test.fn === null && buffer[i] !== getPlaceholder(i, test)) {\r\n complete = false;\r\n break;\r\n }\r\n }\r\n }\r\n return complete;\r\n }\r\n function handleRemove(input, k, pos, strict, fromIsValid) {\r\n if (opts.numericInput || isRTL) {\r\n if (k === Inputmask.keyCode.BACKSPACE) {\r\n k = Inputmask.keyCode.DELETE;\r\n } else if (k === Inputmask.keyCode.DELETE) {\r\n k = Inputmask.keyCode.BACKSPACE;\r\n }\r\n if (isRTL) {\r\n var pend = pos.end;\r\n pos.end = pos.begin;\r\n pos.begin = pend;\r\n }\r\n }\r\n if (k === Inputmask.keyCode.BACKSPACE && pos.end - pos.begin < 1) {\r\n pos.begin = seekPrevious(pos.begin);\r\n if (getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator) {\r\n pos.begin--;\r\n }\r\n } else if (k === Inputmask.keyCode.DELETE && pos.begin === pos.end) {\r\n pos.end = isMask(pos.end, true) && getMaskSet().validPositions[pos.end] && getMaskSet().validPositions[pos.end].input !== opts.radixPoint ? pos.end + 1 : seekNext(pos.end) + 1;\r\n if (getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator) {\r\n pos.end++;\r\n }\r\n }\r\n revalidateMask(pos);\r\n if (strict !== true && opts.keepStatic !== false || opts.regex !== null) {\r\n var result = alternate(true);\r\n if (result) {\r\n var newPos = result.caret !== undefined ? result.caret : result.pos ? seekNext(result.pos.begin ? result.pos.begin : result.pos) : getLastValidPosition(-1, true);\r\n if (k !== Inputmask.keyCode.DELETE || pos.begin > newPos) {\r\n pos.begin == newPos;\r\n }\r\n }\r\n }\r\n var lvp = getLastValidPosition(pos.begin, true);\r\n if (lvp < pos.begin || pos.begin === -1) {\r\n getMaskSet().p = seekNext(lvp);\r\n } else if (strict !== true) {\r\n getMaskSet().p = pos.begin;\r\n if (fromIsValid !== true) {\r\n while (getMaskSet().p < lvp && getMaskSet().validPositions[getMaskSet().p] === undefined) {\r\n getMaskSet().p++;\r\n }\r\n }\r\n }\r\n }\r\n function initializeColorMask(input) {\r\n var computedStyle = (input.ownerDocument.defaultView || window).getComputedStyle(input, null);\r\n function findCaretPos(clientx) {\r\n var e = document.createElement(\"span\"), caretPos;\r\n for (var style in computedStyle) {\r\n if (isNaN(style) && style.indexOf(\"font\") !== -1) {\r\n e.style[style] = computedStyle[style];\r\n }\r\n }\r\n e.style.textTransform = computedStyle.textTransform;\r\n e.style.letterSpacing = computedStyle.letterSpacing;\r\n e.style.position = \"absolute\";\r\n e.style.height = \"auto\";\r\n e.style.width = \"auto\";\r\n e.style.visibility = \"hidden\";\r\n e.style.whiteSpace = \"nowrap\";\r\n document.body.appendChild(e);\r\n var inputText = input.inputmask._valueGet(), previousWidth = 0, itl;\r\n for (caretPos = 0, itl = inputText.length; caretPos <= itl; caretPos++) {\r\n e.innerHTML += inputText.charAt(caretPos) || \"_\";\r\n if (e.offsetWidth >= clientx) {\r\n var offset1 = clientx - previousWidth;\r\n var offset2 = e.offsetWidth - clientx;\r\n e.innerHTML = inputText.charAt(caretPos);\r\n offset1 -= e.offsetWidth / 3;\r\n caretPos = offset1 < offset2 ? caretPos - 1 : caretPos;\r\n break;\r\n }\r\n previousWidth = e.offsetWidth;\r\n }\r\n document.body.removeChild(e);\r\n return caretPos;\r\n }\r\n var template = document.createElement(\"div\");\r\n template.style.width = computedStyle.width;\r\n template.style.textAlign = computedStyle.textAlign;\r\n colorMask = document.createElement(\"div\");\r\n input.inputmask.colorMask = colorMask;\r\n colorMask.className = \"im-colormask\";\r\n input.parentNode.insertBefore(colorMask, input);\r\n input.parentNode.removeChild(input);\r\n colorMask.appendChild(input);\r\n colorMask.appendChild(template);\r\n input.style.left = template.offsetLeft + \"px\";\r\n $(colorMask).on(\"mouseleave\", function (e) {\r\n return EventHandlers.mouseleaveEvent.call(input, [e]);\r\n });\r\n $(colorMask).on(\"mouseenter\", function (e) {\r\n return EventHandlers.mouseenterEvent.call(input, [e]);\r\n });\r\n $(colorMask).on(\"click\", function (e) {\r\n caret(input, findCaretPos(e.clientX));\r\n return EventHandlers.clickEvent.call(input, [e]);\r\n });\r\n }\r\n Inputmask.prototype.positionColorMask = function (input, template) {\r\n input.style.left = template.offsetLeft + \"px\";\r\n };\r\n function renderColorMask(input, caretPos, clear) {\r\n var maskTemplate = [], isStatic = false, test, testPos, ndxIntlzr, pos = 0;\r\n function setEntry(entry) {\r\n if (entry === undefined) entry = \"\";\r\n if (!isStatic && (test.fn === null || testPos.input === undefined)) {\r\n isStatic = true;\r\n maskTemplate.push(\"\" + entry);\r\n } else if (isStatic && (test.fn !== null && testPos.input !== undefined || test.def === \"\")) {\r\n isStatic = false;\r\n var mtl = maskTemplate.length;\r\n maskTemplate[mtl - 1] = maskTemplate[mtl - 1] + \"\";\r\n maskTemplate.push(entry);\r\n } else maskTemplate.push(entry);\r\n }\r\n function setCaret() {\r\n if (document.activeElement === input) {\r\n maskTemplate.splice(caretPos.begin, 0, caretPos.begin === caretPos.end || caretPos.end > getMaskSet().maskLength ? '' : '');\r\n maskTemplate.splice(caretPos.end + 1, 0, \"\");\r\n }\r\n }\r\n if (colorMask !== undefined) {\r\n var buffer = getBuffer();\r\n if (caretPos === undefined) {\r\n caretPos = caret(input);\r\n } else if (caretPos.begin === undefined) {\r\n caretPos = {\r\n begin: caretPos,\r\n end: caretPos\r\n };\r\n }\r\n if (clear !== true) {\r\n var lvp = getLastValidPosition();\r\n do {\r\n if (getMaskSet().validPositions[pos]) {\r\n testPos = getMaskSet().validPositions[pos];\r\n test = testPos.match;\r\n ndxIntlzr = testPos.locator.slice();\r\n setEntry(buffer[pos]);\r\n } else {\r\n testPos = getTestTemplate(pos, ndxIntlzr, pos - 1);\r\n test = testPos.match;\r\n ndxIntlzr = testPos.locator.slice();\r\n if (opts.jitMasking === false || pos < lvp || typeof opts.jitMasking === \"number\" && isFinite(opts.jitMasking) && opts.jitMasking > pos) {\r\n setEntry(getPlaceholder(pos, test));\r\n } else isStatic = false;\r\n }\r\n pos++;\r\n } while ((maxLength === undefined || pos < maxLength) && (test.fn !== null || test.def !== \"\") || lvp > pos || isStatic);\r\n if (isStatic) setEntry();\r\n setCaret();\r\n }\r\n var template = colorMask.getElementsByTagName(\"div\")[0];\r\n template.innerHTML = maskTemplate.join(\"\");\r\n input.inputmask.positionColorMask(input, template);\r\n }\r\n }\r\n function mask(elem) {\r\n function isElementTypeSupported(input, opts) {\r\n function patchValueProperty(npt) {\r\n var valueGet;\r\n var valueSet;\r\n function patchValhook(type) {\r\n if ($.valHooks && ($.valHooks[type] === undefined || $.valHooks[type].inputmaskpatch !== true)) {\r\n var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function (elem) {\r\n return elem.value;\r\n };\r\n var valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function (elem, value) {\r\n elem.value = value;\r\n return elem;\r\n };\r\n $.valHooks[type] = {\r\n get: function get(elem) {\r\n if (elem.inputmask) {\r\n if (elem.inputmask.opts.autoUnmask) {\r\n return elem.inputmask.unmaskedvalue();\r\n } else {\r\n var result = valhookGet(elem);\r\n return getLastValidPosition(undefined, undefined, elem.inputmask.maskset.validPositions) !== -1 || opts.nullable !== true ? result : \"\";\r\n }\r\n } else return valhookGet(elem);\r\n },\r\n set: function set(elem, value) {\r\n var $elem = $(elem), result;\r\n result = valhookSet(elem, value);\r\n if (elem.inputmask) {\r\n $elem.trigger(\"setvalue\", [value]);\r\n }\r\n return result;\r\n },\r\n inputmaskpatch: true\r\n };\r\n }\r\n }\r\n function getter() {\r\n if (this.inputmask) {\r\n return this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : getLastValidPosition() !== -1 || opts.nullable !== true ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join(\"\") : valueGet.call(this) : \"\";\r\n } else return valueGet.call(this);\r\n }\r\n function setter(value) {\r\n valueSet.call(this, value);\r\n if (this.inputmask) {\r\n $(this).trigger(\"setvalue\", [value]);\r\n }\r\n }\r\n function installNativeValueSetFallback(npt) {\r\n EventRuler.on(npt, \"mouseenter\", function (event) {\r\n var $input = $(this), input = this, value = input.inputmask._valueGet();\r\n if (value !== getBuffer().join(\"\")) {\r\n $input.trigger(\"setvalue\");\r\n }\r\n });\r\n }\r\n if (!npt.inputmask.__valueGet) {\r\n if (opts.noValuePatching !== true) {\r\n if (Object.getOwnPropertyDescriptor) {\r\n if (typeof Object.getPrototypeOf !== \"function\") {\r\n Object.getPrototypeOf = _typeof(\"test\".__proto__) === \"object\" ? function (object) {\r\n return object.__proto__;\r\n } : function (object) {\r\n return object.constructor.prototype;\r\n };\r\n }\r\n var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), \"value\") : undefined;\r\n if (valueProperty && valueProperty.get && valueProperty.set) {\r\n valueGet = valueProperty.get;\r\n valueSet = valueProperty.set;\r\n Object.defineProperty(npt, \"value\", {\r\n get: getter,\r\n set: setter,\r\n configurable: true\r\n });\r\n } else if (npt.tagName !== \"INPUT\") {\r\n valueGet = function valueGet() {\r\n return this.textContent;\r\n };\r\n valueSet = function valueSet(value) {\r\n this.textContent = value;\r\n };\r\n Object.defineProperty(npt, \"value\", {\r\n get: getter,\r\n set: setter,\r\n configurable: true\r\n });\r\n }\r\n } else if (document.__lookupGetter__ && npt.__lookupGetter__(\"value\")) {\r\n valueGet = npt.__lookupGetter__(\"value\");\r\n valueSet = npt.__lookupSetter__(\"value\");\r\n npt.__defineGetter__(\"value\", getter);\r\n npt.__defineSetter__(\"value\", setter);\r\n }\r\n npt.inputmask.__valueGet = valueGet;\r\n npt.inputmask.__valueSet = valueSet;\r\n }\r\n npt.inputmask._valueGet = function (overruleRTL) {\r\n return isRTL && overruleRTL !== true ? valueGet.call(this.el).split(\"\").reverse().join(\"\") : valueGet.call(this.el);\r\n };\r\n npt.inputmask._valueSet = function (value, overruleRTL) {\r\n valueSet.call(this.el, value === null || value === undefined ? \"\" : overruleRTL !== true && isRTL ? value.split(\"\").reverse().join(\"\") : value);\r\n };\r\n if (valueGet === undefined) {\r\n valueGet = function valueGet() {\r\n return this.value;\r\n };\r\n valueSet = function valueSet(value) {\r\n this.value = value;\r\n };\r\n patchValhook(npt.type);\r\n installNativeValueSetFallback(npt);\r\n }\r\n }\r\n }\r\n var elementType = input.getAttribute(\"type\");\r\n var isSupported = input.tagName === \"INPUT\" && $.inArray(elementType, opts.supportsInputType) !== -1 || input.isContentEditable || input.tagName === \"TEXTAREA\";\r\n if (!isSupported) {\r\n if (input.tagName === \"INPUT\") {\r\n var el = document.createElement(\"input\");\r\n el.setAttribute(\"type\", elementType);\r\n isSupported = el.type === \"text\";\r\n el = null;\r\n } else isSupported = \"partial\";\r\n }\r\n if (isSupported !== false) {\r\n patchValueProperty(input);\r\n } else input.inputmask = undefined;\r\n return isSupported;\r\n }\r\n EventRuler.off(elem);\r\n var isSupported = isElementTypeSupported(elem, opts);\r\n if (isSupported !== false) {\r\n el = elem;\r\n $el = $(el);\r\n originalPlaceholder = el.placeholder;\r\n maxLength = el !== undefined ? el.maxLength : undefined;\r\n if (maxLength === -1) maxLength = undefined;\r\n if (opts.colorMask === true) {\r\n initializeColorMask(el);\r\n }\r\n if (mobile) {\r\n if (\"inputmode\" in el) {\r\n el.inputmode = opts.inputmode;\r\n el.setAttribute(\"inputmode\", opts.inputmode);\r\n }\r\n if (opts.disablePredictiveText === true) {\r\n if (\"autocorrect\" in el) {\r\n el.autocorrect = false;\r\n } else {\r\n if (opts.colorMask !== true) {\r\n initializeColorMask(el);\r\n }\r\n el.type = \"password\";\r\n }\r\n }\r\n }\r\n if (isSupported === true) {\r\n el.setAttribute(\"im-insert\", opts.insertMode);\r\n EventRuler.on(el, \"submit\", EventHandlers.submitEvent);\r\n EventRuler.on(el, \"reset\", EventHandlers.resetEvent);\r\n EventRuler.on(el, \"blur\", EventHandlers.blurEvent);\r\n EventRuler.on(el, \"focus\", EventHandlers.focusEvent);\r\n if (opts.colorMask !== true) {\r\n EventRuler.on(el, \"click\", EventHandlers.clickEvent);\r\n EventRuler.on(el, \"mouseleave\", EventHandlers.mouseleaveEvent);\r\n EventRuler.on(el, \"mouseenter\", EventHandlers.mouseenterEvent);\r\n }\r\n EventRuler.on(el, \"paste\", EventHandlers.pasteEvent);\r\n EventRuler.on(el, \"cut\", EventHandlers.cutEvent);\r\n EventRuler.on(el, \"complete\", opts.oncomplete);\r\n EventRuler.on(el, \"incomplete\", opts.onincomplete);\r\n EventRuler.on(el, \"cleared\", opts.oncleared);\r\n if (!mobile && opts.inputEventOnly !== true) {\r\n EventRuler.on(el, \"keydown\", EventHandlers.keydownEvent);\r\n EventRuler.on(el, \"keypress\", EventHandlers.keypressEvent);\r\n } else {\r\n el.removeAttribute(\"maxLength\");\r\n }\r\n EventRuler.on(el, \"input\", EventHandlers.inputFallBackEvent);\r\n EventRuler.on(el, \"beforeinput\", EventHandlers.beforeInputEvent);\r\n }\r\n EventRuler.on(el, \"setvalue\", EventHandlers.setValueEvent);\r\n undoValue = getBufferTemplate().join(\"\");\r\n if (el.inputmask._valueGet(true) !== \"\" || opts.clearMaskOnLostFocus === false || document.activeElement === el) {\r\n var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, el.inputmask._valueGet(true), opts) || el.inputmask._valueGet(true) : el.inputmask._valueGet(true);\r\n if (initialValue !== \"\") checkVal(el, true, false, initialValue.split(\"\"));\r\n var buffer = getBuffer().slice();\r\n undoValue = buffer.join(\"\");\r\n if (isComplete(buffer) === false) {\r\n if (opts.clearIncomplete) {\r\n resetMaskSet();\r\n }\r\n }\r\n if (opts.clearMaskOnLostFocus && document.activeElement !== el) {\r\n if (getLastValidPosition() === -1) {\r\n buffer = [];\r\n } else {\r\n clearOptionalTail(buffer);\r\n }\r\n }\r\n if (opts.clearMaskOnLostFocus === false || opts.showMaskOnFocus && document.activeElement === el || el.inputmask._valueGet(true) !== \"\") writeBuffer(el, buffer);\r\n if (document.activeElement === el) {\r\n caret(el, seekNext(getLastValidPosition()));\r\n }\r\n }\r\n }\r\n }\r\n var valueBuffer;\r\n if (actionObj !== undefined) {\r\n switch (actionObj.action) {\r\n case \"isComplete\":\r\n el = actionObj.el;\r\n return isComplete(getBuffer());\r\n\r\n case \"unmaskedvalue\":\r\n if (el === undefined || actionObj.value !== undefined) {\r\n valueBuffer = actionObj.value;\r\n valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, valueBuffer, opts) || valueBuffer : valueBuffer).split(\"\");\r\n checkVal.call(this, undefined, false, false, valueBuffer);\r\n if ($.isFunction(opts.onBeforeWrite)) opts.onBeforeWrite.call(inputmask, undefined, getBuffer(), 0, opts);\r\n }\r\n return unmaskedvalue(el);\r\n\r\n case \"mask\":\r\n mask(el);\r\n break;\r\n\r\n case \"format\":\r\n valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, actionObj.value, opts) || actionObj.value : actionObj.value).split(\"\");\r\n checkVal.call(this, undefined, true, false, valueBuffer);\r\n if (actionObj.metadata) {\r\n return {\r\n value: isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\"),\r\n metadata: maskScope.call(this, {\r\n action: \"getmetadata\"\r\n }, maskset, opts)\r\n };\r\n }\r\n return isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\");\r\n\r\n case \"isValid\":\r\n if (actionObj.value) {\r\n valueBuffer = actionObj.value.split(\"\");\r\n checkVal.call(this, undefined, true, true, valueBuffer);\r\n } else {\r\n actionObj.value = getBuffer().join(\"\");\r\n }\r\n var buffer = getBuffer();\r\n var rl = determineLastRequiredPosition(), lmib = buffer.length - 1;\r\n for (; lmib > rl; lmib--) {\r\n if (isMask(lmib)) break;\r\n }\r\n buffer.splice(rl, lmib + 1 - rl);\r\n return isComplete(buffer) && actionObj.value === getBuffer().join(\"\");\r\n\r\n case \"getemptymask\":\r\n return getBufferTemplate().join(\"\");\r\n\r\n case \"remove\":\r\n if (el && el.inputmask) {\r\n $.data(el, \"_inputmask_opts\", null);\r\n $el = $(el);\r\n el.inputmask._valueSet(opts.autoUnmask ? unmaskedvalue(el) : el.inputmask._valueGet(true));\r\n EventRuler.off(el);\r\n if (el.inputmask.colorMask) {\r\n colorMask = el.inputmask.colorMask;\r\n colorMask.removeChild(el);\r\n colorMask.parentNode.insertBefore(el, colorMask);\r\n colorMask.parentNode.removeChild(colorMask);\r\n }\r\n var valueProperty;\r\n if (Object.getOwnPropertyDescriptor && Object.getPrototypeOf) {\r\n valueProperty = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), \"value\");\r\n if (valueProperty) {\r\n if (el.inputmask.__valueGet) {\r\n Object.defineProperty(el, \"value\", {\r\n get: el.inputmask.__valueGet,\r\n set: el.inputmask.__valueSet,\r\n configurable: true\r\n });\r\n }\r\n }\r\n } else if (document.__lookupGetter__ && el.__lookupGetter__(\"value\")) {\r\n if (el.inputmask.__valueGet) {\r\n el.__defineGetter__(\"value\", el.inputmask.__valueGet);\r\n el.__defineSetter__(\"value\", el.inputmask.__valueSet);\r\n }\r\n }\r\n el.inputmask = undefined;\r\n }\r\n return el;\r\n break;\r\n\r\n case \"getmetadata\":\r\n if ($.isArray(maskset.metadata)) {\r\n var maskTarget = getMaskTemplate(true, 0, false).join(\"\");\r\n $.each(maskset.metadata, function (ndx, mtdt) {\r\n if (mtdt.mask === maskTarget) {\r\n maskTarget = mtdt;\r\n return false;\r\n }\r\n });\r\n return maskTarget;\r\n }\r\n return maskset.metadata;\r\n }\r\n }\r\n }\r\n return Inputmask;\r\n });\r\n}, function (module, exports, __webpack_require__) {\r\n \"use strict\";\r\n var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\r\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\r\n return typeof obj;\r\n } : function (obj) {\r\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\r\n };\r\n (function (factory) {\r\n if (true) {\r\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_FACTORY__ = factory,\r\n __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \"function\" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__,\r\n __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n } else { }\r\n })(function ($) {\r\n return $;\r\n });\r\n}, function (module, exports) {\r\n module.exports = jQuery;\r\n}, function (module, exports, __webpack_require__) {\r\n \"use strict\";\r\n var __WEBPACK_AMD_DEFINE_RESULT__;\r\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\r\n return typeof obj;\r\n } : function (obj) {\r\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\r\n };\r\n if (true) !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\r\n return typeof window !== \"undefined\" ? window : new (eval(\"require('jsdom').JSDOM\"))(\"\").window;\r\n }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); else { }\r\n}, function (module, exports, __webpack_require__) {\r\n \"use strict\";\r\n var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\r\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\r\n return typeof obj;\r\n } : function (obj) {\r\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\r\n };\r\n (function (factory) {\r\n if (true) {\r\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2)], __WEBPACK_AMD_DEFINE_FACTORY__ = factory,\r\n __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \"function\" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__,\r\n __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n } else { }\r\n })(function (Inputmask) {\r\n var $ = Inputmask.dependencyLib;\r\n var formatCode = {\r\n d: [\"[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", Date.prototype.getDate],\r\n dd: [\"0[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", function () {\r\n return pad(Date.prototype.getDate.call(this), 2);\r\n }],\r\n ddd: [\"\"],\r\n dddd: [\"\"],\r\n m: [\"[1-9]|1[012]\", Date.prototype.setMonth, \"month\", function () {\r\n return Date.prototype.getMonth.call(this) + 1;\r\n }],\r\n mm: [\"0[1-9]|1[012]\", Date.prototype.setMonth, \"month\", function () {\r\n return pad(Date.prototype.getMonth.call(this) + 1, 2);\r\n }],\r\n mmm: [\"\"],\r\n mmmm: [\"\"],\r\n yy: [\"[0-9]{2}\", Date.prototype.setFullYear, \"year\", function () {\r\n return pad(Date.prototype.getFullYear.call(this), 2);\r\n }],\r\n yyyy: [\"[0-9]{4}\", Date.prototype.setFullYear, \"year\", function () {\r\n return pad(Date.prototype.getFullYear.call(this), 4);\r\n }],\r\n h: [\"[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours],\r\n hh: [\"0[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", function () {\r\n return pad(Date.prototype.getHours.call(this), 2);\r\n }],\r\n hhh: [\"[0-9]+\", Date.prototype.setHours, \"hours\", Date.prototype.getHours],\r\n H: [\"1?[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours],\r\n HH: [\"0[0-9]|1[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", function () {\r\n return pad(Date.prototype.getHours.call(this), 2);\r\n }],\r\n HHH: [\"[0-9]+\", Date.prototype.setHours, \"hours\", Date.prototype.getHours],\r\n M: [\"[1-5]?[0-9]\", Date.prototype.setMinutes, \"minutes\", Date.prototype.getMinutes],\r\n MM: [\"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setMinutes, \"minutes\", function () {\r\n return pad(Date.prototype.getMinutes.call(this), 2);\r\n }],\r\n ss: [\"[0-5][0-9]\", Date.prototype.setSeconds, \"seconds\", function () {\r\n return pad(Date.prototype.getSeconds.call(this), 2);\r\n }],\r\n l: [\"[0-9]{3}\", Date.prototype.setMilliseconds, \"milliseconds\", function () {\r\n return pad(Date.prototype.getMilliseconds.call(this), 3);\r\n }],\r\n L: [\"[0-9]{2}\", Date.prototype.setMilliseconds, \"milliseconds\", function () {\r\n return pad(Date.prototype.getMilliseconds.call(this), 2);\r\n }],\r\n t: [\"[ap]\"],\r\n tt: [\"[ap]m\"],\r\n T: [\"[AP]\"],\r\n TT: [\"[AP]M\"],\r\n Z: [\"\"],\r\n o: [\"\"],\r\n S: [\"\"]\r\n }, formatAlias = {\r\n isoDate: \"yyyy-mm-dd\",\r\n isoTime: \"HH:MM:ss\",\r\n isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\r\n isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\"\r\n };\r\n function getTokenizer(opts) {\r\n if (!opts.tokenizer) {\r\n var tokens = [];\r\n for (var ndx in formatCode) {\r\n if (tokens.indexOf(ndx[0]) === -1) tokens.push(ndx[0]);\r\n }\r\n opts.tokenizer = \"(\" + tokens.join(\"+|\") + \")+?|.\";\r\n opts.tokenizer = new RegExp(opts.tokenizer, \"g\");\r\n }\r\n return opts.tokenizer;\r\n }\r\n function isValidDate(dateParts, currentResult) {\r\n return !isFinite(dateParts.rawday) || dateParts.day == \"29\" && !isFinite(dateParts.rawyear) || new Date(dateParts.date.getFullYear(), isFinite(dateParts.rawmonth) ? dateParts.month : dateParts.date.getMonth() + 1, 0).getDate() >= dateParts.day ? currentResult : false;\r\n }\r\n function isDateInRange(dateParts, opts) {\r\n var result = true;\r\n if (opts.min) {\r\n if (dateParts[\"rawyear\"]) {\r\n var rawYear = dateParts[\"rawyear\"].replace(/[^0-9]/g, \"\"), minYear = opts.min.year.substr(0, rawYear.length);\r\n result = minYear <= rawYear;\r\n }\r\n if (dateParts[\"year\"] === dateParts[\"rawyear\"]) {\r\n if (opts.min.date.getTime() === opts.min.date.getTime()) {\r\n result = opts.min.date.getTime() <= dateParts.date.getTime();\r\n }\r\n }\r\n }\r\n if (result && opts.max && opts.max.date.getTime() === opts.max.date.getTime()) {\r\n result = opts.max.date.getTime() >= dateParts.date.getTime();\r\n }\r\n return result;\r\n }\r\n function parse(format, dateObjValue, opts, raw) {\r\n var mask = \"\", match;\r\n while (match = getTokenizer(opts).exec(format)) {\r\n if (dateObjValue === undefined) {\r\n if (formatCode[match[0]]) {\r\n mask += \"(\" + formatCode[match[0]][0] + \")\";\r\n } else {\r\n switch (match[0]) {\r\n case \"[\":\r\n mask += \"(\";\r\n break;\r\n\r\n case \"]\":\r\n mask += \")?\";\r\n break;\r\n\r\n default:\r\n mask += Inputmask.escapeRegex(match[0]);\r\n }\r\n }\r\n } else {\r\n if (formatCode[match[0]]) {\r\n if (raw !== true && formatCode[match[0]][3]) {\r\n var getFn = formatCode[match[0]][3];\r\n mask += getFn.call(dateObjValue.date);\r\n } else if (formatCode[match[0]][2]) mask += dateObjValue[\"raw\" + formatCode[match[0]][2]]; else mask += match[0];\r\n } else mask += match[0];\r\n }\r\n }\r\n return mask;\r\n }\r\n function pad(val, len) {\r\n val = String(val);\r\n len = len || 2;\r\n while (val.length < len) {\r\n val = \"0\" + val;\r\n }\r\n return val;\r\n }\r\n function analyseMask(maskString, format, opts) {\r\n var dateObj = {\r\n date: new Date(1, 0, 1)\r\n }, targetProp, mask = maskString, match, dateOperation, targetValidator;\r\n function extendProperty(value) {\r\n var correctedValue = value.replace(/[^0-9]/g, \"0\");\r\n if (correctedValue != value) {\r\n var enteredPart = value.replace(/[^0-9]/g, \"\"), min = (opts.min && opts.min[targetProp] || value).toString(), max = (opts.max && opts.max[targetProp] || value).toString();\r\n correctedValue = enteredPart + (enteredPart < min.slice(0, enteredPart.length) ? min.slice(enteredPart.length) : enteredPart > max.slice(0, enteredPart.length) ? max.slice(enteredPart.length) : correctedValue.toString().slice(enteredPart.length));\r\n }\r\n return correctedValue;\r\n }\r\n function setValue(dateObj, value, opts) {\r\n dateObj[targetProp] = extendProperty(value);\r\n dateObj[\"raw\" + targetProp] = value;\r\n if (dateOperation !== undefined) dateOperation.call(dateObj.date, targetProp == \"month\" ? parseInt(dateObj[targetProp]) - 1 : dateObj[targetProp]);\r\n }\r\n if (typeof mask === \"string\") {\r\n while (match = getTokenizer(opts).exec(format)) {\r\n var value = mask.slice(0, match[0].length);\r\n if (formatCode.hasOwnProperty(match[0])) {\r\n targetValidator = formatCode[match[0]][0];\r\n targetProp = formatCode[match[0]][2];\r\n dateOperation = formatCode[match[0]][1];\r\n setValue(dateObj, value, opts);\r\n }\r\n mask = mask.slice(value.length);\r\n }\r\n return dateObj;\r\n } else if (mask && (typeof mask === \"undefined\" ? \"undefined\" : _typeof(mask)) === \"object\" && mask.hasOwnProperty(\"date\")) {\r\n return mask;\r\n }\r\n return undefined;\r\n }\r\n Inputmask.extendAliases({\r\n datetime: {\r\n mask: function mask(opts) {\r\n formatCode.S = opts.i18n.ordinalSuffix.join(\"|\");\r\n opts.inputFormat = formatAlias[opts.inputFormat] || opts.inputFormat;\r\n opts.displayFormat = formatAlias[opts.displayFormat] || opts.displayFormat || opts.inputFormat;\r\n opts.outputFormat = formatAlias[opts.outputFormat] || opts.outputFormat || opts.inputFormat;\r\n opts.placeholder = opts.placeholder !== \"\" ? opts.placeholder : opts.inputFormat.replace(/[\\[\\]]/, \"\");\r\n opts.regex = parse(opts.inputFormat, undefined, opts);\r\n return null;\r\n },\r\n placeholder: \"\",\r\n inputFormat: \"isoDateTime\",\r\n displayFormat: undefined,\r\n outputFormat: undefined,\r\n min: null,\r\n max: null,\r\n i18n: {\r\n dayNames: [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"],\r\n monthNames: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\r\n ordinalSuffix: [\"st\", \"nd\", \"rd\", \"th\"]\r\n },\r\n postValidation: function postValidation(buffer, pos, currentResult, opts) {\r\n opts.min = analyseMask(opts.min, opts.inputFormat, opts);\r\n opts.max = analyseMask(opts.max, opts.inputFormat, opts);\r\n var result = currentResult, dateParts = analyseMask(buffer.join(\"\"), opts.inputFormat, opts);\r\n if (result && dateParts.date.getTime() === dateParts.date.getTime()) {\r\n result = isValidDate(dateParts, result);\r\n result = result && isDateInRange(dateParts, opts);\r\n }\r\n if (pos && result && currentResult.pos !== pos) {\r\n return {\r\n buffer: parse(opts.inputFormat, dateParts, opts),\r\n refreshFromBuffer: {\r\n start: pos,\r\n end: currentResult.pos\r\n }\r\n };\r\n }\r\n return result;\r\n },\r\n onKeyDown: function onKeyDown(e, buffer, caretPos, opts) {\r\n var input = this;\r\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\r\n var today = new Date(), match, date = \"\";\r\n while (match = getTokenizer(opts).exec(opts.inputFormat)) {\r\n if (match[0].charAt(0) === \"d\") {\r\n date += pad(today.getDate(), match[0].length);\r\n } else if (match[0].charAt(0) === \"m\") {\r\n date += pad(today.getMonth() + 1, match[0].length);\r\n } else if (match[0] === \"yyyy\") {\r\n date += today.getFullYear().toString();\r\n } else if (match[0].charAt(0) === \"y\") {\r\n date += pad(today.getYear(), match[0].length);\r\n }\r\n }\r\n input.inputmask._valueSet(date);\r\n $(input).trigger(\"setvalue\");\r\n }\r\n },\r\n onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\r\n return parse(opts.outputFormat, analyseMask(maskedValue, opts.inputFormat, opts), opts, true);\r\n },\r\n casing: function casing(elem, test, pos, validPositions) {\r\n if (test.nativeDef.indexOf(\"[ap]\") == 0) return elem.toLowerCase();\r\n if (test.nativeDef.indexOf(\"[AP]\") == 0) return elem.toUpperCase();\r\n return elem;\r\n },\r\n insertMode: false,\r\n shiftPositions: false\r\n }\r\n });\r\n return Inputmask;\r\n });\r\n}, function (module, exports, __webpack_require__) {\r\n \"use strict\";\r\n var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\r\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\r\n return typeof obj;\r\n } : function (obj) {\r\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\r\n };\r\n (function (factory) {\r\n if (true) {\r\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2)], __WEBPACK_AMD_DEFINE_FACTORY__ = factory,\r\n __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \"function\" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__,\r\n __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n } else { }\r\n })(function (Inputmask) {\r\n var $ = Inputmask.dependencyLib;\r\n function autoEscape(txt, opts) {\r\n var escapedTxt = \"\";\r\n for (var i = 0; i < txt.length; i++) {\r\n if (Inputmask.prototype.definitions[txt.charAt(i)] || opts.definitions[txt.charAt(i)] || opts.optionalmarker.start === txt.charAt(i) || opts.optionalmarker.end === txt.charAt(i) || opts.quantifiermarker.start === txt.charAt(i) || opts.quantifiermarker.end === txt.charAt(i) || opts.groupmarker.start === txt.charAt(i) || opts.groupmarker.end === txt.charAt(i) || opts.alternatormarker === txt.charAt(i)) {\r\n escapedTxt += \"\\\\\" + txt.charAt(i);\r\n } else escapedTxt += txt.charAt(i);\r\n }\r\n return escapedTxt;\r\n }\r\n function alignDigits(buffer, digits, opts) {\r\n if (digits > 0) {\r\n var radixPosition = $.inArray(opts.radixPoint, buffer);\r\n if (radixPosition === -1) {\r\n buffer.push(opts.radixPoint);\r\n radixPosition = buffer.length - 1;\r\n }\r\n for (var i = 1; i <= digits; i++) {\r\n buffer[radixPosition + i] = buffer[radixPosition + i] || \"0\";\r\n }\r\n }\r\n return buffer;\r\n }\r\n Inputmask.extendAliases({\r\n numeric: {\r\n mask: function mask(opts) {\r\n if (opts.repeat !== 0 && isNaN(opts.integerDigits)) {\r\n opts.integerDigits = opts.repeat;\r\n }\r\n opts.repeat = 0;\r\n if (opts.groupSeparator === opts.radixPoint && opts.digits && opts.digits !== \"0\") {\r\n if (opts.radixPoint === \".\") {\r\n opts.groupSeparator = \",\";\r\n } else if (opts.radixPoint === \",\") {\r\n opts.groupSeparator = \".\";\r\n } else opts.groupSeparator = \"\";\r\n }\r\n if (opts.groupSeparator === \" \") {\r\n opts.skipOptionalPartCharacter = undefined;\r\n }\r\n opts.autoGroup = opts.autoGroup && opts.groupSeparator !== \"\";\r\n if (opts.autoGroup) {\r\n if (typeof opts.groupSize == \"string\" && isFinite(opts.groupSize)) opts.groupSize = parseInt(opts.groupSize);\r\n if (isFinite(opts.integerDigits)) {\r\n var seps = Math.floor(opts.integerDigits / opts.groupSize);\r\n var mod = opts.integerDigits % opts.groupSize;\r\n opts.integerDigits = parseInt(opts.integerDigits) + (mod === 0 ? seps - 1 : seps);\r\n if (opts.integerDigits < 1) {\r\n opts.integerDigits = \"*\";\r\n }\r\n }\r\n }\r\n if (opts.placeholder.length > 1) {\r\n opts.placeholder = opts.placeholder.charAt(0);\r\n }\r\n if (opts.positionCaretOnClick === \"radixFocus\" && opts.placeholder === \"\" && opts.integerOptional === false) {\r\n opts.positionCaretOnClick = \"lvp\";\r\n }\r\n opts.definitions[\";\"] = opts.definitions[\"~\"];\r\n opts.definitions[\";\"].definitionSymbol = \"~\";\r\n if (opts.numericInput === true) {\r\n opts.positionCaretOnClick = opts.positionCaretOnClick === \"radixFocus\" ? \"lvp\" : opts.positionCaretOnClick;\r\n opts.digitsOptional = false;\r\n if (isNaN(opts.digits)) opts.digits = 2;\r\n opts.decimalProtect = false;\r\n }\r\n var mask = \"[+]\";\r\n mask += autoEscape(opts.prefix, opts);\r\n if (opts.integerOptional === true) {\r\n mask += \"~{1,\" + opts.integerDigits + \"}\";\r\n } else mask += \"~{\" + opts.integerDigits + \"}\";\r\n if (opts.digits !== undefined) {\r\n var radixDef = opts.decimalProtect ? \":\" : opts.radixPoint;\r\n var dq = opts.digits.toString().split(\",\");\r\n if (isFinite(dq[0]) && dq[1] && isFinite(dq[1])) {\r\n mask += radixDef + \";{\" + opts.digits + \"}\";\r\n } else if (isNaN(opts.digits) || parseInt(opts.digits) > 0) {\r\n if (opts.digitsOptional) {\r\n mask += \"[\" + radixDef + \";{1,\" + opts.digits + \"}]\";\r\n } else mask += radixDef + \";{\" + opts.digits + \"}\";\r\n }\r\n }\r\n mask += autoEscape(opts.suffix, opts);\r\n mask += \"[-]\";\r\n opts.greedy = false;\r\n return mask;\r\n },\r\n placeholder: \"\",\r\n greedy: false,\r\n digits: \"*\",\r\n digitsOptional: true,\r\n enforceDigitsOnBlur: false,\r\n radixPoint: \".\",\r\n positionCaretOnClick: \"radixFocus\",\r\n groupSize: 3,\r\n groupSeparator: \"\",\r\n autoGroup: false,\r\n allowMinus: true,\r\n negationSymbol: {\r\n front: \"-\",\r\n back: \"\"\r\n },\r\n integerDigits: \"+\",\r\n integerOptional: true,\r\n prefix: \"\",\r\n suffix: \"\",\r\n rightAlign: true,\r\n decimalProtect: true,\r\n min: null,\r\n max: null,\r\n step: 1,\r\n insertMode: true,\r\n autoUnmask: false,\r\n unmaskAsNumber: false,\r\n inputType: \"text\",\r\n inputmode: \"numeric\",\r\n preValidation: function preValidation(buffer, pos, c, isSelection, opts, maskset) {\r\n if (c === \"-\" || c === opts.negationSymbol.front) {\r\n if (opts.allowMinus !== true) return false;\r\n opts.isNegative = opts.isNegative === undefined ? true : !opts.isNegative;\r\n if (buffer.join(\"\") === \"\") return true;\r\n return {\r\n caret: maskset.validPositions[pos] ? pos : undefined,\r\n dopost: true\r\n };\r\n }\r\n if (isSelection === false && c === opts.radixPoint && opts.digits !== undefined && (isNaN(opts.digits) || parseInt(opts.digits) > 0)) {\r\n var radixPos = $.inArray(opts.radixPoint, buffer);\r\n if (radixPos !== -1 && maskset.validPositions[radixPos] !== undefined) {\r\n if (opts.numericInput === true) {\r\n return pos === radixPos;\r\n }\r\n return {\r\n caret: radixPos + 1\r\n };\r\n }\r\n }\r\n return true;\r\n },\r\n postValidation: function postValidation(buffer, pos, currentResult, opts) {\r\n function buildPostMask(buffer, opts) {\r\n var postMask = \"\";\r\n postMask += \"(\" + opts.groupSeparator + \"*{\" + opts.groupSize + \"}){*}\";\r\n if (opts.radixPoint !== \"\") {\r\n var radixSplit = buffer.join(\"\").split(opts.radixPoint);\r\n if (radixSplit[1]) {\r\n postMask += opts.radixPoint + \"*{\" + radixSplit[1].match(/^\\d*\\??\\d*/)[0].length + \"}\";\r\n }\r\n }\r\n return postMask;\r\n }\r\n var suffix = opts.suffix.split(\"\"), prefix = opts.prefix.split(\"\");\r\n if (currentResult.pos === undefined && currentResult.caret !== undefined && currentResult.dopost !== true) return currentResult;\r\n var caretPos = currentResult.caret !== undefined ? currentResult.caret : currentResult.pos;\r\n var maskedValue = buffer.slice();\r\n if (opts.numericInput) {\r\n caretPos = maskedValue.length - caretPos - 1;\r\n maskedValue = maskedValue.reverse();\r\n }\r\n var charAtPos = maskedValue[caretPos];\r\n if (charAtPos === opts.groupSeparator) {\r\n caretPos += 1;\r\n charAtPos = maskedValue[caretPos];\r\n }\r\n if (caretPos === maskedValue.length - opts.suffix.length - 1 && charAtPos === opts.radixPoint) return currentResult;\r\n if (charAtPos !== undefined) {\r\n if (charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back) {\r\n maskedValue[caretPos] = \"?\";\r\n if (opts.prefix.length > 0 && caretPos >= (opts.isNegative === false ? 1 : 0) && caretPos < opts.prefix.length - 1 + (opts.isNegative === false ? 1 : 0)) {\r\n prefix[caretPos - (opts.isNegative === false ? 1 : 0)] = \"?\";\r\n } else if (opts.suffix.length > 0 && caretPos >= maskedValue.length - opts.suffix.length - (opts.isNegative === false ? 1 : 0)) {\r\n suffix[caretPos - (maskedValue.length - opts.suffix.length - (opts.isNegative === false ? 1 : 0))] = \"?\";\r\n }\r\n }\r\n }\r\n prefix = prefix.join(\"\");\r\n suffix = suffix.join(\"\");\r\n var processValue = maskedValue.join(\"\").replace(prefix, \"\");\r\n processValue = processValue.replace(suffix, \"\");\r\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\r\n processValue = processValue.replace(new RegExp(\"[-\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"]\", \"g\"), \"\");\r\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\r\n if (isNaN(opts.placeholder)) {\r\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.placeholder), \"g\"), \"\");\r\n }\r\n if (processValue.length > 1 && processValue.indexOf(opts.radixPoint) !== 1) {\r\n if (charAtPos === \"0\") {\r\n processValue = processValue.replace(/^\\?/g, \"\");\r\n }\r\n processValue = processValue.replace(/^0/g, \"\");\r\n }\r\n if (processValue.charAt(0) === opts.radixPoint && opts.radixPoint !== \"\" && opts.numericInput !== true) {\r\n processValue = \"0\" + processValue;\r\n }\r\n if (processValue !== \"\") {\r\n processValue = processValue.split(\"\");\r\n if ((!opts.digitsOptional || opts.enforceDigitsOnBlur && currentResult.event === \"blur\") && isFinite(opts.digits)) {\r\n var radixPosition = $.inArray(opts.radixPoint, processValue);\r\n var rpb = $.inArray(opts.radixPoint, maskedValue);\r\n if (radixPosition === -1) {\r\n processValue.push(opts.radixPoint);\r\n radixPosition = processValue.length - 1;\r\n }\r\n for (var i = 1; i <= opts.digits; i++) {\r\n if ((!opts.digitsOptional || opts.enforceDigitsOnBlur && currentResult.event === \"blur\") && (processValue[radixPosition + i] === undefined || processValue[radixPosition + i] === opts.placeholder.charAt(0))) {\r\n processValue[radixPosition + i] = currentResult.placeholder || opts.placeholder.charAt(0);\r\n } else if (rpb !== -1 && maskedValue[rpb + i] !== undefined) {\r\n processValue[radixPosition + i] = processValue[radixPosition + i] || maskedValue[rpb + i];\r\n }\r\n }\r\n }\r\n if (opts.autoGroup === true && opts.groupSeparator !== \"\" && (charAtPos !== opts.radixPoint || currentResult.pos !== undefined || currentResult.dopost)) {\r\n var addRadix = processValue[processValue.length - 1] === opts.radixPoint && currentResult.c === opts.radixPoint;\r\n processValue = Inputmask(buildPostMask(processValue, opts), {\r\n numericInput: true,\r\n jitMasking: true,\r\n definitions: {\r\n \"*\": {\r\n validator: \"[0-9?]\",\r\n cardinality: 1\r\n }\r\n }\r\n }).format(processValue.join(\"\"));\r\n if (addRadix) processValue += opts.radixPoint;\r\n if (processValue.charAt(0) === opts.groupSeparator) {\r\n processValue.substr(1);\r\n }\r\n } else processValue = processValue.join(\"\");\r\n }\r\n if (opts.isNegative && currentResult.event === \"blur\") {\r\n opts.isNegative = processValue !== \"0\";\r\n }\r\n processValue = prefix + processValue;\r\n processValue += suffix;\r\n if (opts.isNegative) {\r\n processValue = opts.negationSymbol.front + processValue;\r\n processValue += opts.negationSymbol.back;\r\n }\r\n processValue = processValue.split(\"\");\r\n if (charAtPos !== undefined) {\r\n if (charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back) {\r\n caretPos = $.inArray(\"?\", processValue);\r\n if (caretPos > -1) {\r\n processValue[caretPos] = charAtPos;\r\n } else caretPos = currentResult.caret || 0;\r\n } else if (charAtPos === opts.radixPoint || charAtPos === opts.negationSymbol.front || charAtPos === opts.negationSymbol.back) {\r\n var newCaretPos = $.inArray(charAtPos, processValue);\r\n if (newCaretPos !== -1) caretPos = newCaretPos;\r\n }\r\n }\r\n if (opts.numericInput) {\r\n caretPos = processValue.length - caretPos - 1;\r\n processValue = processValue.reverse();\r\n }\r\n var rslt = {\r\n caret: (charAtPos === undefined || currentResult.pos !== undefined) && caretPos !== undefined ? caretPos + (opts.numericInput ? -1 : 1) : caretPos,\r\n buffer: processValue,\r\n refreshFromBuffer: currentResult.dopost || buffer.join(\"\") !== processValue.join(\"\")\r\n };\r\n return rslt.refreshFromBuffer ? rslt : currentResult;\r\n },\r\n onBeforeWrite: function onBeforeWrite(e, buffer, caretPos, opts) {\r\n function parseMinMaxOptions(opts) {\r\n if (opts.parseMinMaxOptions === undefined) {\r\n if (opts.min !== null) {\r\n opts.min = opts.min.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\r\n if (opts.radixPoint === \",\") opts.min = opts.min.replace(opts.radixPoint, \".\");\r\n opts.min = isFinite(opts.min) ? parseFloat(opts.min) : NaN;\r\n if (isNaN(opts.min)) opts.min = Number.MIN_VALUE;\r\n }\r\n if (opts.max !== null) {\r\n opts.max = opts.max.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\r\n if (opts.radixPoint === \",\") opts.max = opts.max.replace(opts.radixPoint, \".\");\r\n opts.max = isFinite(opts.max) ? parseFloat(opts.max) : NaN;\r\n if (isNaN(opts.max)) opts.max = Number.MAX_VALUE;\r\n }\r\n opts.parseMinMaxOptions = \"done\";\r\n }\r\n }\r\n if (e) {\r\n switch (e.type) {\r\n case \"keydown\":\r\n return opts.postValidation(buffer, caretPos, {\r\n caret: caretPos,\r\n dopost: true\r\n }, opts);\r\n\r\n case \"blur\":\r\n case \"checkval\":\r\n var unmasked;\r\n parseMinMaxOptions(opts);\r\n if (opts.min !== null || opts.max !== null) {\r\n unmasked = opts.onUnMask(buffer.join(\"\"), undefined, $.extend({}, opts, {\r\n unmaskAsNumber: true\r\n }));\r\n if (opts.min !== null && unmasked < opts.min) {\r\n opts.isNegative = opts.min < 0;\r\n return opts.postValidation(opts.min.toString().replace(\".\", opts.radixPoint).split(\"\"), caretPos, {\r\n caret: caretPos,\r\n dopost: true,\r\n placeholder: \"0\"\r\n }, opts);\r\n } else if (opts.max !== null && unmasked > opts.max) {\r\n opts.isNegative = opts.max < 0;\r\n return opts.postValidation(opts.max.toString().replace(\".\", opts.radixPoint).split(\"\"), caretPos, {\r\n caret: caretPos,\r\n dopost: true,\r\n placeholder: \"0\"\r\n }, opts);\r\n }\r\n }\r\n return opts.postValidation(buffer, caretPos, {\r\n caret: caretPos,\r\n placeholder: \"0\",\r\n event: \"blur\"\r\n }, opts);\r\n\r\n case \"_checkval\":\r\n return {\r\n caret: caretPos\r\n };\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n },\r\n regex: {\r\n integerPart: function integerPart(opts, emptyCheck) {\r\n return emptyCheck ? new RegExp(\"[\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"+]?\") : new RegExp(\"[\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"+]?\\\\d+\");\r\n },\r\n integerNPart: function integerNPart(opts) {\r\n return new RegExp(\"[\\\\d\" + Inputmask.escapeRegex(opts.groupSeparator) + Inputmask.escapeRegex(opts.placeholder.charAt(0)) + \"]+\");\r\n }\r\n },\r\n definitions: {\r\n \"~\": {\r\n validator: function validator(chrs, maskset, pos, strict, opts, isSelection) {\r\n var isValid, l;\r\n if (chrs === \"k\" || chrs === \"m\") {\r\n isValid = {\r\n insert: [],\r\n c: 0\r\n };\r\n for (var i = 0, l = chrs === \"k\" ? 2 : 5; i < l; i++) {\r\n isValid.insert.push({\r\n pos: pos + i,\r\n c: 0\r\n });\r\n }\r\n isValid.pos = pos + l;\r\n return isValid;\r\n }\r\n isValid = strict ? new RegExp(\"[0-9\" + Inputmask.escapeRegex(opts.groupSeparator) + \"]\").test(chrs) : new RegExp(\"[0-9]\").test(chrs);\r\n if (isValid === true) {\r\n if (opts.numericInput !== true && maskset.validPositions[pos] !== undefined && maskset.validPositions[pos].match.def === \"~\" && !isSelection) {\r\n var processValue = maskset.buffer.join(\"\");\r\n processValue = processValue.replace(new RegExp(\"[-\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"]\", \"g\"), \"\");\r\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\r\n var pvRadixSplit = processValue.split(opts.radixPoint);\r\n if (pvRadixSplit.length > 1) {\r\n pvRadixSplit[1] = pvRadixSplit[1].replace(/0/g, opts.placeholder.charAt(0));\r\n }\r\n if (pvRadixSplit[0] === \"0\") {\r\n pvRadixSplit[0] = pvRadixSplit[0].replace(/0/g, opts.placeholder.charAt(0));\r\n }\r\n processValue = pvRadixSplit[0] + opts.radixPoint + pvRadixSplit[1] || \"\";\r\n var bufferTemplate = maskset._buffer.join(\"\");\r\n if (processValue === opts.radixPoint) {\r\n processValue = bufferTemplate;\r\n }\r\n while (processValue.match(Inputmask.escapeRegex(bufferTemplate) + \"$\") === null) {\r\n bufferTemplate = bufferTemplate.slice(1);\r\n }\r\n processValue = processValue.replace(bufferTemplate, \"\");\r\n processValue = processValue.split(\"\");\r\n if (processValue[pos] === undefined) {\r\n isValid = {\r\n pos: pos,\r\n remove: pos\r\n };\r\n } else {\r\n isValid = {\r\n pos: pos\r\n };\r\n }\r\n }\r\n } else if (!strict && chrs === opts.radixPoint && maskset.validPositions[pos - 1] === undefined) {\r\n isValid = {\r\n insert: {\r\n pos: pos,\r\n c: 0\r\n },\r\n pos: pos + 1\r\n };\r\n }\r\n return isValid;\r\n },\r\n cardinality: 1\r\n },\r\n \"+\": {\r\n validator: function validator(chrs, maskset, pos, strict, opts) {\r\n return opts.allowMinus && (chrs === \"-\" || chrs === opts.negationSymbol.front);\r\n },\r\n cardinality: 1,\r\n placeholder: \"\"\r\n },\r\n \"-\": {\r\n validator: function validator(chrs, maskset, pos, strict, opts) {\r\n return opts.allowMinus && chrs === opts.negationSymbol.back;\r\n },\r\n cardinality: 1,\r\n placeholder: \"\"\r\n },\r\n \":\": {\r\n validator: function validator(chrs, maskset, pos, strict, opts) {\r\n var radix = \"[\" + Inputmask.escapeRegex(opts.radixPoint) + \"]\";\r\n var isValid = new RegExp(radix).test(chrs);\r\n if (isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder === opts.radixPoint) {\r\n isValid = {\r\n caret: pos + 1\r\n };\r\n }\r\n return isValid;\r\n },\r\n cardinality: 1,\r\n placeholder: function placeholder(opts) {\r\n return opts.radixPoint;\r\n }\r\n }\r\n },\r\n onUnMask: function onUnMask(maskedValue, unmaskedValue, opts) {\r\n if (unmaskedValue === \"\" && opts.nullable === true) {\r\n return unmaskedValue;\r\n }\r\n var processValue = maskedValue.replace(opts.prefix, \"\");\r\n processValue = processValue.replace(opts.suffix, \"\");\r\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\r\n if (opts.placeholder.charAt(0) !== \"\") {\r\n processValue = processValue.replace(new RegExp(opts.placeholder.charAt(0), \"g\"), \"0\");\r\n }\r\n if (opts.unmaskAsNumber) {\r\n if (opts.radixPoint !== \"\" && processValue.indexOf(opts.radixPoint) !== -1) processValue = processValue.replace(Inputmask.escapeRegex.call(this, opts.radixPoint), \".\");\r\n processValue = processValue.replace(new RegExp(\"^\" + Inputmask.escapeRegex(opts.negationSymbol.front)), \"-\");\r\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\r\n return Number(processValue);\r\n }\r\n return processValue;\r\n },\r\n isComplete: function isComplete(buffer, opts) {\r\n var maskedValue = (opts.numericInput ? buffer.slice().reverse() : buffer).join(\"\");\r\n maskedValue = maskedValue.replace(new RegExp(\"^\" + Inputmask.escapeRegex(opts.negationSymbol.front)), \"-\");\r\n maskedValue = maskedValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\r\n maskedValue = maskedValue.replace(opts.prefix, \"\");\r\n maskedValue = maskedValue.replace(opts.suffix, \"\");\r\n maskedValue = maskedValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator) + \"([0-9]{3})\", \"g\"), \"$1\");\r\n if (opts.radixPoint === \",\") maskedValue = maskedValue.replace(Inputmask.escapeRegex(opts.radixPoint), \".\");\r\n return isFinite(maskedValue);\r\n },\r\n onBeforeMask: function onBeforeMask(initialValue, opts) {\r\n opts.isNegative = undefined;\r\n var radixPoint = opts.radixPoint || \",\";\r\n if ((typeof initialValue == \"number\" || opts.inputType === \"number\") && radixPoint !== \"\") {\r\n initialValue = initialValue.toString().replace(\".\", radixPoint);\r\n }\r\n var valueParts = initialValue.split(radixPoint), integerPart = valueParts[0].replace(/[^\\-0-9]/g, \"\"), decimalPart = valueParts.length > 1 ? valueParts[1].replace(/[^0-9]/g, \"\") : \"\";\r\n initialValue = integerPart + (decimalPart !== \"\" ? radixPoint + decimalPart : decimalPart);\r\n var digits = 0;\r\n if (radixPoint !== \"\") {\r\n digits = decimalPart.length;\r\n if (decimalPart !== \"\") {\r\n var digitsFactor = Math.pow(10, digits || 1);\r\n if (isFinite(opts.digits)) {\r\n digits = parseInt(opts.digits);\r\n digitsFactor = Math.pow(10, digits);\r\n }\r\n initialValue = initialValue.replace(Inputmask.escapeRegex(radixPoint), \".\");\r\n if (isFinite(initialValue)) initialValue = Math.round(parseFloat(initialValue) * digitsFactor) / digitsFactor;\r\n initialValue = initialValue.toString().replace(\".\", radixPoint);\r\n }\r\n }\r\n if (opts.digits === 0 && initialValue.indexOf(Inputmask.escapeRegex(radixPoint)) !== -1) {\r\n initialValue = initialValue.substring(0, initialValue.indexOf(Inputmask.escapeRegex(radixPoint)));\r\n }\r\n return alignDigits(initialValue.toString().split(\"\"), digits, opts).join(\"\");\r\n },\r\n onKeyDown: function onKeyDown(e, buffer, caretPos, opts) {\r\n var $input = $(this);\r\n if (e.ctrlKey) {\r\n switch (e.keyCode) {\r\n case Inputmask.keyCode.UP:\r\n $input.val(parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step));\r\n $input.trigger(\"setvalue\");\r\n break;\r\n\r\n case Inputmask.keyCode.DOWN:\r\n $input.val(parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step));\r\n $input.trigger(\"setvalue\");\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n currency: {\r\n prefix: \"$ \",\r\n groupSeparator: \",\",\r\n alias: \"numeric\",\r\n placeholder: \"0\",\r\n autoGroup: true,\r\n digits: 2,\r\n digitsOptional: false,\r\n clearMaskOnLostFocus: false\r\n },\r\n decimal: {\r\n alias: \"numeric\"\r\n },\r\n integer: {\r\n alias: \"numeric\",\r\n digits: 0,\r\n radixPoint: \"\"\r\n },\r\n percentage: {\r\n alias: \"numeric\",\r\n digits: 2,\r\n digitsOptional: true,\r\n radixPoint: \".\",\r\n placeholder: \"0\",\r\n autoGroup: false,\r\n min: 0,\r\n max: 100,\r\n suffix: \" %\",\r\n allowMinus: false\r\n }\r\n });\r\n return Inputmask;\r\n });\r\n}, function (module, exports, __webpack_require__) {\r\n \"use strict\";\r\n var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\r\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\r\n return typeof obj;\r\n } : function (obj) {\r\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\r\n };\r\n (function (factory) {\r\n if (true) {\r\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(2)],\r\n __WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \"function\" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__,\r\n __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n } else { }\r\n })(function ($, Inputmask) {\r\n if ($.fn.inputmask === undefined) {\r\n $.fn.inputmask = function (fn, options) {\r\n var nptmask, input = this[0];\r\n if (options === undefined) options = {};\r\n if (typeof fn === \"string\") {\r\n switch (fn) {\r\n case \"unmaskedvalue\":\r\n return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();\r\n\r\n case \"remove\":\r\n return this.each(function () {\r\n if (this.inputmask) this.inputmask.remove();\r\n });\r\n\r\n case \"getemptymask\":\r\n return input && input.inputmask ? input.inputmask.getemptymask() : \"\";\r\n\r\n case \"hasMaskedValue\":\r\n return input && input.inputmask ? input.inputmask.hasMaskedValue() : false;\r\n\r\n case \"isComplete\":\r\n return input && input.inputmask ? input.inputmask.isComplete() : true;\r\n\r\n case \"getmetadata\":\r\n return input && input.inputmask ? input.inputmask.getmetadata() : undefined;\r\n\r\n case \"setvalue\":\r\n Inputmask.setValue(input, options);\r\n break;\r\n\r\n case \"option\":\r\n if (typeof options === \"string\") {\r\n if (input && input.inputmask !== undefined) {\r\n return input.inputmask.option(options);\r\n }\r\n } else {\r\n return this.each(function () {\r\n if (this.inputmask !== undefined) {\r\n return this.inputmask.option(options);\r\n }\r\n });\r\n }\r\n break;\r\n\r\n default:\r\n options.alias = fn;\r\n nptmask = new Inputmask(options);\r\n return this.each(function () {\r\n nptmask.mask(this);\r\n });\r\n }\r\n } else if (Array.isArray(fn)) {\r\n options.alias = fn;\r\n nptmask = new Inputmask(options);\r\n return this.each(function () {\r\n nptmask.mask(this);\r\n });\r\n } else if ((typeof fn === \"undefined\" ? \"undefined\" : _typeof(fn)) == \"object\") {\r\n nptmask = new Inputmask(fn);\r\n if (fn.mask === undefined && fn.alias === undefined) {\r\n return this.each(function () {\r\n if (this.inputmask !== undefined) {\r\n return this.inputmask.option(fn);\r\n } else nptmask.mask(this);\r\n });\r\n } else {\r\n return this.each(function () {\r\n nptmask.mask(this);\r\n });\r\n }\r\n } else if (fn === undefined) {\r\n return this.each(function () {\r\n nptmask = new Inputmask(options);\r\n nptmask.mask(this);\r\n });\r\n }\r\n };\r\n }\r\n return $.fn.inputmask;\r\n });\r\n}]);","jQuery(document).ready(function ($) {\r\n // current url\r\n var currentURL = window.location.href;\r\n\r\n // window size\r\n var width = $(window).width();\r\n var height = $(window).height();\r\n\r\n // image alt\r\n $('img').each(function () {\r\n var img = $(this);\r\n var src = $(this).attr('src');\r\n var alt = $(this).attr('alt');\r\n var filename = src.split('/').reverse()[0].replace(/\\.[^/.]+$/, '');\r\n if (img.parent('a').length !== 0) {\r\n console.log('parent is a link');\r\n if (alt === '' || alt === undefined) {\r\n img.attr('alt', 'image ' + filename);\r\n }\r\n } else {\r\n if (alt === '' || alt === undefined) {\r\n img.attr('alt', '');\r\n }\r\n }\r\n });\r\n\r\n // breadcrumbs\r\n $('ul.breadcrumb').prepend('Home');\r\n\r\n // Image Captions\r\n $('.DnnModule-DNN_HTML img').each(function () {\r\n var img = $(this).css('margin', '');\r\n var width = $(this).css('width');\r\n var outerWidth = $(this).outerWidth();\r\n var imageCaption = $(this).attr('longdesc');\r\n var figure;\r\n if ($(img, 'figure').length === 1) {\r\n if (typeof imageCaption !== typeof undefined && imageCaption !== false) {\r\n if (img.hasClass('floatleft') || img.hasClass('float-left')) {\r\n img.css('float', '').css('height', 'auto');\r\n figure = $('').css('max-width', '100%');\r\n img.removeClass();\r\n img.wrap(figure);\r\n img.parent('figure').append('' + imageCaption + '');\r\n img.attr('src', $(this).attr('src') + '?' + Math.random());\r\n } else if (img.hasClass('floatright') || img.hasClass('float-right')) {\r\n img.css('float', '').css('height', 'auto');\r\n figure = $('').css('max-width', '100%');\r\n img.removeClass();\r\n img.wrap(figure);\r\n img.parent('figure').append('' + imageCaption + '');\r\n img.attr('src', $(this).attr('src') + '?' + Math.random());\r\n } else if (img.hasClass('floatcenter') || img.hasClass('float-center')) {\r\n img.css('float', '').css('height', 'auto');\r\n figure = $('').css('max-width', '100%');\r\n img.removeClass();\r\n img.wrap(figure);\r\n img.parent('figure').append('' + imageCaption + '');\r\n img.attr('src', $(this).attr('src') + '?' + Math.random());\r\n }\r\n }\r\n }\r\n });\r\n // detect floats\r\n $('.DnnModule-DNN_HTML img').each(function () {\r\n if ($(this).css('float') == 'left') {\r\n $(this).addClass('float-left');\r\n }\r\n if ($(this).css('float') == 'right') {\r\n $(this).addClass('float-right');\r\n }\r\n // if ($(this).css('float') == 'absolute') {\r\n\r\n // }\r\n });\r\n // remove dnn checkbox styling\r\n (function () {\r\n $(document).ready(function () {\r\n $.fn.dnnCheckbox = function (options) { };\r\n });\r\n }());\r\n\r\n function RemoveDnnCheckboxFormat() {\r\n $('.dnnCheckbox').remove();\r\n $(':checkbox').removeAttr('style');\r\n }\r\n\r\n // product filter\r\n $(window).click(function () {\r\n if ($('.product-categories').hasClass('active')) {\r\n $('.product-categories').removeClass('active');\r\n }\r\n });\r\n $('.product-categories-link').on('click', function (e) {\r\n e.stopPropagation();\r\n if ($('.product-categories').hasClass('active')) {\r\n $('.product-categories').removeClass('active');\r\n } else {\r\n $('.product-categories').addClass('active');\r\n }\r\n });\r\n\r\n // filter products on filter click\r\n $('.product-categories-list a').on('click', function () {\r\n var catFilterAttr = $(this).attr('data-category');\r\n // console.log(catFilterAttr);\r\n $('.product-categories-link > span').text(catFilterAttr);\r\n $('article.product').each(function () {\r\n console.log($('.product-category > span', this).text());\r\n if (catFilterAttr === $('.product-category > span', this).text()) {\r\n $(this).show();\r\n } else if (catFilterAttr === 'All') {\r\n $('article.product').show();\r\n } else {\r\n $(this).hide();\r\n }\r\n });\r\n });\r\n\r\n // back to products link\r\n function backToProducts() {\r\n var productReferrer = window.location.href;\r\n var productReferrerSegments = productReferrer.split('/').length - 1 - (productReferrer.indexOf('://') == -1 ? 0 : 2);\r\n if (productReferrer.toLowerCase().indexOf('products-services') > 0 && productReferrerSegments > 1) {\r\n var productBackLink = productReferrer.substring(0, productReferrer.lastIndexOf('/'));\r\n $('.products-back').attr('href', productBackLink);\r\n }\r\n }\r\n backToProducts();\r\n\r\n // input masks\r\n $(':input').inputmask();\r\n\r\n // hide product content\r\n var productSegment = currentURL.substr(currentURL.lastIndexOf('/') + 1);\r\n var productSegmentLength = currentURL.split(\"/\").length - 1 - (currentURL.indexOf(\"http://\") == -1 ? 0 : 2);\r\n // console.log(productSegmentLength);\r\n if ((width >= 1024)) {\r\n if (productSegment === 'crop-protection') {\r\n $('.catalog-content').show();\r\n if (productSegmentLength > 4) {\r\n if ($('.product-specs + .accordion-content > dl').html().trim()) {\r\n $('.product-specs').show();\r\n }\r\n if (!$('.product-downloads + .accordion-content').is(':empty')) {\r\n $('.product-downloads').show();\r\n }\r\n }\r\n }\r\n }\r\n\r\n // find a person categories\r\n $('.find-person-search .product select option').each(function () {\r\n $(this).attr('hidden', true).attr('disabled', true);\r\n });\r\n $('.find-person-search .category select').on('change', function () {\r\n $('.product select option').removeAttr('selected');\r\n var cat = $(this).find(':selected').attr('data-cat');\r\n if (cat === 'brokerage' || cat === 'electronic payments') {\r\n $('.product select option[data-cat=\"products\"]').remove();\r\n $('.product select').append('');\r\n $('.product select').attr('disabled', true).attr('class', 'aspNetDisabled');\r\n } else if (cat === 'categories') {\r\n $('.product select option[data-cat=\"products\"]').remove();\r\n $('.product select').append('');\r\n $('.product select').attr('disabled', true).attr('class', 'aspNetDisabled');\r\n } else {\r\n $('.product select option[data-cat=\"products\"]').remove();\r\n $('.product select').attr('disabled', false).attr('class', '');\r\n $('.product select option').each(function () {\r\n if ($(this).attr('data-cat') !== cat) {\r\n $(this).attr('hidden', true).attr('disabled', true);\r\n } else {\r\n $(this).attr('hidden', false).attr('disabled', false);\r\n }\r\n });\r\n $('.product select option[data-cat=\"' + cat + '\"]:first').attr('selected', 'selected');\r\n }\r\n });\r\n\r\n // find a person on page load after search\r\n var selectedCat = $('.find-person-search .category select').find(':selected').attr('data-cat');\r\n if (selectedCat !== 'categories') {\r\n if (selectedCat === 'brokerage' || selectedCat === 'electronic payments') {\r\n $('.product select option[data-cat=\"products\"]').remove();\r\n $('.product select').append('');\r\n $('.product select').attr('disabled', true).attr('class', 'aspNetDisabled');\r\n } else if (selectedCat === 'categories') {\r\n $('.product select option[data-cat=\"products\"]').remove();\r\n $('.product select').append('');\r\n $('.product select').attr('disabled', true).attr('class', 'aspNetDisabled');\r\n } else {\r\n $('.product select option[data-cat=\"products\"]').remove();\r\n $('.product select').attr('disabled', false).attr('class', '');\r\n $('.product select option').each(function () {\r\n if ($(this).attr('data-cat') !== selectedCat) {\r\n $(this).attr('hidden', true).attr('disabled', true);\r\n } else {\r\n $(this).attr('hidden', false).attr('disabled', false);\r\n }\r\n });\r\n $('.product select option[data-cat=\"' + selectedCat + '\"]:first').attr('selected', 'selected');\r\n }\r\n }\r\n\r\n // find a person categories load filtering\r\n var personURL = currentURL.split('/');\r\n var personPageFilter = personURL[4];\r\n if (personPageFilter === 'c') {\r\n var selectedCategory = personURL[5];\r\n if (selectedCategory === 'brokerage' || selectedCategory === 'electronic payments') {\r\n $('.product select option[data-cat=\"products\"]').remove();\r\n $('.product select').append('');\r\n $('.product select').attr('disabled', true).attr('class', 'aspNetDisabled');\r\n } else if (selectedCategory === 'categories') {\r\n $('.product select option[data-cat=\"products\"]').remove();\r\n $('.product select').append('');\r\n $('.product select').attr('disabled', true).attr('class', 'aspNetDisabled');\r\n } else {\r\n $('.product select option[data-cat=\"products\"]').remove();\r\n $('.product select').attr('disabled', false).attr('class', '');\r\n $('.product select option').each(function () {\r\n if ($(this).attr('data-cat') !== selectedCategory) {\r\n $(this).attr('hidden', true).attr('disabled', true);\r\n } else {\r\n $(this).attr('hidden', false).attr('disabled', false);\r\n }\r\n });\r\n $('.product select option[data-cat=\"' + selectedCategory + '\"]:first').attr('selected', 'selected');\r\n }\r\n }\r\n\r\n // form builder labels\r\n $('.form-container span.label').each(function () {\r\n var formLabel = $(this);\r\n var formLabelClasses = $(this).attr('class');\r\n var formInputID = $(this).next('input[type=\"text\"], select, textarea').attr('id');\r\n console.log(formInputID);\r\n formLabel.replaceWith(function () {\r\n return $('', {\r\n class: formLabelClasses,\r\n for: formInputID,\r\n html: this.innerHTML\r\n });\r\n });\r\n });\r\n});"]}