{"version":3,"sources":["webpack:///./app/webpacker/src/javascript/email_check.js","webpack:///./node_modules/mailcheck/src/mailcheck.js"],"names":["$","document","ready","domains","secondLevelDomains","topLevelDomains","mailSuggestion","getElementById","spanText","getElementsByTagName","bind","Mailcheck","email","this","value","suggested","suggestion","style","display","textContent","full","empty","emailCheck","click","text","domainThreshold","secondLevelThreshold","topLevelThreshold","defaultDomains","defaultSecondLevelDomains","defaultTopLevelDomains","run","opts","distanceFunction","sift3Distance","defaultCallback","result","suggestedCallback","emptyCallback","suggest","encodeEmail","toLowerCase","emailParts","splitEmail","indexOf","secondLevelDomain","topLevelDomain","closestDomain","findClosestDomain","domain","address","closestSecondLevelDomain","closestTopLevelDomain","rtrn","replace","threshold","dist","minDist","i","length","s1","s2","c","offset1","offset2","lcs","charAt","parts","trim","split","pop","domainParts","sld","tld","substring","join","encodeURI","module","exports","window","jQuery","fn","mailcheck","self","oldSuggested","oldEmpty","call","val"],"mappings":"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","file":"js/16-638fe968b744b2d1363d.chunk.js","sourcesContent":["import * as Mailcheck from \"mailcheck\";\n\nvar emailCheck = function() {\n let domains = ['gmail.com',\n 'live.fr',\n 'yahoo.fr',\n 'orange.fr',\n 'sfr.fr',\n 'wanadoo.fr',\n 'bouyguestelecom.fr',\n 'laposte.net'\n ]\n let secondLevelDomains = ['outlook', 'hotmail', 'icloud']\n let topLevelDomains = [\"com\", \"net\", \"fr\"];\n\n let mailSuggestion = document.getElementById(\"mail-suggestion-js\");\n if (mailSuggestion) {\n let spanText = mailSuggestion.getElementsByTagName('a')[0]\n\n $(\"#email-input-js\").bind(\"change\", function() {\n Mailcheck.run({\n email: this.value,\n domains: domains,\n secondLevelDomains: secondLevelDomains,\n topLevelDomains: topLevelDomains,\n suggested: function (suggestion) {\n mailSuggestion.style.display = 'block';\n spanText.textContent = suggestion.full\n },\n empty: function () {\n mailSuggestion.style.display = 'none';\n }\n });\n })\n }\n}\n\nvar changeEmail = function () {\n $('#mail-suggestion-js a').click(function(){\n document.getElementById('email-input-js').value = $(this).text();\n document.getElementById(\"mail-suggestion-js\").style.display = 'none';\n });\n}\n\n$(document).ready(function() {\n emailCheck();\n changeEmail();\n})","/*\n * Mailcheck https://github.com/mailcheck/mailcheck\n * Author\n * Derrick Ko (@derrickko)\n *\n * Released under the MIT License.\n *\n * v 1.1.1\n */\n\nvar Mailcheck = {\n domainThreshold: 2,\n secondLevelThreshold: 2,\n topLevelThreshold: 2,\n defaultDomains: ['msn.com', 'bellsouth.net', 'telus.net', 'comcast.net', 'optusnet.com.au', 'earthlink.net', 'qq.com', 'sky.com', 'icloud.com', 'mac.com', 'sympatico.ca', 'googlemail.com', 'att.net', 'xtra.co.nz', 'web.de', 'cox.net', 'gmail.com', 'ymail.com', 'aim.com', 'rogers.com', 'verizon.net', 'rocketmail.com', 'google.com', 'optonline.net', 'sbcglobal.net', 'aol.com', 'me.com', 'btinternet.com', 'charter.net', 'shaw.ca'],\n defaultSecondLevelDomains: [\"yahoo\", \"hotmail\", \"mail\", \"live\", \"outlook\", \"gmx\"],\n defaultTopLevelDomains: [\"com\", \"com.au\", \"com.tw\", \"ca\", \"co.nz\", \"co.uk\", \"de\", \"fr\", \"it\", \"ru\", \"net\", \"org\", \"edu\", \"gov\", \"jp\", \"nl\", \"kr\", \"se\", \"eu\", \"ie\", \"co.il\", \"us\", \"at\", \"be\", \"dk\", \"hk\", \"es\", \"gr\", \"ch\", \"no\", \"cz\", \"in\", \"net\", \"net.au\", \"info\", \"biz\", \"mil\", \"co.jp\", \"sg\", \"hu\"],\n run: function (opts) {\n opts.domains = opts.domains || Mailcheck.defaultDomains;\n opts.secondLevelDomains = opts.secondLevelDomains || Mailcheck.defaultSecondLevelDomains;\n opts.topLevelDomains = opts.topLevelDomains || Mailcheck.defaultTopLevelDomains;\n opts.distanceFunction = opts.distanceFunction || Mailcheck.sift3Distance;\n var defaultCallback = function (result) {\n return result;\n };\n var suggestedCallback = opts.suggested || defaultCallback;\n var emptyCallback = opts.empty || defaultCallback;\n var result = Mailcheck.suggest(Mailcheck.encodeEmail(opts.email), opts.domains, opts.secondLevelDomains, opts.topLevelDomains, opts.distanceFunction);\n return result ? suggestedCallback(result) : emptyCallback();\n },\n suggest: function (email, domains, secondLevelDomains, topLevelDomains, distanceFunction) {\n email = email.toLowerCase();\n var emailParts = this.splitEmail(email);\n if (secondLevelDomains && topLevelDomains) {\n // If the email is a valid 2nd-level + top-level, do not suggest anything.\n if (secondLevelDomains.indexOf(emailParts.secondLevelDomain) !== -1 && topLevelDomains.indexOf(emailParts.topLevelDomain) !== -1) {\n return false;\n }\n }\n var closestDomain = this.findClosestDomain(emailParts.domain, domains, distanceFunction, this.domainThreshold);\n if (closestDomain) {\n if (closestDomain == emailParts.domain) {\n // The email address exactly matches one of the supplied domains; do not return a suggestion.\n return false;\n } else {\n // The email address closely matches one of the supplied domains; return a suggestion\n return {\n address: emailParts.address,\n domain: closestDomain,\n full: emailParts.address + \"@\" + closestDomain\n };\n }\n }\n\n // The email address does not closely match one of the supplied domains\n var closestSecondLevelDomain = this.findClosestDomain(emailParts.secondLevelDomain, secondLevelDomains, distanceFunction, this.secondLevelThreshold);\n var closestTopLevelDomain = this.findClosestDomain(emailParts.topLevelDomain, topLevelDomains, distanceFunction, this.topLevelThreshold);\n if (emailParts.domain) {\n var closestDomain = emailParts.domain;\n var rtrn = false;\n if (closestSecondLevelDomain && closestSecondLevelDomain != emailParts.secondLevelDomain) {\n // The email address may have a mispelled second-level domain; return a suggestion\n closestDomain = closestDomain.replace(emailParts.secondLevelDomain, closestSecondLevelDomain);\n rtrn = true;\n }\n if (closestTopLevelDomain && closestTopLevelDomain != emailParts.topLevelDomain) {\n // The email address may have a mispelled top-level domain; return a suggestion\n closestDomain = closestDomain.replace(emailParts.topLevelDomain, closestTopLevelDomain);\n rtrn = true;\n }\n if (rtrn == true) {\n return {\n address: emailParts.address,\n domain: closestDomain,\n full: emailParts.address + \"@\" + closestDomain\n };\n }\n }\n\n /* The email address exactly matches one of the supplied domains, does not closely\n * match any domain and does not appear to simply have a mispelled top-level domain,\n * or is an invalid email address; do not return a suggestion.\n */\n return false;\n },\n findClosestDomain: function (domain, domains, distanceFunction, threshold) {\n threshold = threshold || this.topLevelThreshold;\n var dist;\n var minDist = 99;\n var closestDomain = null;\n if (!domain || !domains) {\n return false;\n }\n if (!distanceFunction) {\n distanceFunction = this.sift3Distance;\n }\n for (var i = 0; i < domains.length; i++) {\n if (domain === domains[i]) {\n return domain;\n }\n dist = distanceFunction(domain, domains[i]);\n if (dist < minDist) {\n minDist = dist;\n closestDomain = domains[i];\n }\n }\n if (minDist <= threshold && closestDomain !== null) {\n return closestDomain;\n } else {\n return false;\n }\n },\n sift3Distance: function (s1, s2) {\n // sift3: http://siderite.blogspot.com/2007/04/super-fast-and-accurate-string-distance.html\n if (s1 == null || s1.length === 0) {\n if (s2 == null || s2.length === 0) {\n return 0;\n } else {\n return s2.length;\n }\n }\n if (s2 == null || s2.length === 0) {\n return s1.length;\n }\n var c = 0;\n var offset1 = 0;\n var offset2 = 0;\n var lcs = 0;\n var maxOffset = 5;\n while (c + offset1 < s1.length && c + offset2 < s2.length) {\n if (s1.charAt(c + offset1) == s2.charAt(c + offset2)) {\n lcs++;\n } else {\n offset1 = 0;\n offset2 = 0;\n for (var i = 0; i < maxOffset; i++) {\n if (c + i < s1.length && s1.charAt(c + i) == s2.charAt(c)) {\n offset1 = i;\n break;\n }\n if (c + i < s2.length && s1.charAt(c) == s2.charAt(c + i)) {\n offset2 = i;\n break;\n }\n }\n }\n c++;\n }\n return (s1.length + s2.length) / 2 - lcs;\n },\n splitEmail: function (email) {\n var parts = email.trim().split('@');\n if (parts.length < 2) {\n return false;\n }\n for (var i = 0; i < parts.length; i++) {\n if (parts[i] === '') {\n return false;\n }\n }\n var domain = parts.pop();\n var domainParts = domain.split('.');\n var sld = '';\n var tld = '';\n if (domainParts.length == 0) {\n // The address does not have a top-level domain\n return false;\n } else if (domainParts.length == 1) {\n // The address has only a top-level domain (valid under RFC)\n tld = domainParts[0];\n } else {\n // The address has a domain and a top-level domain\n sld = domainParts[0];\n for (var i = 1; i < domainParts.length; i++) {\n tld += domainParts[i] + '.';\n }\n tld = tld.substring(0, tld.length - 1);\n }\n return {\n topLevelDomain: tld,\n secondLevelDomain: sld,\n domain: domain,\n address: parts.join('@')\n };\n },\n // Encode the email address to prevent XSS but leave in valid\n // characters, following this official spec:\n // http://en.wikipedia.org/wiki/Email_address#Syntax\n encodeEmail: function (email) {\n var result = encodeURI(email);\n result = result.replace('%20', ' ').replace('%25', '%').replace('%5E', '^').replace('%60', '`').replace('%7B', '{').replace('%7C', '|').replace('%7D', '}');\n return result;\n }\n};\n\n// Export the mailcheck object if we're in a CommonJS env (e.g. Node).\n// Modeled off of Underscore.js.\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = Mailcheck;\n}\n\n// Support AMD style definitions\n// Based on jQuery (see http://stackoverflow.com/a/17954882/1322410)\nif (typeof define === \"function\" && define.amd) {\n define(\"mailcheck\", [], function () {\n return Mailcheck;\n });\n}\nif (typeof window !== 'undefined' && window.jQuery) {\n (function ($) {\n $.fn.mailcheck = function (opts) {\n var self = this;\n if (opts.suggested) {\n var oldSuggested = opts.suggested;\n opts.suggested = function (result) {\n oldSuggested(self, result);\n };\n }\n if (opts.empty) {\n var oldEmpty = opts.empty;\n opts.empty = function () {\n oldEmpty.call(null, self);\n };\n }\n opts.email = this.val();\n Mailcheck.run(opts);\n };\n })(jQuery);\n}"],"sourceRoot":""}