{"version":3,"sources":["webpack:///./src/js/modules/snowReportSignup/components/TrailAnimation.js","webpack:///./src/js/modules/snowReportSignup/components/SuccessMessageAnimation.js","webpack:///./src/js/modules/snowReportSignup/hooks/useSnowReportSignup.js","webpack:///./src/js/modules/snowReportSignup/index.js","webpack:///./node_modules/validator/lib/util/assertString.js","webpack:///./node_modules/validator/lib/util/merge.js","webpack:///./src/js/components/react/Svg.js","webpack:///./src/js/components/react/Dropdown.js","webpack:///./node_modules/validator/lib/isIP.js","webpack:///./node_modules/validator/lib/isFQDN.js","webpack:///./node_modules/validator/lib/isByteLength.js","webpack:///./node_modules/validator/lib/isEmail.js"],"names":["TrailAnimation","isValid","delay","children","items","React","Children","toArray","useSprings","length","map","item","i","from","opacity","y","position","visibility","to","reset","reverse","styles","index","div","key","style","propTypes","PropTypes","bool","isRequired","array","SuccessMessageAnimation","springs","textAlign","springContainer","useSpring","elements","useSnowReportSignup","endpoint","countrySelectionErrorMessage","useState","isFirstLoad","setIsFirstLoad","emailAddress","setEmailAddress","isValidEmail","setIsValidEmail","country","setCountry","isValidCountry","setIsValidCountry","expressConsent","setExpressConsent","subscriptions","setSubscriptions","setIsValid","errorMessage","setErrorMessage","isSubmitButtonDisabled","setIsSubmitButtonDisabled","dropdownErrorMessage","setDropdownErrorMessage","useEffect","useFetchData","Axios","method","url","data","passedValidation","errors","message","console","error","handleDropdownOptions","option","value","handleEmailValue","isEmail","handleSelectedOptions","selectedOptions","includes","splice","indexOf","push","handleResetForm","countryOptions","options","SnowReportSignup","title","copy","emailPlaceholder","dropdownOptions","termsCopy","buttonLabel","sortLabel","successMessage","successCopy","successLinkLabel","emailErrorMessage","expressConsentErrorMessage","optionsObject","JSON","parse","className","htmlFor","type","name","id","onChange","checked","label","e","target","required","Dropdown","initialOption","onClick","disabled","Svg","string","_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","exports","default","input","String","invalidType","TypeError","concat","module","arguments","undefined","defaults","props","xlinkHref","propOptions","componentRef","useRef","triggerEl","listEl","search","searchTimeout","addUniqueIdsToArrayItems","current","inFocusElement","setInFocusElement","selectedIndex","setSelectedIndex","focusedOptionIndex","setFocusedOptionIndex","isOpen","setIsOpen","handleClickOutside","event","contains","zIndex","close","element","duration","findItemToFocus","character","fromCharCode","trim","open","clearTimeout","find","toLowerCase","startsWith","focusItem","setTimeout","handleOnChange","triggerChange","elementToFocus","querySelector","scrollHeight","clientHeight","scrollBottom","scrollTop","elementBottom","offsetTop","offsetHeight","focus","initialSelectedIndex","findIndex","window","addEventListener","removeEventListener","classNames","ref","aria-haspopup","stopPropagation","removeAttribute","prev","onKeyDown","which","keyCode","DOWN","UP","preventDefault","ESC","tabIndex","role","aria-labelledby","aria-activedescendant","RETURN","deltas","endOfArray","nextItem","data-value","aria-selected","focused","theme","oneOf","arrayOf","shape","func","isIP","str","version","_assertString","IPv4AddressRegExp","test","parts","split","sort","a","b","IPv6AddressRegExp","__esModule","IPv4SegmentFormat","IPv4AddressFormat","RegExp","IPv6SegmentFormat","_merge","default_fqdn_options","allow_trailing_dot","substring","tld","require_tld","allow_numeric_tld","every","part","allow_underscores","_interopRequireDefault","min","max","len","encodeURI","default_email_options","require_display_name","allow_display_name","display_email","match","splitNameAddress","display_name","replace","endsWith","substr","display_name_without_quotes","validateDisplayName","ignore_max_length","domain","pop","user","join","lower_domain","domain_specific_validation","username","_isByteLength","_user_parts","gmailUserPart","_isFQDN","allow_ip_domain","_isIP","noBracketdomain","slice","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","pattern","emailUserUtf8Part","emailUserPart","user_parts","_i","blacklisted_chars"],"mappings":"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","file":"16.2cabff8ec62c9613645f.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSprings, a } from '@react-spring/web';\n\nconst TrailAnimation = ({ isValid, delay, children }) => {\n const items = React.Children.toArray(children);\n const time = () => {\n return delay ? 350 : 250;\n };\n const springs = useSprings(\n items.length,\n items.map((item, i) => {\n const delayedTime = time() + 50 * i;\n return {\n from: {\n opacity: 1,\n y: 0,\n position: 'relative',\n visibility: 'visible'\n },\n to: {\n opacity: 0,\n y: -60,\n position: 'relative',\n visibility: 'hidden'\n },\n delay: delayedTime,\n reset: isValid,\n reverse: !isValid\n };\n })\n );\n\n return springs.map((styles, index) => (\n \n {items[index]}\n \n ));\n};\n\nTrailAnimation.propTypes = {\n isValid: PropTypes.bool.isRequired,\n children: PropTypes.array.isRequired\n};\n\nexport default TrailAnimation;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSprings, useSpring, a } from '@react-spring/web';\n\nconst SuccessMessageAnimation = ({ isValid, children }) => {\n const items = React.Children.toArray(children);\n const springs = useSprings(\n items.length,\n items.map((item, i) => ({\n from: {\n opacity: 0,\n y: 0,\n position: 'relative',\n visibility: 'hidden'\n },\n to: {\n opacity: 1,\n y: -30,\n position: 'relative',\n visibility: 'visible',\n textAlign: 'center'\n },\n delay: !isValid ? 1500 + 250 + 50 * i : 250 + 50 * i,\n reset: !isValid,\n reverse: isValid\n }))\n );\n\n const springContainer = useSpring({\n from: {\n opacity: 0\n },\n to: {\n opacity: 1\n },\n delay: !isValid ? 1500 : 0,\n reset: !isValid,\n reverse: isValid\n });\n\n const elements = springs.map((styles, index) => (\n \n {items[index]}\n \n ));\n\n return {elements};\n};\n\nSuccessMessageAnimation.propTypes = {\n isValid: PropTypes.bool.isRequired,\n children: PropTypes.array.isRequired\n};\n\nexport default SuccessMessageAnimation;\n","import { useState, useEffect } from 'react';\nimport Axios from 'axios';\nimport isEmail from 'validator/lib/isEmail';\n\nexport const useSnowReportSignup = ({\n endpoint,\n countrySelectionErrorMessage\n}) => {\n const [isFirstLoad, setIsFirstLoad] = useState(true);\n const [emailAddress, setEmailAddress] = useState('');\n const [isValidEmail, setIsValidEmail] = useState(null);\n const [country, setCountry] = useState(null);\n const [isValidCountry, setIsValidCountry] = useState(null);\n const [expressConsent, setExpressConsent] = useState(false);\n const [subscriptions, setSubscriptions] = useState([]);\n const [isValid, setIsValid] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const [isSubmitButtonDisabled, setIsSubmitButtonDisabled] = useState(null);\n const [dropdownErrorMessage, setDropdownErrorMessage] = useState('');\n\n useEffect(() => {\n if (isValidEmail && isValidCountry && expressConsent) {\n setIsSubmitButtonDisabled(false);\n } else {\n setIsSubmitButtonDisabled(true);\n }\n }, [isValidEmail, isValidCountry, expressConsent]);\n\n const useFetchData = async () => {\n if (isValidEmail && isValidCountry && expressConsent) {\n try {\n const { data } = await Axios({\n method: 'POST',\n url: endpoint,\n data: {\n emailAddress,\n country,\n expressConsent,\n subscriptions\n }\n });\n const { passedValidation, errors } = data;\n setIsValid(passedValidation);\n if (errors.length > 0) setErrorMessage(errors[0].message);\n } catch (error) {\n console.error();\n }\n }\n };\n\n const handleSelectedOptions = value => {\n const selectedOptions = [...subscriptions];\n\n if (selectedOptions.includes(value)) {\n selectedOptions.splice(selectedOptions.indexOf(value), 1);\n } else {\n selectedOptions.push(value);\n }\n\n setSubscriptions(selectedOptions);\n };\n\n const handleDropdownOptions = option => {\n setIsFirstLoad(false);\n if (option.value) {\n setDropdownErrorMessage('');\n setIsValidCountry(true);\n setCountry(option.value);\n } else {\n setDropdownErrorMessage(countrySelectionErrorMessage);\n setIsValidCountry(false);\n setCountry(null);\n }\n };\n\n const handleEmailValue = value => {\n setIsFirstLoad(false);\n setEmailAddress(value);\n setIsValidEmail(isEmail(value));\n };\n\n const handleResetForm = countryOptions => {\n setIsFirstLoad(true);\n setIsValid(false);\n setEmailAddress('');\n setIsValidEmail(false);\n setSubscriptions([]);\n setCountry(countryOptions.options[0]);\n setExpressConsent(false);\n setIsSubmitButtonDisabled(false);\n };\n\n return {\n useFetchData,\n handleDropdownOptions,\n handleEmailValue,\n handleSelectedOptions,\n handleResetForm,\n setIsSubmitButtonDisabled,\n setExpressConsent,\n isValidCountry,\n isValidEmail,\n emailAddress,\n expressConsent,\n isFirstLoad,\n isValid,\n errorMessage,\n isSubmitButtonDisabled,\n dropdownErrorMessage,\n subscriptions,\n country\n };\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport parse from 'html-react-parser';\nimport Dropdown from '../../components/react/Dropdown';\nimport TrailAnimation from './components/TrailAnimation';\nimport SuccessMessageAnimation from './components/SuccessMessageAnimation';\nimport { useSnowReportSignup } from './hooks/useSnowReportSignup';\nimport Svg from '../../components/react/Svg';\n\nconst SnowReportSignup = ({\n endpoint,\n title,\n copy,\n options,\n emailPlaceholder,\n dropdownOptions,\n termsCopy,\n buttonLabel,\n sortLabel,\n successMessage,\n successCopy,\n successLinkLabel,\n emailErrorMessage,\n countrySelectionErrorMessage,\n expressConsentErrorMessage\n}) => {\n const optionsObject = JSON.parse(options);\n const countryOptions = JSON.parse(dropdownOptions);\n const {\n useFetchData,\n handleDropdownOptions,\n handleEmailValue,\n handleSelectedOptions,\n setExpressConsent,\n handleResetForm,\n isValidEmail,\n emailAddress,\n expressConsent,\n isFirstLoad,\n isValid,\n errorMessage,\n isSubmitButtonDisabled,\n dropdownErrorMessage,\n subscriptions,\n country\n } = useSnowReportSignup({ endpoint, countrySelectionErrorMessage });\n\n return (\n
\n
\n \n

{title}

\n
{parse(copy)}
\n
\n {optionsObject.map((option, i) => {\n return (\n \n handleSelectedOptions(option.value)}\n checked={subscriptions.includes(option.value)}\n />\n \n {option.label}\n \n );\n })}\n
\n
\n
\n
\n \n
\n handleEmailValue(e.target.value)}\n value={emailAddress}\n className={\n !isValidEmail && !isFirstLoad\n ? 'snow-report-signup__email-input--error'\n : ''\n }\n required\n />\n \n {emailPlaceholder}\n \n {!isValidEmail && !isFirstLoad ? (\n

\n {emailErrorMessage}\n

\n ) : (\n ''\n )}\n
\n
\n \n
\n
\n \n {!expressConsent && !isFirstLoad ? (\n

\n {expressConsentErrorMessage}\n

\n ) : (\n ''\n )}\n
\n \n {buttonLabel}\n \n {!isValid && (\n

\n {errorMessage}\n

\n )}\n
\n
\n \n \n
\n \n
\n

