{"version":3,"file":"chunks/form.js?v=88711c108d6fd9d24522","mappings":"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","sources":["webpack://Alster/./app/components/form/form.js"],"sourcesContent":["class Forms {\n\tconstructor(elem) {\n\t\tvar self = this;\n\n\t\tthis.elem = elem;\n\t\tthis.fields = {};\n\n\t\tvar fields = elem.find('input, textarea, select');\n\n\t\tfields.each(function (key, item) {\n\t\t\tvar field = $(item);\n\t\t\tif (field.data('validators')) {\n\t\t\t\tconsole.log('validator found: ', field);\n\t\t\t\tvar id = field.attr('name');\n\t\t\t\tvar validators = field.data('validators').replace(/ /g, '').split(',');\n\t\t\t\tvar prompt = field.data('prompt');\n\t\t\t\tvar regexPrompt = field.data('regex-prompt');\n\t\t\t\tvar regex = field.data('regex');\n\n\t\t\t\tvar validator = {\n\t\t\t\t\tidentifier: id,\n\t\t\t\t\trules: []\n\t\t\t\t};\n\n\t\t\t\tif (validators.length) {\n\t\t\t\t\tfor (var i in validators) {\n\t\t\t\t\t\tvar val = {\n\t\t\t\t\t\t\ttype: self.convertValidator(validators[i])\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (prompt && prompt.length > i) {\n\t\t\t\t\t\t\tval.prompt = prompt;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvalidator.rules.push(val);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (regex && regex.length) {\n\t\t\t\t\t\tvar val = {\n\t\t\t\t\t\t\ttype: 'regExp[' + regex + ']'\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (prompt && prompt.length > i) {\n\t\t\t\t\t\t\tval.prompt = regexPrompt;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvalidator.rules.push(val);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tself.fields[id] = validator;\n\n\t\t\t\t//Validate on input change\n\t\t\t\tfield.on('change keyup paste focus', () => {\n\t\t\t\t\tvar inputValue = field.val();\n\n\t\t\t\t\t// Check if input type is radio\n\t\t\t\t\tif (field.attr('type') === 'radio') {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.onChange(validators, regex, inputValue)) {\n\t\t\t\t\t\tfield.closest('.field').addClass('valid');\n\t\t\t\t\t\tfield.closest('.field').removeClass('invalid');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfield.closest('.field').addClass('invalid');\n\t\t\t\t\t\tfield.closest('.field').removeClass('valid');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\n\t// On input change\n\tonChange(validators, regex, value) {\n\t\tvar self = this;\n\t\tlet results = []\n\t\tvalidators.forEach((item) => {\n\t\t\tswitch (item) {\n\t\t\t\tcase 'RequiredValidator':\n\t\t\t\t\tresults.push(self.validateEmpty(value))\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'EmailValidator':\n\t\t\t\t\tresults.push(self.validateEmail(value))\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tresults.push(self.validateDate(value, item))\n\t\t\t}\n\t\t})\n\t\tif (regex) {\n\t\t\tresults.push(self.validateRegex(value, regex))\n\t\t}\n\n\t\tif (results.indexOf(false) >= 0) {\n\t\t\treturn false;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tvalidateEmpty(value) {\n\t\treturn value.length >= 1\n\t}\n\n\tvalidateEmail(value) {\n\t\tlet emailRegex = /^[a-z0-9][a-z0-9-_\\.]+@([a-z]|[a-z0-9]?[a-z0-9-]+[a-z0-9])\\.[a-z0-9]{2,10}(?:\\.[a-z]{2,10})?$/;\n\n\t\treturn emailRegex.test(value);\n\t}\n\n\tvalidateDate(value, type) {\n\t\tlet regex = null;\n\t\tif (type === \"DateDDMMYYYYValidator\" || type === \"DateMMDDYYYYValidator\") {\n\t\t\tregex = /([0-9]{2})([\\/]{1})([0-9]{2})([\\/]{1})([0-9]{4})$/\n\t\t} else if (type === \"DateYYYYMMDDValidator\") {\n\t\t\tregex = /([0-9]{4})([-]{1})([0-9]{2})([-]{1})([0-9]{2})$/\n\t\t}\n\n\t\treturn regex.test(value);\n\t}\n\n\tvalidateRegex(value, regex) {\n\t\tlet str = regex.replace(/^\\/(.*)\\/[g|i|m|u|y]*/, \"$1\");\n\t\tlet reg = new RegExp(str);\n\n\t\treturn reg.test(value);\n\t}\n\n\tconvertValidator(validator) {\n\t\t// This will map EpiServer validation identifiers to Semantic UI validation methods\n\t\tvar validators = {\n\t\t\t'RequiredValidator': 'empty',\n\t\t\t'EmailValidator': 'email',\n\t\t\t'DateDDMMYYYYValidator': 'regExp[/([0-9]{2})([\\/]{1})([0-9]{2})([\\/]{1})([0-9]{4})$/]',\t// 12/17/1988\n\t\t\t'DateMMDDYYYYValidator': 'regExp[/([0-9]{2})([\\/]{1})([0-9]{2})([\\/]{1})([0-9]{4})$/]', // 17/12/1988\n\t\t\t'DateYYYYMMDDValidator': 'regExp[/([0-9]{4})([-]{1})([0-9]{2})([-]{1})([0-9]{2})$/]' // 1988-12-17\n\t\t};\n\n\t\tif (validators[validator]) {\n\t\t\treturn validators[validator];\n\t\t}\n\n\t\treturn validator;\n\t}\n}\n\nexport default Forms;"],"names":["Forms","constructor","elem","self","fields","find","each","key","item","field","$","data","console","log","id","attr","validators","replace","split","prompt","regexPrompt","regex","validator","identifier","rules","length","i","val","type","convertValidator","push","on","inputValue","onChange","closest","addClass","removeClass","value","results","forEach","validateEmpty","validateEmail","validateDate","validateRegex","indexOf","emailRegex","test","str","reg","RegExp"],"sourceRoot":""}