{"version":3,"sources":["webpack://aspnetValidation/webpack/universalModuleDefinition","webpack://aspnetValidation/webpack/bootstrap","webpack://aspnetValidation/./src/index.ts"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","getRelativeFormElement","elementName","selector","realSelector","substr","dotLocation","lastIndexOf","relativeElementName","relativeElement","document","getElementsByName","required","element","params","Boolean","stringLength","min","parseInt","length","max","compare","other","otherElement","range","val","parseFloat","isNaN","regex","pattern","RegExp","test","email","creditcard","cDigit","nCheck","nDigit","bEven","replace","charAt","url","lowerCaseValue","toLowerCase","indexOf","phone","remote","fieldSelectors","additionalfields","split","fields","fieldSelector","fieldName","fieldElement","encodedParams","encodedParam","encodeURIComponent","push","payload","join","Promise","ok","reject","request","XMLHttpRequest","type","postData","FormData","append","open","setRequestHeader","send","onload","e","status","data","JSON","parse","responseText","statusText","onerror","providers","messageFor","elementUIDs","elementByUID","formInputs","validators","elementEvents","summary","debounce","validateForm","form","callback","formUID","getElementUID","formValidationEvent","focusFirstInvalid","invalidFormInputUIDs","filter","uid","firstInvalid","focus","isValid","prevalidate","isFieldValid","field","closest","fieldUID","addProvider","this","addMvcProviders","mvc","MvcValidationProviders","scanMessages","validationMessageElements","querySelectorAll","getAttribute","parseDirectives","attributes","directives","validationAtributes","cut","a","parameters","keys","Q","directive","error","pcut","pvalue","pkey","guid4","Math","random","toString","node","x","getFormValidationTask","formInputUIDs","formValidators","inputUID","tasks","map","all","then","result","every","shouldValidate","trackFormInput","cb","validate","success","isProgrammaticValidate","CustomEvent","detail","valid","dispatchEvent","preventDefault","stopImmediatePropagation","validationEvent","catch","console","log","addEventListener","input","classList","remove","spans","innerHTML","renderSummary","addInput","createValidator","delay","clearTimeout","setTimeout","isDropdown","tagName","validateEvent","dataset","valEvent","scanInputs","inputs","createSummaryDOM","ul","createElement","li","appendChild","summaryElements","shadow","stringify","sort","renderedSummaryJSON","className","cloneNode","addError","message","add","removeError","isHidden","provider","resolution","offsetWidth","offsetHeight","getClientRects","bootstrap","readyState","scan","event"],"mappings":"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","file":"aspnet-validation.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"aspnetValidation\"] = factory();\n\telse\n\t\troot[\"aspnetValidation\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/**\n * A simple IDictionary\n */\nexport interface StringKeyValuePair {\n [key: string]: string\n}\n\n/**\n * A duplex key-value pair for an element, by GUID or its DOM object reference.\n */\ninterface ElementUID {\n node: Element,\n uid: string;\n}\n\n/**\n * Parameters passed into validation providers from the element attributes.\n * error property is read from data-val-[Provider Name] attribute.\n * params property is populated from data-val-[Provider Name]-[Parameter Name] attributes.\n */\nexport interface ValidationDirectiveBindings {\n error: string,\n params: StringKeyValuePair\n}\n\n/**\n * A key-value pair describing what validations to enforce to an input element, with respective parameters.\n */\nexport type ValidationDirective = {\n [key: string]: ValidationDirectiveBindings\n};\n\n/**\n * Validation plugin signature with multitype return.\n * Boolean return signifies the validation result, which uses the default validation error message read from the element attribute.\n * String return signifies failed validation, which then will be used as the validation error message.\n * Promise return signifies asynchronous plugin behavior, with same behavior as Boolean or String.\n */\nexport type ValidationProvider = (value: string, element: HTMLInputElement, params: StringKeyValuePair) => boolean | string | Promise;\n\n/**\n * A callback method signature that kickstarts a new validation task for an input element, as a Boolean Promise.\n */\ntype Validator = () => Promise;\n\n/**\n * Resolves and returns the element referred by original element using ASP.NET selector logic.\n * @param elementName\n */\nfunction getRelativeFormElement(elementName: string, selector: string) {\n // example elementName: Form.PasswordConfirm, Form.Email\n // example selector (dafuq): *.Password, *.__RequestVerificationToken\n // example result element name: Form.Password, __RequestVerificationToken\n\n let realSelector = selector.substr(2); // Password, __RequestVerificationToken\n let objectName = '';\n\n let dotLocation = elementName.lastIndexOf('.');\n if (dotLocation > -1) {\n // Form\n objectName = elementName.substr(0, dotLocation);\n\n // Form.Password\n let relativeElementName = objectName + '.' + realSelector;\n let relativeElement = document.getElementsByName(relativeElementName)[0];\n if (relativeElement) {\n return relativeElement;\n }\n }\n\n // __RequestVerificationToken\n return document.getElementsByName(realSelector)[0];\n}\n\n/**\n * Contains default implementations for ASP.NET Core MVC validation attributes.\n */\nexport class MvcValidationProviders {\n /**\n * Validates whether the input has a value.\n */\n required: ValidationProvider = (value, element, params) => {\n return Boolean(value);\n }\n\n /**\n * Validates whether the input value satisfies the length contstraint.\n */\n stringLength: ValidationProvider = (value, element, params) => {\n if (!value) {\n return true;\n }\n\n if (params.min) {\n let min = parseInt(params.min);\n if (value.length < min) {\n return false;\n }\n }\n\n if (params.max) {\n let max = parseInt(params.max);\n if (value.length > max) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Validates whether the input value is equal to another input value.\n */\n compare: ValidationProvider = (value, element, params) => {\n if (!params.other) {\n return true;\n }\n\n let otherElement = getRelativeFormElement(element.name, params.other) as HTMLInputElement;\n if (!otherElement) {\n return true;\n }\n\n return (otherElement.value === value);\n }\n\n /**\n * Validates whether the input value is a number within a given range.\n */\n range: ValidationProvider = (value, element, params) => {\n if (!value) {\n return true;\n }\n\n let val = parseFloat(value);\n if (isNaN(val)) {\n return false;\n }\n\n if (params.min) {\n let min = parseFloat(params.min);\n if (val < min) {\n return false;\n }\n }\n\n if (params.max) {\n let max = parseFloat(params.max);\n if (val > max) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Validates whether the input value satisfies a regular expression pattern.\n */\n regex: ValidationProvider = (value, element, params) => {\n if (!value || !params.pattern) {\n return true;\n }\n\n let r = new RegExp(params.pattern);\n return r.test(value);\n }\n\n /**\n * Validates whether the input value is an email in accordance to RFC822 specification, with a top level domain.\n */\n email: ValidationProvider = (value, element, params) => {\n if (!value) {\n return true;\n }\n\n // RFC822 email address with .TLD validation\n // (c) Richard Willis, Chris Ferdinandi, MIT Licensed\n // https://gist.github.com/badsyntax/719800\n // https://gist.github.com/cferdinandi/d04aad4ce064b8da3edf21e26f8944c4\n\n let r = /^([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22))*\\x40([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x5b([^\\x0d\\x5b-\\x5d\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x5d)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x5b([^\\x0d\\x5b-\\x5d\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x5d))*(\\.\\w{2,})+$/;\n return r.test(value);\n }\n\n /**\n * Validates whether the input value is a credit card number, with Luhn's Algorithm.\n */\n creditcard: ValidationProvider = (value, element, params) => {\n if (!value) {\n return true;\n }\n\n // (c) jquery-validation, MIT Licensed\n // https://github.com/jquery-validation/jquery-validation/blob/master/src/additional/creditcard.js\n // based on https://en.wikipedia.org/wiki/Luhn_algorithm\n\n // Accept only spaces, digits and dashes\n if (/[^0-9 \\-]+/.test(value)) {\n return false;\n }\n\n var nCheck = 0,\n nDigit = 0,\n bEven = false,\n n, cDigit;\n\n value = value.replace(/\\D/g, \"\");\n\n // Basing min and max length on https://developer.ean.com/general_info/Valid_Credit_Card_Types\n if (value.length < 13 || value.length > 19) {\n return false;\n }\n\n for (n = value.length - 1; n >= 0; n--) {\n cDigit = value.charAt(n);\n nDigit = parseInt(cDigit, 10);\n if (bEven) {\n if ((nDigit *= 2) > 9) {\n nDigit -= 9;\n }\n }\n\n nCheck += nDigit;\n bEven = !bEven;\n }\n\n return (nCheck % 10) === 0;\n }\n\n /**\n * Validates whether the input value is a URL.\n */\n url: ValidationProvider = (value, element, params) => {\n if (!value) {\n return true;\n }\n\n let lowerCaseValue = value.toLowerCase();\n\n // Match the logic in `UrlAttribute`\n return lowerCaseValue.indexOf('http://') > -1\n || lowerCaseValue.indexOf('https://') > -1\n || lowerCaseValue.indexOf('ftp://') > -1;\n }\n\n /**\n * Validates whether the input value is a phone number.\n */\n phone: ValidationProvider = (value, element, params) => {\n if (!value) {\n return true;\n }\n\n // Allows whitespace or dash as number separator because some people like to do that...\n let consecutiveSeparator = /[\\+\\-\\s][\\-\\s]/g;\n if (consecutiveSeparator.test(value)) {\n return false;\n }\n\n let r = /^\\+?[0-9\\-\\s]+$/;\n return r.test(value);\n }\n\n /**\n * Asynchronously validates the input value to a JSON GET API endpoint.\n */\n remote: ValidationProvider = (value, element, params) => {\n if (!value) {\n return true;\n }\n\n // params.additionalfields: *.Email,*.Username\n let fieldSelectors: string[] = (params.additionalfields as string).split(',');\n let fields: StringKeyValuePair = {};\n\n for (let fieldSelector of fieldSelectors) {\n let fieldName = fieldSelector.substr(2);\n let fieldElement = getRelativeFormElement(element.name, fieldSelector) as HTMLInputElement;\n\n let hasValue = Boolean(fieldElement && fieldElement.value);\n if (!hasValue) {\n continue;\n }\n\n fields[fieldName] = fieldElement.value;\n }\n\n let url: string = params['url'];\n // console.log(fields);\n\n let encodedParams: string[] = [];\n for (let fieldName in fields) {\n let encodedParam = encodeURIComponent(fieldName) + '=' + encodeURIComponent(fields[fieldName]);\n encodedParams.push(encodedParam);\n }\n let payload = encodedParams.join('&');\n // console.log(payload);\n\n return new Promise((ok, reject) => {\n let request = new XMLHttpRequest();\n\n if (params.type === 'Post') {\n let postData = new FormData();\n for (let fieldName in fields) {\n postData.append(fieldName, fields[fieldName]);\n }\n request.open('post', url);\n request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n request.send(payload);\n } else {\n request.open('get', url + '?' + payload);\n request.send();\n }\n\n request.onload = e => {\n if (request.status >= 200 && request.status < 300) {\n let data = JSON.parse(request.responseText);\n ok(data);\n } else {\n reject({\n status: request.status,\n statusText: request.statusText,\n data: request.responseText\n });\n }\n };\n\n request.onerror = e => {\n reject({\n status: request.status,\n statusText: request.statusText,\n data: request.responseText\n });\n };\n });\n }\n}\n\n/**\n * Responsibles for managing the DOM elements and running the validation providers.\n */\nexport class ValidationService {\n /**\n * A key-value collection of loaded validation plugins.\n */\n private providers: { [name: string]: ValidationProvider } = {};\n\n /**\n * A key-value collection of elements for displaying validation messages for an input (by DOM ID).\n */\n private messageFor: { [id: string]: Element[] } = {};\n\n /**\n * A list of managed elements, each having a randomly assigned unique identifier (UID).\n */\n private elementUIDs: ElementUID[] = [];\n\n /**\n * A key-value collection of UID to Element for quick lookup.\n */\n private elementByUID: { [uid: string]: Element } = {};\n\n /**\n * A key-value collection of input UIDs for a
UID.\n */\n private formInputs: { [formUID: string]: string[] } = {};\n\n /**\n * A key-value map for input UID to its validator factory.\n */\n private validators: { [inputUID: string]: Validator } = {};\n\n /**\n * A key-value map for element UID to its trigger element (submit event for , input event for