\n {successMessage}\n

\n

{successCopy}

\n handleResetForm(countryOptions)}\n >\n {successLinkLabel}\n \n
\n
\n \n );\n};\n\nSnowReportSignup.propTypes = {\n endpoint: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n copy: PropTypes.string.isRequired,\n options: PropTypes.string.isRequired,\n emailPlaceholder: PropTypes.string.isRequired,\n dropdownOptions: PropTypes.string.isRequired,\n sortLabel: PropTypes.string.isRequired,\n termsCopy: PropTypes.string.isRequired,\n buttonLabel: PropTypes.string.isRequired,\n successMessage: PropTypes.string.isRequired,\n successCopy: PropTypes.string.isRequired,\n successLinkLabel: PropTypes.string.isRequired,\n emailErrorMessage: PropTypes.string.isRequired,\n countrySelectionErrorMessage: PropTypes.string.isRequired,\n expressConsentErrorMessage: PropTypes.string.isRequired\n};\n\nexport default SnowReportSignup;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType = _typeof(input);\n\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Svg = ({ name, ...props }) => (\n \n \n \n);\n\nSvg.propTypes = {\n name: PropTypes.string.isRequired\n}\n\nexport default Svg;\n","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Svg from './Svg';\nimport classNames from 'classnames';\nimport { addUniqueIdsToArrayItems, open, close, keyCode } from '../../helpers';\n\nconst Dropdown = ({\n label,\n options: propOptions,\n name,\n initialOption,\n onChange,\n className,\n errorMessage\n}) => {\n const componentRef = useRef(null);\n const triggerEl = useRef(null);\n const listEl = useRef(null);\n const search = useRef('');\n const searchTimeout = useRef(null);\n const { current: options } = useRef(addUniqueIdsToArrayItems(propOptions));\n const [inFocusElement, setInFocusElement] = useState(null);\n const [selectedIndex, setSelectedIndex] = useState(0);\n const [focusedOptionIndex, setFocusedOptionIndex] = useState(0);\n const [isOpen, setIsOpen] = useState(false);\n\n const handleTriggerKeyEvents = e => {\n const key = e.which || e.keyCode;\n\n switch (key) {\n case keyCode.DOWN:\n case keyCode.UP:\n e.preventDefault();\n setIsOpen(true);\n setInFocusElement(listEl.current);\n if (!isOpen) open({ element: listEl.current, duration: 0.6 });\n break;\n case keyCode.ESC:\n if (isOpen) close({ element: listEl.current, duration: 0.6 });\n return setIsOpen(false);\n default:\n findItemToFocus(key);\n break;\n }\n };\n\n const handleTriggerClickEvent = e => {\n e.stopPropagation();\n listEl.current.removeAttribute('style');\n setIsOpen(prev => !prev);\n !isOpen\n ? open({ element: listEl.current, duration: 0.6 })\n : close({ element: listEl.current, duration: 0.6 });\n };\n\n const handleClickOutside = event => {\n if (componentRef.current && !componentRef.current.contains(event.target)) {\n listEl.current.style.zIndex = '-1'\n close({ element: listEl.current, duration: 0.6 });\n setIsOpen(false);\n }\n };\n\n const handleListKeyEvents = e => {\n e.preventDefault();\n const key = e.which || e.keyCode;\n\n switch (key) {\n case keyCode.ESC:\n case keyCode.RETURN:\n setIsOpen(false);\n close({ element: listEl.current, duration: 0.6 });\n setInFocusElement(triggerEl.current);\n\n if (key === keyCode.ESC) {\n handleOnChange({ index: selectedIndex, triggerChange: false });\n }\n if (key === keyCode.RETURN) {\n handleOnChange({ index: focusedOptionIndex });\n }\n break;\n case keyCode.DOWN:\n case keyCode.UP:\n const deltas = { [keyCode.DOWN]: 1, [keyCode.UP]: -1 };\n const startOfArray = 0;\n const endOfArray = options.length - 1;\n const nextItem = focusedOptionIndex + deltas[key];\n\n if (nextItem < startOfArray) {\n focusItem(endOfArray);\n } else if (nextItem > endOfArray) {\n focusItem(startOfArray);\n } else {\n focusItem(nextItem);\n }\n break;\n default:\n findItemToFocus(key);\n break;\n }\n };\n\n const findItemToFocus = key => {\n const character = String.fromCharCode(key).trim();\n\n if (!character) return;\n\n if (!isOpen) {\n setIsOpen(true);\n open({ element: listEl.current, duration: 0.6 });\n }\n\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n }\n\n search.current += character;\n\n options.find((option, index) => {\n if (option.label.toLowerCase().startsWith(search.current.toLowerCase())) {\n setSelectedIndex(index);\n focusItem(index);\n return true;\n }\n });\n\n searchTimeout.current = setTimeout(() => {\n search.current = '';\n }, 500);\n };\n\n const handleOnChange = ({ index, triggerChange = true }) => {\n if (isOpen) close({ element: listEl.current, duration: 0.6 });\n setIsOpen(false);\n setSelectedIndex(index);\n focusItem(index);\n triggerChange && onChange(options[index]);\n };\n\n const focusItem = index => {\n setFocusedOptionIndex(index);\n\n const { value } = options[index];\n\n if (!value || !listEl.current) return;\n\n const elementToFocus = listEl.current.querySelector(\n `[data-value='${value}']`\n );\n\n if (listEl.current.scrollHeight > listEl.current.clientHeight) {\n const scrollBottom =\n listEl.current.clientHeight + listEl.current.scrollTop;\n const elementBottom =\n elementToFocus.offsetTop + elementToFocus.offsetHeight;\n if (elementBottom > scrollBottom) {\n listEl.current.scrollTop = elementBottom - listEl.current.clientHeight;\n } else if (elementToFocus.offsetTop < listEl.current.scrollTop) {\n listEl.current.scrollTop = elementToFocus.offsetTop;\n }\n }\n };\n\n useEffect(() => {\n inFocusElement?.focus();\n }, [inFocusElement]);\n\n useEffect(() => {\n const initialSelectedIndex = options.findIndex(\n ({ value }) => initialOption && initialOption.value === value\n );\n if (initialSelectedIndex >= 0) {\n setSelectedIndex(initialSelectedIndex);\n setFocusedOptionIndex(initialSelectedIndex);\n }\n window.addEventListener('mousedown', e => handleClickOutside(e));\n return () => {\n window.removeEventListener('mousedown', e => handleClickOutside(e));\n };\n }, [initialOption, options]);\n\n return (\n <>\n \n \n {label}\n {options[selectedIndex].label}\n \n \n \n {options.map((option, index) => (\n handleOnChange({ index })}\n aria-selected={selectedIndex === index}\n className={classNames('dropdown__list__option', {\n focused: index === focusedOptionIndex\n })}\n >\n {option.label}\n \n \n \n \n ))}\n \n \n {errorMessage && (\n

{errorMessage}

\n )}\n \n );\n};\n\nDropdown.propTypes = {\n className: PropTypes.string,\n theme: PropTypes.oneOf(['light', 'dark']),\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n })\n ).isRequired,\n initialOption: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n }),\n onChange: PropTypes.func,\n errorMessage: PropTypes.string\n};\n\nexport default Dropdown;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n\n if (version === '4') {\n if (!IPv4AddressRegExp.test(str)) {\n return false;\n }\n\n var parts = str.split('.').sort(function (a, b) {\n return a - b;\n });\n return parts[3] <= 255;\n }\n\n if (version === '6') {\n return !!IPv6AddressRegExp.test(str);\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false\n};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n\n if (!/^([a-z\\u00a1-\\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces && special characers\n\n\n if (/[\\s\\u2002-\\u200B\\u202F\\u205F\\u3000\\uFEFF\\uDB40\\uDC20\\u00A9\\uFFFD]/.test(tld)) {\n return false;\n }\n } // reject numeric TLDs\n\n\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n\n return parts.every(function (part) {\n if (part.length > 63) {\n return false;\n }\n\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n } // disallow parts starting or ending with hyphen\n\n\n if (/^-|-$/.test(part)) {\n return false;\n }\n\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n\n return true;\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n } // the quotes in display name must start with character symbol \\\n\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n\n if (display_email) {\n var display_name = display_email[1]; // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n\n str = str.replace(display_name, '').replace(/(^<|>$)/g, ''); // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n\n if (display_name.endsWith(' ')) {\n display_name = display_name.substr(0, display_name.length - 1);\n }\n\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var user = parts.join('@');\n var lower_domain = domain.toLowerCase();\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace('.', ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.substr(1, domain.length - 2);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;"],"sourceRoot":""}