{"version":3,"file":"static/chunks/5716-340c8ca95b20294a.js","mappings":"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","sources":["webpack://_N_E/./src/components/AddressFields/addressFieldsValidation.validation.ts","webpack://_N_E/./src/components/AddressFields/index.tsx","webpack://_N_E/./src/components/SuppressionFields/styles.ts","webpack://_N_E/./src/components/SuppressionFields/index.tsx","webpack://_N_E/./src/components/SuppressionFields/suppressionFieldsValidation.validation.ts","webpack://_N_E/./src/hooks/useIsTabActive.ts","webpack://_N_E/./src/utils/formUtils.ts"],"sourcesContent":["import * as z from \"zod\";\nimport {\n regexAlphaNumericPlus,\n regexAlphaPlus,\n regexInternationalPostcode,\n regexUkPostcode,\n} from \"@fwa/src/utils/formUtils\";\n\nexport const addressValidation = z\n .object({\n line1: z\n .string({ required_error: \"Address line 1 field is required.\" })\n .trim()\n .min(1, \"Address line 1 field is required.\")\n .min(3, \"Address line 1 should be at least 3 characters long.\")\n .max(100, \"Address line 1 should be at most 100 characters long.\")\n .regex(\n regexAlphaNumericPlus.pattern,\n `Address line 1 ${regexAlphaNumericPlus.message}`,\n )\n .refine(\n (value) => (value ? !regexUkPostcode.pattern.test(value) : true),\n \"Address line 1 should not contain a postcode.\",\n ),\n line2: z\n .string()\n .trim()\n .max(100, \"Address line 2 should be at most 100 characters long.\")\n .regex(\n regexAlphaNumericPlus.pattern,\n `Address line 2 ${regexAlphaNumericPlus.message}`,\n )\n .optional(),\n line3: z\n .string()\n .trim()\n .max(100, \"Address line 3 should be at most 100 characters long.\")\n .regex(\n regexAlphaNumericPlus.pattern,\n `Address line 3 ${regexAlphaNumericPlus.message}`,\n )\n .optional(),\n city: z\n .string()\n .trim()\n .min(1, \"City field is required.\")\n .min(2, \"City should be at least 2 characters long.\")\n .max(50, \"City should be at most 50 characters long.\")\n .regex(regexAlphaPlus.pattern, `City ${regexAlphaPlus.message}`),\n country: z\n .string()\n .trim()\n .max(50, \"Country should be at most 50 characters long.\")\n .regex(\n regexAlphaNumericPlus.pattern,\n `City ${regexAlphaNumericPlus.message}`,\n ),\n postalCode: z\n .string()\n .trim()\n .min(1, \"Postcode field is required.\")\n .min(2, \"Postcode should be at least 2 characters long.\"),\n validated: z.boolean(),\n })\n .refine(\n // line1 should not be empty when line2 isn't\n (data) => (data.line2?.length && !data.line1?.length ? false : true),\n {\n message: \"Address line 1 missing\",\n path: [\"line1\"],\n },\n )\n .refine(\n // Line2 should not be empty when line3 isn't\n (data) => (data.line3?.length && !data.line2?.length ? false : true),\n {\n message: \"Address line 2 missing\",\n path: [\"line2\"],\n },\n )\n .refine(\n // line1 should match line2 or line3\n (data) =>\n data.line1?.length &&\n (data.line1 === data.line2 || data.line1 === data.line3)\n ? false\n : true,\n {\n message:\n \"Address line 1, Address line 2, Address line 3 should not match.\",\n path: [\"line1\"],\n },\n )\n .refine(\n // line2 should match line1 or line3\n (data) =>\n data.line2?.length &&\n (data.line2 === data.line1 || data.line2 === data.line3)\n ? false\n : true,\n {\n message:\n \"Address line 1, Address line 2, Address line 3 should not match.\",\n path: [\"line2\"],\n },\n )\n .refine(\n // line3 should match line1 or line2\n (data) =>\n data.line3?.length &&\n (data.line3 === data.line1 || data.line3 === data.line2)\n ? false\n : true,\n {\n message:\n \"Address line 1, Address line 2, Address line 3 should not match.\",\n path: [\"line3\"],\n },\n )\n .refine(\n // if UK country postcode should be valid length\n (data) =>\n data.postalCode &&\n (data.postalCode?.length || 0) > 8 &&\n [\"GBR\", \"GGY\", \"IMN\", \"JEY\"].includes(data.country)\n ? false\n : true,\n {\n message: \"Postcode should be at most 8 characters long.\",\n path: [\"postalCode\"],\n },\n )\n .refine(\n // if non UK country postcode should be valid length\n (data) =>\n data.postalCode &&\n (data.postalCode?.length || 0) > 10 &&\n ![\"GBR\", \"GGY\", \"IMN\", \"JEY\"].includes(data.country)\n ? false\n : true,\n {\n message: \"Postcode should be at most 10 characters long.\",\n path: [\"postalCode\"],\n },\n )\n .refine(\n // if UK country postcode should be valid postcode\n (data) =>\n data.postalCode && [\"GBR\", \"GGY\", \"IMN\", \"JEY\"].includes(data.country)\n ? regexUkPostcode.pattern.test(data.postalCode)\n : true,\n {\n message: regexUkPostcode.message,\n path: [\"postalCode\"],\n },\n )\n .refine(\n // if non UK country postcode should be valid postcode\n (data) =>\n data.postalCode && [\"GBR\", \"GGY\", \"IMN\", \"JEY\"].includes(data.country)\n ? true\n : regexInternationalPostcode.pattern.test(data.postalCode),\n {\n message: `Postcode ${regexInternationalPostcode.message}`,\n path: [\"postalCode\"],\n },\n );\n\nexport default addressValidation;\n","import { useRef } from \"react\";\nimport {\n AddressLookup,\n Collapse,\n Box,\n Select,\n TextField,\n Text,\n type AddressDataType,\n IconFa,\n} from \"@cruk/cruk-react-components\";\nimport { type UseFormReturn } from \"react-hook-form\";\nimport type * as z from \"zod\";\n\nimport countries from \"@fwa/src/components/AddressFields/countries.json\";\nimport { ColumnReverse, FieldWrapper, Row } from \"@fwa/src/components/styles\";\nimport { type addressValidation } from \"@fwa/src/components/AddressFields/addressFieldsValidation.validation\";\nimport { faMagnifyingGlassLocation } from \"@fortawesome/free-solid-svg-icons\";\n\nconst POSTCODE_ANYWHERE_API_KEY =\n process.env.NEXT_PUBLIC_POSTCODE_ANYWHERE_API_KEY || \"\";\nconst ukCountries = [\"GBR\", \"GGY\", \"IMN\", \"JEY\"];\nconst isUk = (countryCode: string) => ukCountries.includes(countryCode);\n\nexport type AddressFieldsValues = {\n address: z.infer;\n};\n\nexport const AddressFields = (\n props: UseFormReturn,\n) => {\n const assertProps = props as unknown as UseFormReturn;\n const { register, setValue, formState, trigger, watch } = assertProps;\n const searchRef = useRef(null);\n const topAddressRef = useRef(null);\n\n const watchCountry = watch(\"address.country\");\n\n const handleAddressLookupChange = () => {\n setValue(\"address.validated\", false);\n };\n\n const handleAddressSelected = (address: AddressDataType) => {\n setValue(\"address.country\", address.CountryIso3);\n setValue(\"address.line1\", address.Line1);\n setValue(\"address.line2\", address.Line2);\n setValue(\"address.line3\", address.Line3);\n setValue(\"address.city\", address.City);\n setValue(\"address.postalCode\", address.PostalCode);\n setValue(\"address.validated\", true);\n trigger().catch(() => {\n // do nothing\n });\n if (searchRef.current) {\n searchRef.current.value = \"\";\n }\n if (topAddressRef.current) {\n topAddressRef.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n };\n\n return (\n <>\n \n {\n setValue(\"address.validated\", false);\n register(\"address.country\")\n .onChange(e)\n .catch(() => {\n // don't throw on blur error and break from\n });\n trigger().catch(() => {\n // don't throw on request to revalidate\n });\n }}\n label=\"Country\"\n name=\"address.country\"\n required\n errorMessage={formState.errors?.address?.country?.message}\n >\n {countries.map(({ code, name }) => (\n \n ))}\n \n \n {isUk(watchCountry) ? (\n \n \n
\n \n
\n\n \n \n \n \n \n
\n
\n ) : null}\n \n \n \n We may use this information to identify if you’ve supported Cancer\n Research UK before. This will help us to ensure that our records are\n up to date so that you can receive appropriate communications from\n us.\n \n \n \n \n
\n {\n setValue(\"address.validated\", false);\n register(\"address.line1\")\n .onChange(e)\n .catch(() => {\n // don't throw on element change error out of our control\n });\n }}\n autoComplete=\"address-line1\"\n label=\"Address line 1\"\n errorMessage={formState.errors?.address?.line1?.message}\n required\n />\n
\n
\n \n {\n setValue(\"address.validated\", false);\n register(\"address.line2\")\n .onChange(e)\n .catch(() => {\n // don't throw on element change error out of our control\n });\n }}\n label=\"Address line 2\"\n errorMessage={formState.errors?.address?.line2?.message}\n />\n \n \n {\n setValue(\"address.validated\", false);\n register(\"address.line3\")\n .onChange(e)\n .catch(() => {\n // don't throw on element change error out of our control\n });\n }}\n label=\"Address line 3\"\n errorMessage={formState.errors?.address?.line3?.message}\n />\n \n \n {\n setValue(\"address.validated\", false);\n register(\"address.city\")\n .onChange(e)\n .catch(() => {\n // don't throw on element change error out of our control\n });\n }}\n label=\"City\"\n autoComplete=\"address-level2\"\n errorMessage={formState.errors?.address?.city?.message}\n required\n />\n \n \n {\n setValue(\"address.validated\", false);\n register(\"address.postalCode\")\n .onChange(e)\n .catch(() => {\n // don't throw on element change error out of our control\n });\n }}\n label=\"Postcode\"\n autoComplete=\"postal-code\"\n errorMessage={formState.errors?.address?.postalCode?.message}\n required\n />\n \n \n );\n};\n\nexport default AddressFields;\n","import { type ThemeType } from \"@cruk/cruk-react-components\";\nimport styled from \"styled-components\";\n\nexport const SuppressionsFieldset = styled.fieldset<{ theme: ThemeType }>`\n padding: 0;\n margin: 0 0 ${({ theme }) => theme.spacing.s} 0;\n border: none;\n fieldset {\n padding: 0;\n margin: 0 0 ${({ theme }) => theme.spacing.s} 0;\n legend {\n max-width: 32%;\n }\n > label {\n margin-left: 4%;\n width: 30%;\n }\n input {\n margin-left: 0;\n margin-right: 0;\n }\n }\n`;\n\nexport default SuppressionsFieldset;\n","import { type ChangeEvent, type ReactNode } from \"react\";\nimport { type UseFormReturn } from \"react-hook-form\";\nimport { type z } from \"zod\";\nimport {\n Box,\n RadioConsent,\n Collapse,\n Heading,\n Text,\n Link,\n} from \"@cruk/cruk-react-components\";\nimport { type suppresionValidation } from \"@fwa/src/components/SuppressionFields/suppressionFieldsValidation.validation\";\nimport { SuppressionsFieldset } from \"@fwa/src/components/SuppressionFields/styles\";\n\nexport type SuppressionValues = {\n suppressions: z.infer;\n};\n\ntype EmailOptions = z.infer[\"email\"];\ntype TextOptions = z.infer[\"text\"];\ntype PostOptions = z.infer[\"post\"];\ntype PhoneOptions = z.infer[\"phone\"];\n\nexport const SuppressionFields = (\n props: UseFormReturn & SuppressionValues & { child?: ReactNode },\n) => {\n const { suppressions, child } = props;\n const assertProps = props as unknown as UseFormReturn;\n const { setValue } = assertProps;\n\n return (\n <>\n Staying in touch with us\n \n Help bring forward the day when all cancers are cured. Hear about our\n latest breakthroughs, campaigns and how you can support our life saving\n work.\n \n \n We may contact you by post or phone unless you select ‘No’ below.\n \n \n \n Would you like to hear from us by:\n \n ) => {\n setValue(\"suppressions.email\", e.target.value as EmailOptions);\n }}\n attributes={[\n { option: \"Yes\", value: \"PYEM\" },\n { option: \"No\", value: \"PNEM\" },\n ]}\n selectedValue={suppressions.email}\n data-cta-type=\"suppressions-email\"\n />\n ) => {\n setValue(\"suppressions.text\", e.target.value as TextOptions);\n }}\n attributes={[\n { option: \"Yes\", value: \"PYSM\" },\n { option: \"No\", value: \"PNSM\" },\n ]}\n selectedValue={suppressions.text}\n data-cta-type=\"suppressions-text\"\n />\n ) => {\n setValue(\"suppressions.post\", e.target.value as PostOptions);\n }}\n attributes={[\n { option: \"Yes\", value: \"LIPO\" },\n { option: \"No\", value: \"PNPO\" },\n ]}\n selectedValue={suppressions.post}\n data-cta-type=\"suppressions-post\"\n />\n ) => {\n setValue(\"suppressions.phone\", e.target.value as PhoneOptions);\n }}\n attributes={[\n { option: \"Yes\", value: \"LIPH\" },\n { option: \"No\", value: \"PNPH\" },\n ]}\n selectedValue={suppressions.phone}\n data-cta-type=\"suppressions-phone\"\n />\n \n {child}\n Change your mind at any time\n \n Contact us on{\" \"}\n \n 0300 123 3379\n {\" \"}\n or{\" \"}\n \n preferences@cancer.org.uk\n {\" \"}\n or via this{\" \"}\n \n contact preferences form\n \n .\n \n \n Your details are safe with us. Check out our{\" \"}\n \n Privacy Policy\n {\" \"}\n for more details.\n \n \n To make our fundraising efforts effective we may research you using\n publicly available sources.\n \n \n \n \n Examples of publicly available sources we may use include public\n registers, corporate websites, the news or social media.\n \n \n This information is stored securely and protected from unauthorised\n access or disclosure.\n
Find out more in our{\" \"}\n \n privacy policy\n \n . If you don’t want us to do this research in relation to you, you\n can tell us anytime by contacting 0300 123 3379 or{\" \"}\n \n preferences@cancer.org.uk\n \n .\n
\n \n\n \n We may try to obtain up-to-date contact details for you using external\n sources if you move house or change number, so that we can stay in\n touch.\n \n\n \n \n We may try to obtain up-to-date contact details for you using\n external sources such as 3rd party organisations (if you previously\n provided consent to share your data), or the post office national\n change of address database. This means that we can ensure we have an\n accurate record of our supporters and ensure that we continue to\n communicate with you in accordance with your wishes.\n \n \n If you don’t want us to do this in relation to you, you can tell us\n anytime by contacting{\" \"}\n 0300 123 3379 or{\" \"}\n \n preferences@cancer.org.uk\n \n \n \n
\n \n );\n};\n\nexport default SuppressionFields;\n","import * as z from \"zod\";\n\nexport const suppresionValidation = z.object({\n email: z.enum([\"PYEM\", \"PNEM\", \"PUEM\"]),\n phone: z.enum([\"PNPH\", \"LIPH\"]),\n post: z.enum([\"PNPO\", \"LIPO\"]),\n text: z.enum([\"PYSM\", \"PNSM\", \"PUSM\"]),\n});\n\nexport default suppresionValidation;\n","import { useCallback, useEffect, useState } from \"react\";\nimport { isBrowser } from \"@fwa/src/utils/browserUtils\";\n\nconst useIsTabActive = () => {\n const [isTabVisible, setIsTabVisible] = useState(false);\n\n const handleVisibilityChange = useCallback(() => {\n setIsTabVisible(document.visibilityState === \"visible\");\n }, []);\n\n useEffect(() => {\n if (isBrowser) {\n document.addEventListener(\"visibilitychange\", handleVisibilityChange);\n }\n return () => {\n if (isBrowser) {\n document.removeEventListener(\n \"visibilitychange\",\n handleVisibilityChange,\n );\n }\n };\n }, [handleVisibilityChange]);\n\n return isTabVisible;\n};\n\nexport default useIsTabActive;\n","import { type RegExpObject, type ValidationType } from \"@fwa/src/types\";\n\n/*\nUtil function for making a delay and then a thenable for delaying promises,\nuseful when waiting for validation before submission\n*/\nexport const delay = (ms: number) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\nexport const removeEmptyStringAttributes = (\n obj: Record,\n) =>\n Object.entries(obj)\n .filter(([, v]) => v !== \"\")\n .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {});\n\nexport const validate = (\n value: string,\n validation: ValidationType,\n setValidationMessage: (msg: string) => void,\n): boolean => {\n if (!validation) return true;\n if (typeof validation.required !== \"undefined\" && validation.required) {\n if (!value.length) {\n setValidationMessage(`This field is required`);\n return false;\n }\n }\n if (\n typeof validation.type !== \"undefined\" &&\n validation.type === \"number\" &&\n Number.isNaN(Number(value))\n ) {\n setValidationMessage(\"This value must be a number\");\n return false;\n }\n if (\n typeof validation.type !== \"undefined\" &&\n validation.type === \"money\" &&\n !RegexMoney.pattern.test(value)\n ) {\n setValidationMessage(RegexMoney.message);\n return false;\n }\n if (typeof validation.minValue !== \"undefined\") {\n if (\n validation.minValue &&\n (Number.isNaN(Number(value)) || Number(value) < validation.minValue)\n ) {\n setValidationMessage(\n `Minimum value is ${validation.minValue?.toString() || \"\"}`,\n );\n return false;\n }\n }\n if (typeof validation.maxValue !== \"undefined\") {\n if (\n validation.maxValue &&\n (Number.isNaN(Number(value)) || Number(value) > validation.maxValue)\n ) {\n setValidationMessage(\n `Maximum value is ${validation.maxValue?.toString() || \"\"}`,\n );\n return false;\n }\n }\n if (typeof validation.minLength !== \"undefined\") {\n if (\n validation.minLength &&\n value.length > 0 &&\n value.length < validation.minLength\n ) {\n setValidationMessage(\n `This field should be at least ${validation.minLength.toString()} characters`,\n );\n return false;\n }\n }\n if (typeof validation.maxLength !== \"undefined\") {\n if (validation.maxLength && value.length > validation.maxLength) {\n setValidationMessage(\n `This field should be at most ${validation.maxLength.toString()} characters`,\n );\n return false;\n }\n }\n if (typeof validation.regex !== \"undefined\") {\n const regexObject: RegExpObject = validation.regex;\n if (!value.match(regexObject.pattern)) {\n setValidationMessage(regexObject.message);\n return false;\n }\n }\n setValidationMessage(\"\");\n return true;\n};\n\nexport const sanitiseWhiteSpace = (text: string) => {\n // u00a0 = no-break space\n const trimmedText = text?.replace(/\\u00a0/g, \" \").trim() || \"\";\n const textWithPredictableSpacing = trimmedText\n .replace(/(?:\\r\\n|\\r|\\n)/g, \"Ł\")\n .replace(/Ł/g, \"\\r\\n\");\n return textWithPredictableSpacing;\n};\n\n// we are keeping escape chars in square brackets because we want the same regex to be robust in all languages and different flavours need it.\n/* eslint-disable no-useless-escape */\n\nexport const sanitiseNames = (name: string) =>\n name\n .trim()\n .replace(/\\s+/g, \" \")\n .replace(/[^\\s\\-\\'.]+[\\s\\-\\'.]*/g, (word) => {\n const titleCaseWord =\n word[0].toUpperCase() + word.substr(1).toLowerCase();\n const macRegex = /^ma?c(.)/i;\n const matchMcOrMac = macRegex.exec(word);\n if (matchMcOrMac) {\n return (\n titleCaseWord.slice(0, matchMcOrMac[0].length - 1) +\n matchMcOrMac[1] +\n titleCaseWord.slice(matchMcOrMac[0].length)\n );\n }\n return titleCaseWord;\n });\n\nexport const sanitiseUkPostCode = (postCode: string) => {\n const noSpaceString = postCode.replace(/ /g, \"\").toLocaleUpperCase();\n const withSpaceString = `${noSpaceString.substring(\n 0,\n noSpaceString.length - 3,\n )} ${noSpaceString.substring(\n noSpaceString.length - 3,\n noSpaceString.length,\n )}`;\n\n return withSpaceString;\n};\n\nexport const sanitiseIfUkPostCode = (postCode: string) => {\n if (regexUkPostcode.pattern.exec(postCode)) {\n return sanitiseUkPostCode(postCode);\n }\n\n return postCode;\n};\nexport const calcLength = (val: string) => {\n if (!val) return 0;\n let value = val;\n if (value.endsWith(\"\\n\")) {\n value = value.slice(0, -1);\n }\n return value.replace(/(?:\\r\\n|\\r|\\n)/g, \"Ł\").replace(/Ł/g, \"\\r\\n\").length;\n};\n\nexport const regexFornameExclusions: RegExpObject = {\n message: \"Please only enter a formal forname.\",\n pattern:\n /^(?!.*((.)\\2{3,})|(^|\\s)([\\.\\-\\']+|and|aunt|auntie|aunty|best|big|brother|dad|daddie|daddio|daddy|dr|father|favourite|friend|gdad|gma|gramps|gran|grand|grand-dad|granda|grandad|granddad|grandma|grandpa|grandparents|grandson|granio|granny|grumpy|husband|mam|mama|mother|mum|mumma|mummy|nan|nanna|nannie|nanny|sex|sister|xx|xxx)(\\s|$))/i,\n};\n\nexport const regexSurnameExclusions: RegExpObject = {\n message: \"Please only enter a formal surname.\",\n pattern:\n /^(?!.*((.)\\2{3,})|(^|\\s)([\\.\\-\\']+|and|aunt|auntie|aunty|banana hammock|bananahammock|dad|daddy|god|grampy|grand-dad|granda|grandad|grandma|mum|mummy|nan|nana|nanny|of nazareth|xx|xxx)(\\s|$))/i,\n};\n\nexport const regexEmail: RegExpObject = {\n message: \"Please enter a valid email address.\",\n pattern:\n /^(?=([a-z0-9!#$%&'*+\\/=?^_`{|}~\\-]+)((\\.[a-z0-9!#$%&'*+\\/=?^_`{|}~\\-]+)*)).{1,64}@([a-z0-9]([a-z0-9-]*[a-z0-9])?\\.)+[a-z][a-z]+$/i,\n};\n\nexport const regexTelephone: RegExpObject = {\n message: \"Phone number must contain only numbers, optionally starting with +\",\n pattern: /^\\+?[0-9]{10,16}$/,\n};\n\n// This isn't used downstream and it's possible to have a UK address but an international mobile\n// export const regexTelephoneUk: RegExpObject = {\n// message: \"Must begin with '07' or '01' or '02' and may only contain numbers.\",\n// pattern: /^(0[127][0-9]*){1}[0-9]{9,15}$/,\n// };\n\nexport const regexMobileTelephone: RegExpObject = {\n message: \"Please enter a valid mobile number\",\n pattern: /^(07|\\+447|00447)[0-9]*$/,\n};\n\n// regexes specified by Siebel\nexport const regexAlphaNumericPlus: RegExpObject = {\n message:\n \"may contain only letters, numbers, hyphens, spaces, full stops, slashes, apostrophes and ampersands.\",\n pattern: /^([a-zA-Z0-9&\\-\\/\\.'' ]|')*$/i,\n};\n\nexport const regexAlphaPlus: RegExpObject = {\n message: \"may contain only letters, hyphens, spaces, full stops and slashes\",\n pattern: /^[a-zA-Z\\-\\/.' ]+$/i,\n};\n\nexport const regexUkPostcode: RegExpObject = {\n message: \"Please enter a valid UK postcode.\",\n pattern:\n /^ *(([gG][iI][rR] {0,}0[aA]{2})|((([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y]?[0-9][0-9]?)|(([a-pr-uwyzA-PR-UWYZ][0-9][a-hjkstuwA-HJKSTUW])|([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y][0-9][abehmnprv-yABEHMNPRV-Y]))) {0,}[0-9][abd-hjlnp-uw-zABD-HJLNP-UW-Z]{2})) *$/i,\n};\n\nexport const regexInternationalPostcode: RegExpObject = {\n message: \"may contain only letters, numbers, hyphens and spaces.\",\n pattern: /^[a-zA-Z0-9 \\-]+$/,\n};\n\nexport const regexNameWithAnd: RegExpObject = {\n message: \"should only contain letters, hyphens, spaces and apostrophes.\",\n pattern:\n /^[a-zA-Z. '\\-ƼƽÁáÀàȦȧÂâÄäǍǎĂăĀāÃãÅåĄąȺǠǡǺǻǞǟȀȁȂȃɐɑɒÆæǼǽǢǣƀɃƁɓƂƃƄƅĆćĊċĈĉČčÇçȻȼƇƈƆɔɕĎďĐđƋƌƊɗÐðƍȸDZDzdzDŽDždžƉɖȡÉéÈèĖėÊêËëĚěĔĕĒēĘęȨȩɆɇȄȅȆȇƐɛƎǝƏəɚɘɜɝɞȜȝƑƒǴǵĠġĜĝǦǧĞğĢģǤǥƓƔĤĥȞȟĦħƕǶıÍíÌìİÎîÏïǏǐĬĭĪīĨĩĮįƗȈȉȊȋƖIJijȷĴĵǰɈɉɟĸǨǩĶķƘƙĹĺĿŀĽľĻļƚȽŁłƛLJLjljȴƜŃńǸǹŇňÑñŅņƝʼnƞȠNJNjnjȵŊŋÓóÒòȮȯÔôÖöǑǒŎŏŌōÕõǪǫŐőƟØøȰȱȪȫǾǿȬȭǬǭȌȍȎȏƠơƢƣŒœȢȣƤƥɊɋȹƦŔŕŘřŖŗɌɍȐȑȒȓŚśŜŝŠšŞşȘșȿƩƧƨƪßſŤťŢţƬƭƫƮȚțȾȶÞþŦŧÚúÙùÛûÜüǓǔŬŭŪūŨũŮůŲųŰűɄǗǘǛǜǙǚǕǖȔȕȖȗƯưƱƲɅŴŵƿǷÝýŶŷÿŸȲȳɎɏƳƴŹźŻżŽžƵƶȤȥɀƷǮǯƸƹƺƾɁɂ]+$/im,\n};\n\nexport const RegexMoney: RegExpObject = {\n message:\n \"Please enter a valid amount using numbers and a decimal point only. For example 100.00 or 2500.\",\n pattern: /^[0-9]*(\\.[0-9][0-9]?)*$/,\n};\n\nexport const RegexYouTubeUrl: RegExpObject = {\n message: \"Please enter a valid YouTube link.\",\n pattern: /^(https?:\\/\\/)?(www\\.)?(youtube\\.com|youtu\\.be)\\/.+/i,\n};\n\nexport const RegexNoOnlyEmoji: RegExpObject = {\n message: \"Name should not only contain emojis.\",\n pattern: /^(?!(?:\\p{Extended_Pictographic}|\\p{Emoji_Component}|\\s)+$).+/u,\n};\n\n/* eslint-enable no-useless-escape */\n"],"names":["addressValidation","z","line1","required_error","trim","min","max","regex","regexAlphaNumericPlus","pattern","message","refine","value","regexUkPostcode","test","line2","optional","line3","city","regexAlphaPlus","country","postalCode","validated","data","length","path","includes","regexInternationalPostcode","ukCountries","isUk","countryCode","AddressFields","register","setValue","formState","trigger","watch","props","assertProps","useRef","topAddressRef","watchCountry","FieldWrapper","$inputWidth","Select","onChange","e","catch","label","name","required","errorMessage","errors","address","countries","map","code","option","$marginBottom","Row","div","style","width","AddressLookup","ref","searchRef","apiKey","process","POSTCODE_ANYWHERE_API_KEY","onAddressSelected","handleAddressSelected","CountryIso3","Line1","Line2","Line3","City","PostalCode","current","scrollIntoView","behavior","block","handleAddressLookupChange","ColumnReverse","Box","as","padding","IconFa","faIcon","faMagnifyingGlassLocation","size","color","marginTop","marginBottom","Collapse","headerTitleText","id","Text","TextField","autoComplete","SuppressionsFieldset","styled","fieldset","theme","spacing","s","suppressions","child","Heading","h2","h4","RadioConsent","legend","target","attributes","selectedValue","email","data-cta-type","text","post","phone","h3","Link","href","rel","br","suppresionValidation","isTabVisible","setIsTabVisible","useState","handleVisibilityChange","useCallback","useIsTabActive","document","visibilityState","useEffect","isBrowser","addEventListener","removeEventListener","removeEmptyStringAttributes","obj","Object","entries","filter","v","reduce","acc","k","validation","setValidationMessage","type","Number","isNaN","RegexMoney","minValue","toString","maxValue","minLength","maxLength","regexObject","match","replace","titleCaseWord","word","toUpperCase","substr","toLowerCase","matchMcOrMac","exec","slice","noSpaceString","postCode","toLocaleUpperCase","substring","sanitiseUkPostCode","calcLength","val","endsWith","regexEmail"],"sourceRoot":"","ignoreList":[]}