{"version":3,"sources":["hooks/useGetQuery.ts","utils/fieldUtils.ts","components/SubmitButton.tsx","constants/fields.ts","components/StepButtonsWrapper.tsx","utils/journeyHelper.ts","utils/api/client.ts","../../schema/index.ts","constants/getQueryTypes.ts","constants/journeys/journeyNames.ts","constants/productTypes.ts","constants/journeys/formJourney.ts","contexts/ActivityContext.tsx","utils/logError.tsx","components/ActivityRoutes.tsx","contexts/OptimizelyContext.tsx","hooks/useLocalStorage.tsx","components/OptimizelyLoader.tsx","components/StepTracker.tsx","hooks/useDataLayer.tsx","utils/dataDog.ts","containers/ActivityContainer.tsx","contexts/RegistrationContext.tsx","utils/isUkCountry.tsx","utils/transform.tsx","containers/RegistrationContainer.tsx","Form/validation/validationSchema.ts","utils/renderCustomText.tsx","components/FormCollapseLabelWhyDoWeNeedThis.tsx","components/FormPageBannerText.tsx","components/FormSubmitNextAndBackButton.tsx","components/ScrollToError.tsx","containers/FormPageWrapper.tsx","containers/FormWrapper.tsx","hooks/useNavigateToPage.tsx","utils/getCookieValue.ts","utils/cookieBannerInput.ts","utils/amws.ts","utils/conversionInput.ts","utils/dateOptions.tsx","utils/filteredHandleChange.tsx","utils/optimizely/optimizelyFeatureFlags.ts","components/DateField.tsx","Form/fields/ActivityDate.tsx","Form/fields/ActivityMonth.tsx","Form/fields/ActivityType.tsx","containers/AddressLookupContainer.tsx","Form/fields/Address.tsx","Form/fields/CallToAction.tsx","Form/fields/ContactCentreSportsProductsLookup.tsx","Form/fields/DateOfBirth.tsx","Form/fields/DeliveryMethod.tsx","Form/fields/DeliveryMethod2.tsx","Form/fields/DynamicEventName.tsx","Form/fields/EmailAddress.tsx","components/EventLookupWrapper.tsx","components/GenericEventCancelIconWrapper.tsx","components/GenericEventSuccessIconWrapper.tsx","components/IconBoxWrapper.tsx","components/List.tsx","components/ListItem.tsx","components/ListWrapper.tsx","components/SpecificSearchCancelIconWrapper.tsx","components/SpecificSearchSuccessIconWrapper.tsx","Form/fields/EventLookup.tsx","Form/fields/FacebookFundraiserCTA.tsx","Form/fields/FirstName.tsx","Form/fields/FundraisingTarget.tsx","components/ImageBox.tsx","assets/gifts-in-wills-guide-form-image.jpg","Form/fields/GiftsInWillsGuideImage.tsx","Form/fields/HasOnlineFundraisingPage.tsx","Form/fields/HaveEnteredEvent.tsx","Form/fields/IronOnText.tsx","Form/fields/LastName.tsx","Form/fields/LegaciesDigitalGuideCTA.tsx","Form/fields/MaleFemaleStyles.tsx","Form/fields/MerchandiseType.tsx","components/StyledTextAreaField.tsx","Form/fields/MoreInfo.tsx","components/DividerLine.tsx","Form/fields/OptIn.tsx","Form/fields/OrganisationName.tsx","Form/fields/PhoneNumber.tsx","Form/fields/ProductQuantity.tsx","constants/sizeGuideValues.ts","components/SizeGuide.tsx","Form/fields/RadioSelectTShirtVestSize.tsx","assets/GIGW-Thank-You-Page-Image.jpg","Form/fields/RenderGIGWThankYouImage.tsx","assets/fundraisingPackImage.jpg","Form/fields/RenderImage.tsx","Form/fields/Restriction.tsx","Form/fields/Run60CTA.tsx","Form/fields/SecondCallToAction.tsx","assets/sports-forms-images/default_miguel-a-amutio-Y0woUmyxGrw-unsplash.jpg","Form/fields/SportsFormsCTA.tsx","Form/fields/SU2C60CTA.tsx","components/StyledInfoSupportBox.tsx","Form/fields/SupportCallBox.tsx","Form/fields/SupporterNeedPack.tsx","assets/sports-forms-images/tshirt.png","assets/sports-forms-images/vest.jpg","Form/fields/TShirtOrVest.tsx","Form/fields/TShirtSize.tsx","assets/DIY-5k-jogger.png","assets/DIY-park-runner.png","hooks/useOptimizelyDecision.tsx","Form/fields/InformationLookingFor.tsx","Form/pages/FormPage.tsx","assets/rfl_standard_life_logo_placeholder.png","provider/ThemeProvider.tsx","App.tsx","index.tsx","../../../schema/utils/index.ts","components/SpaceAroundRows.tsx","constants/journeys/index.ts"],"names":["useGetQuery","type","id","enabled","useQuery","queryKey","queryFn","async","GET_ACTIVITIES","getActivities","GET_ACTIVITY_BY_ID","getActivityById","GET_PRODUCTS","getProducts","GET_PRODUCT_BY_ID","getProductById","GET_ACTIVITY_TYPES","getActivityTypes","GET_PRODUCT_CODES","getProductCodes","GET_EVENT","getEvent","GET_EVENTS","getEvents","error","fetchData","staleTime","FieldUtils","constructor","fields","fieldMap","this","reduce","map","entry","Object","assign","field","get","fieldName","undefined","set","input","edit","_objectSpread","delete","toArray","values","StyledButton","styled","Button","withConfig","displayName","componentId","_ref","theme","breakpoint","mobile","SubmitButton","props","_jsx","size","FIRST_NAME","LAST_NAME","DATE_OF_BIRTH","TARGET","ACTIVITY_MONTH","ACTIVITY_DATE","ACTIVITY_TYPE","MORE_INFO","ORGANISATION","PARTICIPANTS","TERMS_AND_CONDITIONS","CALL_TO_ACTION","SECOND_CALL_TO_ACTION","T_SHIRT","OTHER_MERCHANDISE","FUNDRAISING_PAGE","MERCHANDISE_TYPE","MALE","Div","div","spacing","s","_ref2","desktop","_ref3","tablet","_ref4","_ref5","xs","_ref6","StepsButtonWrapper","_ref7","children","JourneyHelper","isSportsFormJourney","journey","isSportsFormContactCentreJourney","isSportsFormExternalJourney","isSportsFormPromoterJourney","isInternationalAddressReminder","isSocialFundraisingJourney","isSportsFormWithEventCodeJourney","isDIYJourney","DIY_COUCH_TO_5K_JOGGER","DIY_PARK_RUNNER","isGiftsInWillsJourney","query","operation","requiresAuth","variables","response","API","graphql","authMode","errors","Error","concat","e","name","message","join","data","ActivityTypesDocument","activityTypes","__typename","types","filter","at","ProductCodesDocument","productCodes","codes","code","ProductsDocument","products","mutateProduct","MutateProductDocument","product","convertProductResponseToProduct","ProductDocument","getSupporterMaterials","SupporterMaterialsDocument","supporterMaterials","materials","mutateActivity","MutateActivityDocument","activity","convertActivityResponseToActivity","ActivityDocument","getActivityByUrl","url","searchString","EventsDocument","searchInput","events","convertEventsResponseToEvents","EventDocument","event","convertEventResponseToEvent","submitRegistration","SubmitActivityRegistrationDocument","submitActivityRegistration","_success$fundraisingP","success","fundraisingPageRedirectUrl","nextToken","activities","page","getActivitiesPage","push","_response$activities$","ActivitiesDocument","a","__exportStar","require","exports","Status","Theme","SF_CHALLENGES","DRYATHLON","GIFTS_IN_WILLS_GUIDE","PACK","VEST","getFormJourney","formJourneyConfig","getFormJourneyConfig","keys","pages","forEach","key","formPage","heading","mustache","render","introText","collapseLabel","collapseContent","submitButtonLabel","backLinkLabel","activityDateTimeLabel","emailAddressLabel","emailAddressHintText","phoneNumberLabel","addressHeading","fillPage","emptyActivity","activityMonthDateHeader","activityDateHeader","activityDateHelpText","activityName","activityType","activitySuccessHeader","activitySuccessMessage","callToActionLabel","callToActionLink","secondCallToActionLabel","secondCallToActionLink","confirmationPageCTALabel","secondConfirmationPageCTALabel","dobHelpText","fundraisingPageHeading","fundraisingTargetLabel","firstNameLabel","fundraisingTargetHelpTextHtml","header","bannerText","introTextHtml","loaded","lastNameLabel","moreInfoHeader","moreInfoHelpText","merchandiseTemplateType","merchandiseLabelHeader","ageRestriction","selectedAgeRestriction","organisationName","productCode","productQuantityHeader","productQuantityHelpText","productQuantityMax","productQuantityMin","productQuantityMaxError","productQuantityMinError","sourceCode","tShirtHeader","typeConfig","termsAndConditionsHeader","termsAndConditionsTextHtml","urlName","activityStatus","ActivityContext","createContext","E0001","help","E0002","E0003","logError","errorCode","console","group","groupEnd","ActivityRoutes","useContext","formJourney","totalSteps","entries","length","Routes","index","pageConfig","routeChildren","currentStep","Route","path","element","defaultState","optimizelyClient","optimizelyUserContext","isServerSide","timeout","loadingState","OptimizelyContext","useOptimizelyContext","optimizelyContext","setOptimizelyContext","setOptimizelyUserAttributes","UserAttributesObject","setAttribute","trackEvent","trackEventProps","currentUser","overrideUserId","createUserContext","overrideAttributes","track","eventKey","getUserId","getAttributes","eventTags","OptimizelyContextProvider","state","setState","useState","value","useMemo","Provider","isBrowser","window","useLocalStorage","defaultValue","setValue","getStorageValue","saved","localStorage","getItem","JSON","parse","useEffect","setItem","stringify","OptimizelyLoader","sdkKey","onError","optimizelyId","setOptimizelyId","optimizely","setLogger","client","createInstance","datafileOptions","autoUpdate","updateInterval","eventBatchSize","eventFlushInterval","onReady","then","catch","err","randomId","uuidv4","userContext","user_id","StepTrackerWrapper","StyledText","Text","colors","progressBar","fontSizes","l","StepTrackerSvg","svg","tokenColors","grey_200","circularProgress","StepTracker","_ref8","_objectWithoutProperties","_excluded","r","_jsxs","forwardedAs","textSize","textWeight","role","width","height","viewBox","className","cx","cy","strokeWidth","strokeDasharray","Math","PI","strokeDashoffset","journeyHelper","dataLayer","useDataLayer","dataLayerLoadedPushed","setDataLayerLoadedPushed","pushDataLayerLoaded","eventCode","arguments","brand","pagePath","location","pathname","pageTitle","pushInteraction","interactionName","interactionAction","pushPageView","title","pushPageViewConfirmation","registrationId","ENV_NAME","_process$env$REACT_AP","process","toLowerCase","trackDataDogError","errorMessage","extraInfo","datadogRum","addError","ActivityContainer","isErrorPage","navigate","useNavigate","setActivity","useParams","search","params","URLSearchParams","sanitize","_fieldUtils$get$heade","_fieldUtils$get","_response$successHead","_response$successMess","_fieldUtils$get$heade2","_fieldUtils$get2","_fieldUtils$get$helpT","_fieldUtils$get3","_fieldUtils$get$heade3","_fieldUtils$get4","_fieldUtils$get$text","_fieldUtils$get5","_fieldUtils$get$heade4","_fieldUtils$get6","_fieldUtils$get$text2","_fieldUtils$get7","_fieldUtils$get$helpT2","_fieldUtils$get8","_fieldUtils$get$heade5","_fieldUtils$get9","_fieldUtils$get10","_fieldUtils$get$heade6","_fieldUtils$get11","_fieldUtils$get$helpT3","_fieldUtils$get12","_response$journeyConf","_response$journeyConf2","_response$journeyConf3","_fieldUtils$get$heade7","_fieldUtils$get13","_fieldUtils$get$heade8","_fieldUtils$get14","_fieldUtils$get$helpT4","_fieldUtils$get15","_response$merchandise","_response$ageRestrict","_response$selectedAge","_fieldUtils$get$heade9","_fieldUtils$get16","_fieldUtils$get$heade10","_fieldUtils$get17","_fieldUtils$get$heade11","_fieldUtils$get18","_fieldUtils$get$helpT5","_fieldUtils$get19","_fieldUtils$get$valid","_fieldUtils$get20","_fieldUtils$get20$val","_fieldUtils$get20$val2","_fieldUtils$get$valid2","_fieldUtils$get21","_fieldUtils$get21$val","_fieldUtils$get21$val2","_fieldUtils$get$valid3","_fieldUtils$get22","_fieldUtils$get22$val","_fieldUtils$get$valid4","_fieldUtils$get23","_fieldUtils$get23$val","_response$journeyConf4","_fieldUtils$get$heade12","_fieldUtils$get24","_fieldUtils$get$heade13","_fieldUtils$get25","_fieldUtils$get$text3","_fieldUtils$get26","_response$metaTitle","_response$metaDescrip","fieldUtils","journeyConfig","status","Open","successHeader","successMessage","helpText","text","validation","maxValue","toString","minValue","maxValueErrorMessage","minValueErrorMessage","reference","precedence","metaData","metadata","validActivityTypes","o","metaTitle","metaDescription","fetchActivityEffect","hasFormJourneyConfig","initialValue","registration","dateOfBirthDay","dateOfBirthMonth","dateOfBirthYear","firstName","lastName","emailAddress","phoneNumber","country","fundraisingTarget","addressLine1","addressLine2","addressLine3","city","postcode","validated","optInEmail","optInText","optInPost","optInPhone","optInMerchandise","deliveryMethod","activityDateTime","moreInfo","restriction","restrictionCode","tShirtSize","tshirtVestSize","maleFemaleStyles","contactCentreSportsProductLookUp","celebrationDateDay","celebrationDateMonth","celebrationDateYear","productQuantity","ironOnText","haveEnteredEvent","tshirtOrVest","eventName","eventTypes","eventStart","isGenericEvent","hasOnlineFundraisingPage","supporterNeedPack","addressActiveOption","addressSearchStatus","setRegistration","RegistrationContext","isUkCountry","includes","transformName","trim","replace","_","c","toUpperCase","transformEmailAddress","transformAddressLine","addressLine","transformCity","transformPostcodeIntl","transformPostcodeUk","pc","substr","transformCelebrationDate","celebrationDate","Date","UTC","parseInt","toISOString","split","RegistrationContainer","informationLookingFor","informationLookingForFreeText","Cypress","nameRegExp","excludedEmailDomains","numberRegExp","andRegExp","postcodeUkRegExp","nameExcludedValues","isDateValid","day","month","year","min","max","d","m","y","date","getUTCFullYear","getUTCMonth","getUTCDate","Yup","test","doBDD","parent","required","doBMM","doBYYYY","dateOfBirthYearForSFChallenge","cutoff","setFullYear","getFullYear","Number","isSuporterAdult","celebrationDD","celebrationDDMM","celebrationDDYYYY","lowercase","first_Name","match","notOneOf","matches","last_Name","email","Boolean","find","domain","toLocaleLowerCase","endsWith","phoneNumberRequired","address","when","is","countryName","otherwise","exclusive","oneOf","makeValidationSchema","formConfig","optInOrOutMerchandise","enabledExperimentGIWGVariation","_formConfig$secondary","resultSchema","Field","EMAIL_ADDRESS","PHONE_NUMBER","ADDRESS","secondaryFields","FUNDRAISING_TARGET","T_SHIRT_SIZE","optInTSshirt","RADIO_SELECT_T_SHIRT_VEST_SIZE","MALE_FEMALE_STYLES","ORGANISATION_NAME","PRODUCT_QUANTITY","IRON_ON_TEXT","HAVE_ENTERED_EVENT","T_SHIRT_OR_VEST","EVENT_LOOKUP","HAS_ONLINE_FUNDRAISING_PAGE","SUPPORTER_NEED_PACK","INFORMATION_LOOKING_FOR","shape","renderCustomText","ReactMarkdown","allowedElements","components","node","Link","target","rel","p","_excluded2","FormCollapseLabelWhyDoWeNeedThis","formJourneyPage","secondaryHeading","Box","marginBottom","Collapse","headerTitleText","FormPageBannerText","backgroundColor","paddingVertical","Heading","h3","textColor","textAlign","FormSubmitNextAndBackButton","isSubmitting","submitted","previousPage","backLinkAction","BackAction","BACK","marginLeft","disabled","appearance","onClick","handleBack","notEmpty","comparator","b","position","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","ScrollToError","useFormikContext","elements","errorKey","document","querySelector","first","sort","HTMLElement","focus","Main","main","xxs","utilities","contentMaxWidth","backgroundLight","headerBorder","borderRadius","FormPageWrapper","FormWrapper","useNavigateToPage","currentPage","useLocation","navigateToPage","indexFunction","nextPageIndex","indexOf","formConfigEntry","nextPath","href","origin","legacyPageTitleTransform","nextPage","i","getCookieValue","_document$cookie","_document$cookie$matc","cookie","pop","cookieBannerInput","_cookieDataKeyValues$","cookieData","fun","per","snc","tar","cookieInputString","string","startsWith","cookieInput","fromEntries","decodeURIComponent","keyValue","pair","createProcessJob","transformedRegistration","newRegistration","transform","activityTypeSection","createActivityTypeSection","optInSocialFundrasingMerchandise","telephoneNumberSection","telephoneNumberMobile","telephoneNumberLandline","createTelephoneNumberSection","quantity","generateAttributes","letters","String","getMonth","padStart","getDate","createFulfilmentSection","_transformedRegistrat","orderLines","lineNumber","attributes","deliveryNote","fulfilment","orderLine","flatMap","attribute","eventDate","shouldSkipFulfilmentData","restrictionSection","activityResCode","suppressionCodes","yes","no","unknown","post","phone","suppressionsSection","suppressions","registrationData","activityId","activityRestrictionCode","activityFundraiserData","dateOfBirth","forename","surname","line1","line2","line3","landlineNumber","mobileNumber","conversionData","_window$dataLayer","_window$dataLayer$fin","eventId","clientUserAgent","navigator","userAgent","eventTime","moment","utc","unix","eventSourceUrl","formId","activityUrl","fbc","fbp","conversionInput","fundraiser","conversion","cookieBanner","dateOptions","Array","from","now","label","toLocaleString","allowDigits","allowDigitsAndPlus","filteredHandleChange","handleChange","setValues","currentTarget","FeatureFlags","FeatureFlagVariation","Events","Fieldset","fieldset","HintTextWrapper","DateTextFieldWrapper","typography","fontWeightMedium","LargeDateTextFieldWrapper","ErrorTextWrapper","DateField","hintText","dayName","monthName","yearName","dayHasError","monthHasError","yearHasError","onChange","handleBlur","as","TextField","maxLength","autoComplete","pattern","inputMode","onBlur","hasError","ErrorText","ActivityDate","touched","filterHandleChange","touchedAll","_Fragment","ActivityMonth","Select","ActivityType","getFieldProps","isRequired","list","AddressLookupContainer","setFieldValue","submitCount","apiKey","addressOptions","setAddressOptions","setAddressActiveOption","setAddressSearchStatus","addressFieldsVisible","setAddressFieldsVisible","manualFieldsVisible","setManualFieldsVisible","buttonRef","useRef","inputs","countriesList","fieldSet","clearOptions","findAddress","countryCode","fetch","res","ok","json","Items","Type","Id","addressesArray","keyValueObject","itemText","itemDesc","Description","field3","Line3","Line4","Line5","Company","Line1","Line2","City","PostalCode","foundCountry","countries","CountryName","onKeyDown","_buttonRef$current","preventDefault","current","click","ref","marginTop","selectedIndex","margin","fieldTouched","fieldError","InfoBox","titleText","descriptionText","icon","IconFa","faIcon","faExclamationCircle","color","style","textDecoration","Address","h2","CallToAction","getClickableLink","ContactCentreSportsProductsLookup","setSupporterMaterials","packCodesResult","getSupporterMaterialsForPackCodes","LegendWrapper","legendText","packCode","Checkbox","checked","_values$contactCentre","findIndex","codeForBackend","splice","DateOfBirth","DeliveryMethod","Radio","DeliveryMethod2","DynamicEventName","eventRegistered","EmailAddress","EventLookupWrapper","GenericEventCancelIconWrapper","xl","GenericEventSuccessIconWrapper","xxl","IconBoxWrapper","List","ListItem","li","ListWrapper","SpecificSearchCancelIconWrapper","SpecificSearchSuccessIconWrapper","EventLookup","setEventRegistered","setEvents","setEventsAPI","eventResult","placeholder","faCheckCircle","faClose","event_code","event_types","date_start","startOpen","onOpenChange","isOpen","eventFound","ev","FacebookFundraiserCTA","FirstName","FundraisingTarget","extraLeft","ImageBox","alt","src","GiftsInWillsGuideImage","SpaceAroundRows","giftsInWillsGuideImage","HasOnlineFundraisingPage","faCircleCheck","HaveEnteredEvent","IronOnText","getIronOnTextRemainingLength","replaceAll","LastName","LegaciesDigitalGuideCTA","MaleFemaleStyles","MerchandiseType","_infoBoxData","_infoBoxData2","setOptInMerchandise","infoBoxData","description","additionalDescription","link","defaultMerchandiseHeader","iconName","prefix","StyledTextAreaField","TextAreaField","MoreInfo","DividerLine","hr","grey_300","OptIn","privacyStatementLink","RadioConsent","option","legend","selectedValue","paddingTop","paddingBottom","OrganisationName","PhoneNumber","ProductQuantity","SizeGuideValues","isMale","isTeeShirt","themeSizes","cruk","crukTeeShirtSizes","su2c","su2CTeeShirtSizes","rfl","currentSize","sportsTopsSizes","sfChallengeTeeShirtSizes","dryathlonTeeShirtSizes","sfChallengeTechTopSizes","headers","abbr","detail","sizeLabel","cm","inches","XXS","XS","S","M","L","XL","XXL","StyledSizeGuide","table","buttonBorder","TableContainer","StyledSizeGuideWithMargin","SizeGuide","tableHeaders","React","Children","tableTitle","tableBody","sizeData","sizeItem","RadioSelectTShirtVestSize","_product$metaData$fin","md","_product$metaData$fin2","RenderGIGWThankYouImage","renderGIGWThankYouImage","RenderImage","renderImageSrc","renderFundraisingPackImage","Restriction","restrictionCodes","Run60CTA","SecondCallToAction","SportsFormsCTA","defaultSportsImage","display","marginRight","faEnvelope","faTruck","SU2C60CTA","StyledInfoBox","_templateObject","_taggedTemplateLiteral","_theme$breakpoint","SupportCallBox","h4","faSquarePhone","SupporterNeedPack","TShirtOrVest","_createElement","tShirtImage","vestImage","TShirtSize","createEmptyDecsion","flagKey","variationKey","ruleKey","reasons","useOptimizelyDecision","options","decision","decide","InformationLookingFor","giwgLookingForVariables","opt","FormPage","serverValidationError","setServerValidationError","setSubmitted","setGiwgLookingForVariables","setEnabledExperimentGIWGVariation","giwgExperimentInitialized","setGiwgExperimentInitialized","DEVELOPMENT_EXPERIMENT_FLAG","experimentEnabled","enabledExperimentHeaderControl","CONTROL","enabledExperimentHeadervariation","VARIATION","decisionResult","GIWG_ADDITIONAL_QUESTION","giwgExperimentEnabled","variationKeyGIWG","ON","eventQuery","eventsQuery","_eventQuery$data","isSuccess","_eventsQuery$data","submitButtonAction","validationSchema","scrollTo","handleError","errorType","activitySubmissionTask","GIWG_SIGNUP_EVENT","removeItem","activitySubmissionWithFundraisingPageTask","initialValues","_validationSchema$fie","_validationSchema$fie2","tests","some","OPTIONS","DELIVERY_METHOD","DELIVERY_METHOD_2","h1","Formik","onSubmit","formProps","SubmitAction","NEXT","updatedValues","resetForm","ACTIVITY_SUBMISSION_WITH_FUNDRAISING_PAGE","ACTIVITY_SUBMISSION","dropdown_value","handleSubmit","noValidate","GIFTS_IN_WILLS_GUIDE_IMAGE","RESTRICTION","RENDER_IMAGE","RENDER_GIGW_THANK_YOU_IMAGE","OPT_IN","LEGACIES_DIGITAL_GUIDE_CTA","FACEBOOK_FUNDRAISER_CTA","RUN_60_CTA","SU_2C_FB_CTA","DYNAMIC_EVENT_NAME","CONTACT_CENTRE_SPORTS_PRODUCTS_LOOKUP","SPORTS_FORMS_CTA","RENDER_IMAGE_DIY_5K_JOGGER","renderDIY5kJoggerImage","RENDER_IMAGE_PARK_RUNNER","renderDIYParkRunnerImage","isLoading","Loader","SUPPORT_CALL_BOX","crukTheme","deepmerge","originalCrukTheme","siteConfig","logoAlt","logoUrl","faviconUrl","magenta_500","darkBlue_500","buttonFontWeight","headingFontWeight","headingTextTransform","button","textTransform","arrayMerge","array","themes","logoSrc","standardLifeLogo","originalSU2CTheme","su2cOrange3","su2cBlack","textInputBorder","fontWeightHeavy","dry","ThemeProvider","themeKey","StyledThemeProvider","Helmet","Admin","lazy","ErrorPage","App","setIsLoading","isDynamicConfigError","setDynamicConfigError","baseUrl","setBaseUrl","config","Amplify","configure","aws_project_region","aws_cognito_region","aws_user_pools_id","userPoolId","aws_user_pools_web_client_id","userPoolClientId","oauth","userPoolDomain","redirectSignIn","redirectSignOut","responseType","federationTarget","aws_appsync_graphqlEndpoint","apiGraphQlEndpoint","aws_appsync_region","aws_appsync_authenticationType","aws_appsync_apiKey","publicApiKey","graphQLEndpoint","getUrlParts","subdomains","slice","protocol","tld","extractUrlParts","init","applicationId","clientToken","site","service","env","allowedTracingUrls","version","sessionSampleRate","sessionReplaySampleRate","trackUserInteractions","trackResources","trackLongTasks","defaultPrivacyLevel","startSessionReplayRecording","setUpDataDog","RenderPage","GlobalStyle","Header","Suspense","fallback","log","component","function","Navigate","to","Consumer","content","queryClient","QueryClient","container","getElementById","root","ReactDOM","createRoot","REACT_APP_DATA_DOG_ENV","_wrapRegExp","_match$groups","groups","QueryClientProvider","BrowserRouter","ReactQueryDevtools","initialIsOpen","clean_deep_1","__importDefault","uuid_1","convertActivityToInput","default","cleanKeys","emptyArrays","emptyObjects","emptyStrings","nullValues","undefinedValues","convertProductToInput","convertInputToActivity","_a","v4","updated","created","convertInputToProduct","StyledSpaceAroundRows","WHY_DO_WE_NEED_THIS_LABEL","GENERAL_REASON","PHONE_NUMBER_REASON","PHONE_NUMBER_REASON3","DOB_REASON","EMAIL_PACK_REASON","introPage","overrides","contactDetailsPage","addressPage","fundraisingTargetPage","moreAboutYourFundraisingPage","joinUsPage","thankYouPage","crukFormJourney","creatable","alwaysOn2FormJourney","generalFundraisingFormJourney","generalFundraisingPackOptionFormJourney","celebrationFormJourney","organisationFormJourney","physicalPackBaseJourney","tShirtVestBaseJourney","tShirtVestBaseContactCenterJourney","run56GivingPageFormJourney","run56FormJourney","run60FormJourney","su2cFbFormJourney","leadGeneration1FormJourney","giftsInWillsGuideFormJourney","banner","vfFormJourney","vfContactCentreFormJourney","vfFundregFormJourney","sportsFormExternalUserJourney","_tShirtVestBaseJourne","sportsFormContactCenterJourney","sportsFormPromoterJourney","_tShirtVestBaseContac","sfChallengesFormJourney","sportsFormWithoutGivingPage","_tShirtVestBaseJourne2","diyFormJourney","DIYParkRunner","DIYCouchTo5KJogger","formJourneys","celebration","organisation","dryathlon","vf"],"mappings":"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","file":"static/js/main.11caa6ef.chunk.js","sourcesContent":["import { useQuery } from \"react-query\";\nimport {\n GET_ACTIVITIES,\n GET_ACTIVITY_BY_ID,\n GET_PRODUCT_BY_ID,\n GET_PRODUCTS,\n GetQueryTypes,\n GET_ACTIVITY_TYPES,\n GET_PRODUCT_CODES,\n GET_EVENT,\n GET_EVENTS,\n} from \"../constants/getQueryTypes\";\nimport {\n getActivities,\n getActivityById,\n getActivityTypes,\n getEvent,\n getEvents,\n getProductById,\n getProductCodes,\n getProducts,\n} from \"../utils/api/client\";\nimport { ListActivity } from \"../Admin/types\";\nimport {\n Activity,\n EventListResultSuccess,\n EventResultSuccess,\n Product,\n} from \"@cruk/activity-management-schema\";\n\ntype UseGetQueryResult = {\n data: T | undefined;\n error: unknown;\n isError: boolean;\n isLoading: boolean;\n isSuccess: boolean;\n};\n\nconst fetchData = async <\n T extends\n | ListActivity[]\n | Activity\n | Product[]\n | Product\n | string[]\n | EventResultSuccess\n | EventListResultSuccess,\n>(\n type: GetQueryTypes,\n id?: string\n): Promise => {\n try {\n switch (type) {\n case GET_ACTIVITIES:\n return (await getActivities()) as T;\n case GET_ACTIVITY_BY_ID:\n return (await getActivityById(id!)) as T;\n case GET_PRODUCTS:\n return (await getProducts({})) as T;\n case GET_PRODUCT_BY_ID:\n if (!id) return undefined;\n return (await getProductById(id)) as T;\n case GET_ACTIVITY_TYPES:\n return (await getActivityTypes()) as T;\n case GET_PRODUCT_CODES:\n return (await getProductCodes()) as T;\n case GET_EVENT:\n if (!id) return undefined;\n return (await getEvent(id)) as T;\n case GET_EVENTS:\n if (!id) return [];\n return (await getEvents(id)) as T;\n default:\n return undefined;\n }\n } catch (error) {\n throw error;\n }\n};\n\nfunction useGetQuery(\n type: GetQueryTypes,\n id?: string,\n enabled?: boolean\n): UseGetQueryResult {\n return useQuery({\n queryKey: [type, id, enabled],\n queryFn: async () => fetchData(type, id),\n // only fetch data when enabled\n enabled: enabled ?? true,\n // When this time elapses, useQuery will refetch the cached result when a component mounts - default = 0ms\n staleTime: 10000,\n });\n}\n\nexport default useGetQuery;\n","import { FieldInput } from \"@cruk/activity-management-schema\";\n\n/**\n * Class to encapsulate the editing of FieldInput values.\n * This simplifies the mutations by using a map instead of an\n * array when editing.\n */\nexport class FieldUtils {\n private fieldMap: {\n [key: string]: FieldInput;\n };\n\n constructor(fields?: FieldInput[]) {\n this.fieldMap = (fields ?? []).reduce(\n (map, entry) => Object.assign(map, { [entry.field]: entry }),\n {} as { [key: string]: FieldInput }\n );\n }\n\n get(fieldName: string): FieldInput | undefined {\n return fieldName in this.fieldMap ? this.fieldMap[fieldName] : undefined;\n }\n\n set(input: FieldInput): void {\n this.fieldMap[input.field] = input;\n }\n\n // The same as set except it keeps existing fields if not overwritten.\n edit(field: string, input: Partial): void {\n this.set({ field, ...this.get(field), ...input });\n }\n\n delete(fieldName: string): void {\n if (fieldName in this.fieldMap) {\n delete this.fieldMap[fieldName];\n }\n }\n\n toArray(): FieldInput[] {\n return Object.values(this.fieldMap);\n }\n}\n\nexport default FieldUtils;\n","import { Button, ThemeType } from \"@cruk/cruk-react-components\";\nimport { ButtonHTMLAttributes, FC } from \"react\";\nimport styled from \"styled-components/macro\";\n\ntype SubmitButtonProps = ButtonHTMLAttributes & {\n theme?: ThemeType;\n appearance?: \"primary\" | \"secondary\" | \"tertiary\";\n};\n\nconst StyledButton = styled(Button)`\n @media (min-width: ${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.breakpoint.mobile\n }) {\n width: auto;\n }\n`;\n\nconst SubmitButton: FC = (props) => (\n \n);\n\nexport default SubmitButton;\n","// We define these constants such that these strings can be kept in sync across the codebase.\nexport const FIRST_NAME = \"first_name\";\nexport const LAST_NAME = \"last_name\";\nexport const DATE_OF_BIRTH = \"date_of_birth\";\nexport const TARGET = \"target\";\nexport const ACTIVITY_MONTH = \"activity_month\";\nexport const ACTIVITY_DATE = \"activity_date\";\nexport const ACTIVITY_TYPE = \"activity_type\";\nexport const MORE_INFO = \"more_info\";\nexport const ORGANISATION = \"organisation\";\nexport const PARTICIPANTS = \"participants\";\nexport const TERMS_AND_CONDITIONS = \"terms_and_conditions\";\nexport const CALL_TO_ACTION = \"call_to_action\";\nexport const SECOND_CALL_TO_ACTION = \"second_call_to_action\";\nexport const T_SHIRT = \"tshirt\";\nexport const OTHER_MERCHANDISE = \"other\";\nexport const FUNDRAISING_PAGE = \"fundraising_page\";\nexport const MERCHANDISE_TYPE = \"merchandise_type\";\nexport const AGE_RESTRICTION = \"age_restriction\";\nexport const MALE = \"male\";\nexport const FEMALE = \"female\";\n","// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { FC } from \"react\";\nimport styled from \"styled-components/macro\";\n\nconst Div = styled.div`\n margin-bottom: ${({ theme }) => theme.spacing.s};\n @media (min-width: ${({ theme }) => theme.breakpoint.desktop}) {\n display: flex !important;\n flex-direction: row-reverse;\n justify-content: flex-end;\n .backButton .nextButton {\n width: auto;\n }\n }\n @media (min-width: ${({ theme }) => theme.breakpoint.tablet}) {\n display: flex !important;\n flex-direction: row-reverse;\n justify-content: flex-end;\n .backButton .nextButton {\n width: auto;\n }\n }\n @media (max-width: ${({ theme }) => theme.breakpoint.mobile}) {\n display: block;\n .nextButton,\n .backButton {\n width: 100%;\n margin-top: 0px !important;\n }\n .nextBox {\n margin-left: 0px !important;\n margin-bottom: ${({ theme }) => theme.spacing.xs};\n }\n .backButton {\n width: 100%;\n margin-top: ${({ theme }) => theme.spacing.xs};\n }\n }\n`;\n\nconst StepsButtonWrapper: FC = ({ children }) =>
{children}
;\n\nexport default StepsButtonWrapper;\n","import {\n DIY_COUCH_TO_5K_JOGGER,\n DIY_PARK_RUNNER,\n} from \"../constants/journeys/journeyNames\";\n\nexport class JourneyHelper {\n isSportsFormJourney(journey: string): boolean {\n return (\n journey === \"sports-form\" ||\n journey === \"sports-forms-contact-centre\" ||\n journey === \"sports-form-promoter\" ||\n journey === \"sports-form-without-giving-page\"\n );\n }\n\n isSportsFormContactCentreJourney(journey: string): boolean {\n return journey === \"sports-forms-contact-centre\";\n }\n\n isSportsFormExternalJourney(journey: string): boolean {\n return (\n journey === \"sports-form\" ||\n journey === \"sports-form-promoter\" ||\n journey === \"sports-form-without-giving-page\"\n );\n }\n\n isSportsFormPromoterJourney(journey: string): boolean {\n return journey === \"sports-form-promoter\";\n }\n\n isInternationalAddressReminder(journey: string): boolean {\n return journey === \"gifts-in-wills-guide\";\n }\n\n isSocialFundraisingJourney(journey: string): boolean {\n return journey === \"sf-challenges\";\n }\n\n isSportsFormWithEventCodeJourney(journey: string): boolean {\n return (\n journey === \"sports-form\" || journey === \"sports-form-without-giving-page\"\n );\n }\n\n isDIYJourney(journey: string) {\n return journey === DIY_COUCH_TO_5K_JOGGER || journey === DIY_PARK_RUNNER;\n }\n\n isGiftsInWillsJourney(journey: string): boolean {\n return journey === \"gifts-in-wills-guide\";\n }\n}\nexport default JourneyHelper;\n","// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable no-underscore-dangle */\nimport { GraphQLResult, API } from \"@aws-amplify/api\";\nimport {\n ActivitiesDocument,\n ActivitiesQuery,\n Activity,\n ActivityDocument,\n ActivityInput,\n ActivityNotFoundError,\n ActivityQuery,\n ActivityRegistrationInput,\n ActivityRegistrationSuccess,\n ActivityTypesDocument,\n ActivityTypesQuery,\n EventDocument,\n EventListResultSuccess,\n EventQuery,\n EventResultSuccess,\n EventsDocument,\n EventsInput,\n EventsQuery,\n Exact,\n GetActivitiesInput,\n GetActivityInput,\n GetProductInput,\n GetProductsInput,\n Material,\n MutateActivityDocument,\n MutateActivityMutation,\n MutateProductDocument,\n MutateProductMutation,\n Product,\n ProductCodesDocument,\n ProductCodesQuery,\n ProductDocument,\n ProductInput,\n ProductNotFoundError,\n ProductQuery,\n ProductsDocument,\n ProductsQuery,\n ServerError,\n SubmitActivityRegistrationDocument,\n SubmitActivityRegistrationMutation,\n SupporterMaterialsDocument,\n SupporterMaterialsQuery,\n ValidationError,\n} from \"@cruk/activity-management-schema\";\nimport {\n convertActivityResponseToActivity,\n convertEventResponseToEvent,\n convertEventsResponseToEvents,\n convertProductResponseToProduct,\n} from \"@cruk/activity-management-schema/dist/utils\";\nimport { TypedDocumentNode } from \"@graphql-typed-document-node/core\";\nimport { ListActivity } from \"../../Admin/types\";\n\nasync function query<\n TData,\n TVariables extends Record = Record,\n>(\n operation: TypedDocumentNode<\n TData,\n Exact<{\n [key: string]: never;\n }> & { input: TVariables }\n >,\n requiresAuth: boolean,\n variables?: TVariables\n): Promise {\n const response = (await API.graphql({\n //@ts-ignore\n query: operation,\n variables: variables ? { input: variables } : undefined,\n authMode:\n process.env.REACT_APP_DISABLE_AUTH === \"true\" || !requiresAuth\n ? \"API_KEY\"\n : \"AMAZON_COGNITO_USER_POOLS\",\n })) as GraphQLResult;\n\n if (response.errors) {\n throw new Error(\n `Error occurred when calling GraphQL API ${response.errors\n .map((e) => `${e.name}:${e.message}`)\n .join(\",\")}`\n );\n }\n\n if (!response.data) {\n throw new Error(\"No data returned when calling GraphQL API\");\n }\n\n return response.data;\n}\n\nexport async function getActivityTypes(): Promise {\n const response = await query(ActivityTypesDocument, true);\n if (!response.activityTypes) {\n throw new Error(\"No response found\");\n }\n switch (response.activityTypes.__typename) {\n case \"ActivityTypes\":\n return response.activityTypes.types.filter((at) => at);\n case \"ServerError\":\n throw new Error(`Server error: ${response.activityTypes.message}`);\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function getProductCodes(): Promise {\n const response = await query(ProductCodesDocument, true);\n if (!response.productCodes) {\n throw new Error(\"Product Codes: No response found\");\n }\n switch (response.productCodes.__typename) {\n case \"ProductCodes\":\n return response.productCodes.codes.filter((code) => code);\n case \"ServerError\":\n throw new Error(`Server error: ${response.productCodes.message}`);\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function getProducts({\n enabled,\n}: {\n enabled?: boolean;\n}): Promise {\n const response = await query(\n ProductsDocument,\n true,\n { enabled }\n );\n if (!response.products) {\n throw new Error(\"No response found\");\n }\n switch (response.products.__typename) {\n case \"Products\":\n return response.products.products;\n case \"ServerError\":\n throw new Error(`Server error: ${response.products.message}`);\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function mutateProduct(\n input: ProductInput\n): Promise {\n const response = await query(\n MutateProductDocument,\n true,\n input\n );\n if (!response.product) {\n throw new Error(\"No response found\");\n }\n switch (response.product.__typename) {\n case \"Product\": {\n return convertProductResponseToProduct(response);\n }\n case \"ProductNotFoundError\":\n throw new Error(`Server error: ${response.product.message}`);\n case \"ValidationError\":\n throw new Error(`Server error: ${response.product.message}`);\n case \"ServerError\":\n throw new Error(`Server error: ${response.product.message}`);\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function getProductById(\n id: string\n): Promise {\n const response = await query(\n ProductDocument,\n false,\n { id }\n );\n if (!response.product) {\n throw new Error(\"No response found\");\n }\n switch (response.product.__typename) {\n case \"Product\": {\n return convertProductResponseToProduct(response);\n }\n case \"ProductNotFoundError\":\n throw new Error(`Server error: ${response.product.message}`);\n case \"ValidationError\":\n throw new Error(`Server error: ${response.product.message}`);\n case \"ServerError\":\n return response.product;\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function getSupporterMaterials(): Promise {\n const response = await query(\n SupporterMaterialsDocument,\n false,\n {}\n );\n if (!response.supporterMaterials) {\n throw new Error(\"No response found\");\n }\n switch (response.supporterMaterials.__typename) {\n case \"SupporterMaterials\":\n return response.supporterMaterials.materials as Material[];\n case \"ServerError\":\n throw new Error(`Server error: ${response.supporterMaterials.message}`);\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function mutateActivity(\n input: ActivityInput\n): Promise {\n const response = await query(\n MutateActivityDocument,\n true,\n input\n );\n if (!response.activity) {\n throw new Error(\"No response found\");\n }\n switch (response.activity.__typename) {\n case \"Activity\":\n return convertActivityResponseToActivity(response);\n case \"ActivityNotFoundError\":\n case \"ValidationError\":\n case \"ServerError\":\n return response.activity;\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function getActivityById(\n id: string\n): Promise {\n const response = await query(\n ActivityDocument,\n false,\n { id }\n );\n if (!response.activity) {\n throw new Error(\"No response found\");\n }\n switch (response.activity.__typename) {\n case \"Activity\": {\n return convertActivityResponseToActivity(response);\n }\n case \"ActivityNotFoundError\":\n case \"ValidationError\":\n case \"ServerError\":\n return response.activity;\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function getActivityByUrl(\n url: string\n): Promise {\n const response = await query(\n ActivityDocument,\n false,\n { url }\n );\n if (!response.activity) {\n throw new Error(\"No response found\");\n }\n switch (response.activity.__typename) {\n case \"Activity\": {\n return convertActivityResponseToActivity(response);\n }\n case \"ActivityNotFoundError\":\n case \"ValidationError\":\n case \"ServerError\":\n return response.activity;\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function getEvents(\n searchString: string\n): Promise {\n const response = await query(\n EventsDocument,\n false,\n { searchInput: searchString }\n );\n\n if (!response.events) {\n throw new Error(\"No response found\");\n }\n switch (response.events.__typename) {\n case \"EventListResultSuccess\": {\n return convertEventsResponseToEvents(response);\n }\n case \"ServerError\":\n throw response.events.message;\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function getEvent(\n searchString: string\n): Promise {\n const response = await query(EventDocument, false, {\n searchInput: searchString,\n });\n\n if (!response.event) {\n throw new Error(\"No response found\");\n }\n switch (response.event.__typename) {\n case \"EventResultSuccess\": {\n return convertEventResponseToEvent(response);\n }\n case \"ServerError\":\n throw response.event.message;\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function submitRegistration(\n input: ActivityRegistrationInput\n): Promise {\n const response = await query<\n SubmitActivityRegistrationMutation,\n ActivityRegistrationInput\n >(SubmitActivityRegistrationDocument, false, input);\n if (!response.submitActivityRegistration) {\n throw new Error(\"No response found\");\n }\n switch (response.submitActivityRegistration.__typename) {\n case \"ActivityRegistrationSuccess\": {\n const success = response.submitActivityRegistration;\n return {\n __typename: \"ActivityRegistrationSuccess\",\n id: success.id,\n fundraisingPageRedirectUrl:\n success.fundraisingPageRedirectUrl ?? undefined,\n };\n }\n case \"ServerError\":\n throw new Error(\n `Server error: ${response.submitActivityRegistration.message}`\n );\n case \"ValidationError\":\n throw new Error(\n `Validation error: ${response.submitActivityRegistration.message}`\n );\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n\nexport async function getActivities(): Promise {\n let nextToken;\n const activities = [];\n do {\n // eslint-disable-next-line no-await-in-loop\n const page: ActivitiesPage = await getActivitiesPage(nextToken);\n nextToken = page.nextToken;\n activities.push(...page.activities);\n } while (nextToken);\n return activities;\n}\n\ntype ActivitiesPage = { activities: ListActivity[]; nextToken?: string };\n\nasync function getActivitiesPage(nextToken?: string): Promise {\n const response = await query(\n ActivitiesDocument,\n true,\n {\n nextToken,\n }\n );\n if (!response.activities) {\n throw new Error(\"No response found\");\n }\n switch (response.activities.__typename) {\n case \"Activities\":\n return {\n activities: response.activities.activities.filter(\n (a) => a\n ) as ListActivity[],\n nextToken: response.activities.nextToken ?? undefined,\n };\n case \"ServerError\":\n throw new Error(`Server error: ${response.activities.message}`);\n case \"ValidationError\":\n throw new Error(`Server error: ${response.activities.message}`);\n default:\n throw new Error(\"Unable to determine type\");\n }\n}\n","import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\nexport * from \"./database/types\";\nexport type Maybe = T;\nexport type InputMaybe = T;\nexport type Exact = { [K in keyof T]: T[K] };\nexport type MakeOptional = Omit & { [SubKey in K]?: Maybe };\nexport type MakeMaybe = Omit & { [SubKey in K]: Maybe };\nexport type MakeEmpty = { [_ in K]?: never };\nexport type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n AWSDate: { input: string; output: string; }\n AWSDateTime: { input: string; output: string; }\n AWSEmail: { input: string; output: string; }\n AWSIPAddress: { input: string; output: string; }\n AWSJSON: { input: string; output: string; }\n AWSPhone: { input: string; output: string; }\n AWSTime: { input: string; output: string; }\n AWSTimestamp: { input: number; output: number; }\n AWSURL: { input: string; output: string; }\n};\n\nexport type Activities = {\n __typename: 'Activities';\n activities: Array>;\n nextToken?: Maybe;\n};\n\nexport type Activity = {\n __typename: 'Activity';\n ageRestriction?: Maybe;\n created: Scalars['AWSDateTime']['output'];\n endDate?: Maybe;\n fundraisingPageTypeReference?: Maybe;\n id: Scalars['String']['output'];\n journeyConfig: JourneyConfig;\n merchandiseTemplateType?: Maybe;\n metaDescription?: Maybe;\n metaTitle?: Maybe;\n name: Scalars['String']['output'];\n products: Array>;\n reference: Reference;\n selectedAgeRestriction?: Maybe;\n sendEmail: Scalars['Boolean']['output'];\n sendFulfilment: Scalars['Boolean']['output'];\n startDate?: Maybe;\n status: Status;\n successHeader?: Maybe;\n successMessage?: Maybe;\n thankYouHeader?: Maybe;\n thankYouMessage?: Maybe;\n type: Scalars['String']['output'];\n updated: Scalars['AWSDateTime']['output'];\n url: Scalars['String']['output'];\n};\n\nexport type ActivityInput = {\n ageRestriction?: InputMaybe;\n endDate?: InputMaybe;\n fundraisingPageTypeReference?: InputMaybe;\n id?: InputMaybe;\n journeyConfig: JourneyConfigInput;\n merchandiseTemplateType?: InputMaybe;\n metaDescription?: InputMaybe;\n metaTitle?: InputMaybe;\n name: Scalars['String']['input'];\n products: Array>;\n reference: ReferenceInput;\n selectedAgeRestriction?: InputMaybe;\n sendEmail: Scalars['Boolean']['input'];\n sendFulfilment: Scalars['Boolean']['input'];\n startDate?: InputMaybe;\n status: Status;\n successHeader?: InputMaybe;\n successMessage?: InputMaybe;\n thankYouHeader?: InputMaybe;\n thankYouMessage?: InputMaybe;\n type: Scalars['String']['input'];\n url: Scalars['String']['input'];\n};\n\nexport type ActivityNotFoundError = {\n __typename: 'ActivityNotFoundError';\n message: Scalars['String']['output'];\n};\n\nexport type ActivityRegistrationInput = {\n conversion: ConversionInput;\n cookieBanner: CookieBannerInput;\n fundraiser: FundraiserInput;\n registration: RegistrationInput;\n};\n\nexport type ActivityRegistrationResult = ActivityRegistrationSuccess | ServerError | ValidationError;\n\nexport type ActivityRegistrationSuccess = {\n __typename: 'ActivityRegistrationSuccess';\n fundraisingPageRedirectUrl?: Maybe;\n id: Scalars['String']['output'];\n};\n\nexport type ActivityResult = Activity | ActivityNotFoundError | ServerError | ValidationError;\n\nexport type ActivityTypes = {\n __typename: 'ActivityTypes';\n types: Array>;\n};\n\nexport type AddressInput = {\n city: Scalars['String']['input'];\n country: Scalars['String']['input'];\n line1: Scalars['String']['input'];\n line2?: InputMaybe;\n line3?: InputMaybe;\n postcode: Scalars['String']['input'];\n validated: Scalars['Boolean']['input'];\n};\n\nexport type ConversionData = {\n am_form_category: Scalars['String']['input'];\n am_form_id: Scalars['String']['input'];\n client_user_agent: Scalars['String']['input'];\n cruk_activity_name: Scalars['String']['input'];\n cruk_activity_name_link: Scalars['String']['input'];\n cruk_brand: Scalars['String']['input'];\n event_id: Scalars['String']['input'];\n event_source_url: Scalars['String']['input'];\n event_time: Scalars['Int']['input'];\n fbc?: InputMaybe;\n fbp?: InputMaybe;\n tealium_account: Scalars['String']['input'];\n tealium_datasource: Scalars['String']['input'];\n tealium_event: Scalars['String']['input'];\n tealium_profile: Scalars['String']['input'];\n user_archetype: Scalars['String']['input'];\n user_consent_string: Scalars['String']['input'];\n user_hash_city?: InputMaybe;\n user_hash_dob?: InputMaybe;\n user_hash_email: Scalars['String']['input'];\n user_hash_firstname: Scalars['String']['input'];\n user_hash_lastname: Scalars['String']['input'];\n user_hash_phone?: InputMaybe;\n user_hash_postcode?: InputMaybe;\n};\n\nexport type ConversionInput = {\n activityName: Scalars['String']['input'];\n activityUrl: Scalars['String']['input'];\n brand: Scalars['String']['input'];\n clientUserAgent: Scalars['String']['input'];\n eventId: Scalars['String']['input'];\n eventSourceUrl: Scalars['String']['input'];\n eventTime: Scalars['Int']['input'];\n fbc?: InputMaybe;\n fbp?: InputMaybe;\n formId: Scalars['String']['input'];\n};\n\nexport type CookieBannerInput = {\n fun?: InputMaybe;\n per?: InputMaybe;\n snc?: InputMaybe;\n tar?: InputMaybe;\n};\n\nexport type Event = {\n __typename: 'Event';\n date_start?: Maybe;\n event_code?: Maybe;\n event_types?: Maybe>>;\n title?: Maybe;\n};\n\nexport type EventListResultSuccess = {\n __typename: 'EventListResultSuccess';\n events: Array>;\n};\n\nexport type EventResult = EventResultSuccess | ServerError;\n\nexport type EventResultSuccess = {\n __typename: 'EventResultSuccess';\n event: Array>;\n};\n\nexport type EventsInput = {\n searchInput: Scalars['String']['input'];\n};\n\nexport type EventsResult = EventListResultSuccess | ServerError;\n\nexport type Field = {\n __typename: 'Field';\n field: Scalars['String']['output'];\n header?: Maybe;\n helpText?: Maybe;\n text?: Maybe;\n validation?: Maybe;\n};\n\nexport type FieldInput = {\n field: Scalars['String']['input'];\n header?: InputMaybe;\n helpText?: InputMaybe;\n text?: InputMaybe;\n validation?: InputMaybe;\n};\n\nexport type FieldValidation = {\n __typename: 'FieldValidation';\n maxValue?: Maybe;\n maxValueErrorMessage?: Maybe;\n minValue?: Maybe;\n minValueErrorMessage?: Maybe;\n required?: Maybe;\n};\n\nexport type FieldValidationInput = {\n maxValue?: InputMaybe;\n maxValueErrorMessage?: InputMaybe;\n minValue?: InputMaybe;\n minValueErrorMessage?: InputMaybe;\n required?: InputMaybe;\n};\n\nexport type FulfilmentInput = {\n deliveryMethod: Scalars['String']['input'];\n deliveryNote?: InputMaybe;\n eventCode?: InputMaybe;\n orderLines: Array;\n productQuantity: Scalars['Int']['input'];\n};\n\nexport type FundraiserInput = {\n address?: InputMaybe;\n dateOfBirth?: InputMaybe;\n emailAddress: Scalars['AWSEmail']['input'];\n forename: Scalars['String']['input'];\n landlineNumber?: InputMaybe;\n mobileNumber?: InputMaybe;\n suppressions: Array>;\n surname: Scalars['String']['input'];\n};\n\nexport type GetActivitiesInput = {\n limit?: InputMaybe;\n nextToken?: InputMaybe;\n};\n\nexport type GetActivitiesResult = Activities | ServerError | ValidationError;\n\nexport type GetActivityInput = {\n id?: InputMaybe;\n url?: InputMaybe;\n};\n\nexport type GetActivityResult = Activity | ActivityNotFoundError | ServerError | ValidationError;\n\nexport type GetActivityTypesResult = ActivityTypes | ServerError;\n\nexport type GetProductCodesResult = ProductCodes | ServerError;\n\nexport type GetProductInput = {\n code?: InputMaybe;\n id?: InputMaybe;\n};\n\nexport type GetProductResult = Product | ProductNotFoundError | ServerError | ValidationError;\n\nexport type GetProductsInput = {\n enabled?: InputMaybe;\n limit?: InputMaybe;\n nextToken?: InputMaybe;\n};\n\nexport type GetProductsResult = ProductNotFoundError | Products | ServerError | ValidationError;\n\nexport type GetSupporterMaterialResult = ServerError | SupporterMaterials;\n\nexport type JourneyConfig = {\n __typename: 'JourneyConfig';\n bannerText?: Maybe;\n fields: Array>;\n introText?: Maybe;\n journey: Scalars['String']['output'];\n submitButtonLabel?: Maybe;\n theme: Theme;\n title?: Maybe;\n validActivityTypes: Array>;\n};\n\nexport type JourneyConfigInput = {\n bannerText?: InputMaybe;\n fields: Array>;\n introText?: InputMaybe;\n journey: Scalars['String']['input'];\n submitButtonLabel?: InputMaybe;\n theme: Theme;\n title?: InputMaybe;\n validActivityTypes: Array>;\n};\n\nexport type Material = {\n __typename: 'Material';\n code: Scalars['String']['output'];\n enabled: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n};\n\nexport type Metadata = {\n __typename: 'Metadata';\n key: Scalars['String']['output'];\n value: Scalars['String']['output'];\n};\n\nexport type MetadataInput = {\n key: Scalars['String']['input'];\n value: Scalars['String']['input'];\n};\n\nexport type Mutation = {\n __typename: 'Mutation';\n activity?: Maybe;\n product?: Maybe;\n submitActivityRegistration?: Maybe;\n};\n\n\nexport type MutationActivityArgs = {\n input: ActivityInput;\n};\n\n\nexport type MutationProductArgs = {\n input: ProductInput;\n};\n\n\nexport type MutationSubmitActivityRegistrationArgs = {\n input: ActivityRegistrationInput;\n};\n\nexport type OrderLineAttributeInput = {\n name: Scalars['String']['input'];\n value?: InputMaybe;\n};\n\nexport type OrderLineInput = {\n attributes: Array>;\n lineNumber: Scalars['Int']['input'];\n productCode: Scalars['String']['input'];\n quantity: Scalars['Int']['input'];\n};\n\nexport type Product = {\n __typename: 'Product';\n code: Scalars['String']['output'];\n created?: Maybe;\n enabled: Scalars['Boolean']['output'];\n id?: Maybe;\n metadata: Array>;\n name: Scalars['String']['output'];\n precedence: Scalars['Int']['output'];\n type: Scalars['String']['output'];\n updated?: Maybe;\n};\n\nexport type ProductCodes = {\n __typename: 'ProductCodes';\n codes: Array>;\n};\n\nexport type ProductInput = {\n code: Scalars['String']['input'];\n enabled: Scalars['Boolean']['input'];\n id?: InputMaybe;\n metadata: Array>;\n name: Scalars['String']['input'];\n precedence: Scalars['Int']['input'];\n type: Scalars['String']['input'];\n};\n\nexport type ProductNotFoundError = {\n __typename: 'ProductNotFoundError';\n message: Scalars['String']['output'];\n};\n\nexport type ProductResult = Product | ProductNotFoundError | ServerError | ValidationError;\n\nexport type Products = {\n __typename: 'Products';\n nextToken?: Maybe;\n products: Array>;\n};\n\nexport type Query = {\n __typename: 'Query';\n activities?: Maybe;\n activity?: Maybe;\n activityTypes?: Maybe;\n event?: Maybe;\n events?: Maybe;\n product?: Maybe;\n productCodes?: Maybe;\n products?: Maybe;\n supporterMaterials?: Maybe;\n};\n\n\nexport type QueryActivitiesArgs = {\n input: GetActivitiesInput;\n};\n\n\nexport type QueryActivityArgs = {\n input: GetActivityInput;\n};\n\n\nexport type QueryEventArgs = {\n input: EventsInput;\n};\n\n\nexport type QueryEventsArgs = {\n input: EventsInput;\n};\n\n\nexport type QueryProductArgs = {\n input: GetProductInput;\n};\n\n\nexport type QueryProductsArgs = {\n input: GetProductsInput;\n};\n\nexport type Reference = {\n __typename: 'Reference';\n productCode: Scalars['String']['output'];\n propositionCode: Scalars['String']['output'];\n propositionName: Scalars['String']['output'];\n sourceCode: Scalars['String']['output'];\n subPropositionCode: Scalars['String']['output'];\n subPropositionName: Scalars['String']['output'];\n};\n\nexport type ReferenceInput = {\n productCode: Scalars['String']['input'];\n propositionCode: Scalars['String']['input'];\n propositionName: Scalars['String']['input'];\n sourceCode: Scalars['String']['input'];\n subPropositionCode: Scalars['String']['input'];\n subPropositionName: Scalars['String']['input'];\n};\n\nexport type RegistrationInput = {\n activityDateTime?: InputMaybe;\n activityId: Scalars['String']['input'];\n activityRestrictionCode?: InputMaybe;\n activityType?: InputMaybe;\n eventCode?: InputMaybe;\n fulfilment?: InputMaybe;\n fundraisingTarget?: InputMaybe;\n hasOnlineFundraisingPage?: InputMaybe;\n moreInfo?: InputMaybe;\n organisationName?: InputMaybe;\n};\n\nexport type ServerError = {\n __typename: 'ServerError';\n message: Scalars['String']['output'];\n};\n\nexport enum Status {\n Closed = 'CLOSED',\n Open = 'OPEN'\n}\n\nexport type SupporterMaterials = {\n __typename: 'SupporterMaterials';\n materials?: Maybe>>;\n};\n\nexport enum Theme {\n Cruk = 'CRUK',\n Rfl = 'RFL',\n Su2C = 'SU2C'\n}\n\nexport type ValidationError = {\n __typename: 'ValidationError';\n data: Array;\n message: Scalars['String']['output'];\n};\n\nexport type ValidationErrorField = {\n __typename: 'ValidationErrorField';\n errorMessages: Array;\n field: Scalars['String']['output'];\n};\n\nexport type SubmitActivityRegistrationMutationVariables = Exact<{\n input: ActivityRegistrationInput;\n}>;\n\n\nexport type SubmitActivityRegistrationMutation = { __typename: 'Mutation', submitActivityRegistration?: { __typename: 'ActivityRegistrationSuccess', id: string, fundraisingPageRedirectUrl?: string } | { __typename: 'ServerError', message: string } | { __typename: 'ValidationError', message: string, data: Array<{ __typename: 'ValidationErrorField', field: string, errorMessages: Array }> } };\n\nexport type MutateActivityMutationVariables = Exact<{\n input: ActivityInput;\n}>;\n\n\nexport type MutateActivityMutation = { __typename: 'Mutation', activity?: { __typename: 'Activity', id: string, url: string, name: string, status: Status, type: string, sendEmail: boolean, sendFulfilment: boolean, created: string, updated: string, fundraisingPageTypeReference?: string, merchandiseTemplateType?: string, ageRestriction?: string, selectedAgeRestriction?: string, startDate?: string, endDate?: string, successHeader?: string, successMessage?: string, thankYouMessage?: string, thankYouHeader?: string, metaTitle?: string, metaDescription?: string, reference: { __typename: 'Reference', sourceCode: string, productCode: string, propositionName: string, propositionCode: string, subPropositionName: string, subPropositionCode: string }, journeyConfig: { __typename: 'JourneyConfig', journey: string, theme: Theme, bannerText?: string, title?: string, introText?: string, validActivityTypes: Array, submitButtonLabel?: string, fields: Array<{ __typename: 'Field', field: string, header?: string, helpText?: string, text?: string, validation?: { __typename: 'FieldValidation', required?: boolean, maxValue?: number, minValue?: number, maxValueErrorMessage?: string, minValueErrorMessage?: string } }> }, products: Array<{ __typename: 'Product', name: string, code: string, enabled: boolean, type: string, precedence: number, metadata: Array<{ __typename: 'Metadata', key: string, value: string }> }> } | { __typename: 'ActivityNotFoundError', message: string } | { __typename: 'ServerError', message: string } | { __typename: 'ValidationError', message: string, data: Array<{ __typename: 'ValidationErrorField', field: string, errorMessages: Array }> } };\n\nexport type MutateProductMutationVariables = Exact<{\n input: ProductInput;\n}>;\n\n\nexport type MutateProductMutation = { __typename: 'Mutation', product?: { __typename: 'Product', id?: string, name: string, code: string, type: string, enabled: boolean, precedence: number, created?: string, updated?: string, metadata: Array<{ __typename: 'Metadata', key: string, value: string }> } | { __typename: 'ProductNotFoundError', message: string } | { __typename: 'ServerError', message: string } | { __typename: 'ValidationError', message: string, data: Array<{ __typename: 'ValidationErrorField', field: string, errorMessages: Array }> } };\n\nexport type ActivityQueryVariables = Exact<{\n input: GetActivityInput;\n}>;\n\n\nexport type ActivityQuery = { __typename: 'Query', activity?: { __typename: 'Activity', id: string, url: string, name: string, status: Status, type: string, sendEmail: boolean, sendFulfilment: boolean, created: string, updated: string, fundraisingPageTypeReference?: string, merchandiseTemplateType?: string, ageRestriction?: string, selectedAgeRestriction?: string, startDate?: string, endDate?: string, successHeader?: string, successMessage?: string, thankYouMessage?: string, thankYouHeader?: string, metaTitle?: string, metaDescription?: string, reference: { __typename: 'Reference', sourceCode: string, productCode: string, propositionName: string, propositionCode: string, subPropositionName: string, subPropositionCode: string }, journeyConfig: { __typename: 'JourneyConfig', journey: string, theme: Theme, bannerText?: string, title?: string, introText?: string, validActivityTypes: Array, submitButtonLabel?: string, fields: Array<{ __typename: 'Field', field: string, header?: string, helpText?: string, text?: string, validation?: { __typename: 'FieldValidation', required?: boolean, maxValue?: number, minValue?: number, maxValueErrorMessage?: string, minValueErrorMessage?: string } }> }, products: Array<{ __typename: 'Product', name: string, code: string, enabled: boolean, type: string, precedence: number, metadata: Array<{ __typename: 'Metadata', key: string, value: string }> }> } | { __typename: 'ActivityNotFoundError', message: string } | { __typename: 'ServerError', message: string } | { __typename: 'ValidationError', message: string, data: Array<{ __typename: 'ValidationErrorField', field: string, errorMessages: Array }> } };\n\nexport type ActivityTypesQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type ActivityTypesQuery = { __typename: 'Query', activityTypes?: { __typename: 'ActivityTypes', types: Array } | { __typename: 'ServerError', message: string } };\n\nexport type ProductCodesQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type ProductCodesQuery = { __typename: 'Query', productCodes?: { __typename: 'ProductCodes', codes: Array } | { __typename: 'ServerError', message: string } };\n\nexport type ProductsQueryVariables = Exact<{\n input: GetProductsInput;\n}>;\n\n\nexport type ProductsQuery = { __typename: 'Query', products?: { __typename: 'ProductNotFoundError' } | { __typename: 'Products', nextToken?: string, products: Array<{ __typename: 'Product', id?: string, name: string, code: string, enabled: boolean, type: string, precedence: number, created?: string, updated?: string, metadata: Array<{ __typename: 'Metadata', key: string, value: string }> }> } | { __typename: 'ServerError', message: string } | { __typename: 'ValidationError' } };\n\nexport type ProductQueryVariables = Exact<{\n input: GetProductInput;\n}>;\n\n\nexport type ProductQuery = { __typename: 'Query', product?: { __typename: 'Product', id?: string, name: string, code: string, enabled: boolean, type: string, precedence: number, created?: string, updated?: string, metadata: Array<{ __typename: 'Metadata', key: string, value: string }> } | { __typename: 'ProductNotFoundError', message: string } | { __typename: 'ServerError', message: string } | { __typename: 'ValidationError', message: string, data: Array<{ __typename: 'ValidationErrorField', field: string, errorMessages: Array }> } };\n\nexport type EventsQueryVariables = Exact<{\n input: EventsInput;\n}>;\n\n\nexport type EventsQuery = { __typename: 'Query', events?: { __typename: 'EventListResultSuccess', events: Array<{ __typename: 'Event', event_code?: string, title?: string, event_types?: Array, date_start?: string }> } | { __typename: 'ServerError', message: string } };\n\nexport type EventQueryVariables = Exact<{\n input: EventsInput;\n}>;\n\n\nexport type EventQuery = { __typename: 'Query', event?: { __typename: 'EventResultSuccess', event: Array<{ __typename: 'Event', event_code?: string, title?: string, event_types?: Array, date_start?: string }> } | { __typename: 'ServerError', message: string } };\n\nexport type SupporterMaterialsQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type SupporterMaterialsQuery = { __typename: 'Query', supporterMaterials?: { __typename: 'ServerError', message: string } | { __typename: 'SupporterMaterials', materials?: Array<{ __typename: 'Material', name: string, code: string, enabled: boolean }> } };\n\nexport type ActivitiesQueryVariables = Exact<{\n input: GetActivitiesInput;\n}>;\n\n\nexport type ActivitiesQuery = { __typename: 'Query', activities?: { __typename: 'Activities', nextToken?: string, activities: Array<{ __typename: 'Activity', id: string, url: string, name: string, status: Status, type: string, created: string, updated: string, reference: { __typename: 'Reference', sourceCode: string, productCode: string, propositionName: string, propositionCode: string, subPropositionName: string, subPropositionCode: string }, journeyConfig: { __typename: 'JourneyConfig', journey: string } }> } | { __typename: 'ServerError', message: string } | { __typename: 'ValidationError', message: string, data: Array<{ __typename: 'ValidationErrorField', field: string, errorMessages: Array }> } };\n\n\nexport const SubmitActivityRegistrationDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SubmitActivityRegistration\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityRegistrationInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"submitActivityRegistration\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityRegistrationSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fundraisingPageRedirectUrl\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ValidationError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"field\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorMessages\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const MutateActivityDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"MutateActivity\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activity\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Activity\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendEmail\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendFulfilment\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fundraisingPageTypeReference\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"merchandiseTemplateType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ageRestriction\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedAgeRestriction\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endDate\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"successHeader\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"successMessage\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thankYouMessage\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thankYouHeader\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"metaTitle\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"metaDescription\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sourceCode\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"productCode\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"propositionName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"propositionCode\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subPropositionName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subPropositionCode\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"journeyConfig\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"journey\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"theme\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bannerText\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"introText\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"validActivityTypes\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"submitButtonLabel\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fields\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"field\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"header\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"helpText\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"text\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"validation\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"required\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxValue\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"minValue\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxValueErrorMessage\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"minValueErrorMessage\"}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"products\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"precedence\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"metadata\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityNotFoundError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ValidationError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"field\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorMessages\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const MutateProductDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"MutateProduct\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ProductInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"product\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Product\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"precedence\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"metadata\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updated\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ProductNotFoundError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ValidationError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"field\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorMessages\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const ActivityDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"activity\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"GetActivityInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activity\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Activity\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendEmail\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sendFulfilment\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fundraisingPageTypeReference\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"merchandiseTemplateType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ageRestriction\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedAgeRestriction\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endDate\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"successHeader\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"successMessage\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thankYouMessage\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thankYouHeader\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"metaTitle\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"metaDescription\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sourceCode\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"productCode\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"propositionName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"propositionCode\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subPropositionName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subPropositionCode\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"journeyConfig\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"journey\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"theme\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bannerText\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"introText\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"validActivityTypes\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"submitButtonLabel\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fields\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"field\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"header\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"helpText\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"text\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"validation\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"required\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxValue\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"minValue\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxValueErrorMessage\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"minValueErrorMessage\"}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"products\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"precedence\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"metadata\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityNotFoundError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ValidationError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"field\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorMessages\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const ActivityTypesDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"activityTypes\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityTypes\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActivityTypes\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const ProductCodesDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"productCodes\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"productCodes\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ProductCodes\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"codes\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const ProductsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"products\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"GetProductsInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"products\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Products\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"products\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"precedence\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"metadata\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updated\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nextToken\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const ProductDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"product\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"GetProductInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"product\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Product\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"precedence\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"metadata\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"key\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updated\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ProductNotFoundError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ValidationError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"field\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorMessages\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const EventsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"events\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EventsInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"events\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EventListResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"events\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"event_code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"event_types\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"date_start\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const EventDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"event\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EventsInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"event\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EventResultSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"event\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"event_code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"event_types\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"date_start\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const SupporterMaterialsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"supporterMaterials\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supporterMaterials\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SupporterMaterials\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"materials\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"enabled\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;\nexport const ActivitiesDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"activities\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"GetActivitiesInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activities\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Activities\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activities\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"created\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sourceCode\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"productCode\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"propositionName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"propositionCode\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subPropositionName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subPropositionCode\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"journeyConfig\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"journey\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nextToken\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ValidationError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"field\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorMessages\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ServerError\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}}]}}]}}]} as unknown as DocumentNode;","export const GET_ACTIVITIES = \"getActivities\";\nexport const GET_ACTIVITY_BY_ID = \"getActivityById\";\nexport const GET_PRODUCTS = \"getProducts\";\nexport const GET_PRODUCT_BY_ID = \"getProductById\";\nexport const GET_ACTIVITY_TYPES = \"getActivityTypes\";\nexport const GET_PRODUCT_CODES = \"getProductCodes\";\nexport const GET_EVENT = \"getEvent\";\nexport const GET_EVENTS = \"getEvents\";\n\nexport type GetQueryTypes =\n | typeof GET_PRODUCTS\n | typeof GET_PRODUCT_BY_ID\n | typeof GET_ACTIVITIES\n | typeof GET_ACTIVITY_BY_ID\n | typeof GET_ACTIVITY_TYPES\n | typeof GET_PRODUCT_CODES\n | typeof GET_EVENT\n | typeof GET_EVENTS;\n","export const SF_CHALLENGES = \"sf-challenges\";\nexport const CHALLENGE = \"challenge\";\nexport const DRYATHLON = \"dryathlon\";\nexport const SPORTS_FORM = \"sports-form\";\nexport const SPORTS_FORMS_CONTACT_CENTRE = \"sports-forms-contact-centre\";\nexport const SPORTS_FORMS_PROMOTER = \"sports-form-promoter\";\nexport const SPORTS_FORM_WITHOUT_GIVING_PAGE =\n \"sports-form-without-giving-page\";\nexport const GENERAL_FUNDRAISING_PACK_OPTION =\n \"general-fundraising-pack-option\";\nexport const VF = \"vf\";\nexport const VF_FUNDREG = \"vf-fundreg\";\nexport const LEAD_GENERATION_1 = \"lead-generation-1\";\nexport const LEAD_GENERATION_2 = \"lead-generation-2\";\nexport const GIFTS_IN_WILLS_GUIDE = \"gifts-in-wills-guide\";\nexport const ORGANISATION = \"organisation\";\nexport const GENERAL_FUNDRAISING_2 = \"general-fundraising-2\";\nexport const ALWAYS_ON_2 = \"always-on-2\";\nexport const ALWAYS_ON = \"always-on\";\nexport const RUN_56 = \"run-56\";\nexport const CELEBRATION_0 = \"0-celebration\";\nexport const DIY_PARK_RUNNER = \"diy-park-runner\";\nexport const DIY_COUCH_TO_5K_JOGGER = \"diy-couch-to-5k-jogger\";\n\nexport type JourneyTypes =\n | typeof SF_CHALLENGES\n | typeof CHALLENGE\n | typeof DRYATHLON\n | typeof SPORTS_FORM\n | typeof SPORTS_FORMS_CONTACT_CENTRE\n | typeof SPORTS_FORMS_PROMOTER\n | typeof SPORTS_FORM_WITHOUT_GIVING_PAGE\n | typeof GENERAL_FUNDRAISING_PACK_OPTION\n | typeof VF\n | typeof VF_FUNDREG\n | typeof LEAD_GENERATION_1\n | typeof LEAD_GENERATION_2\n | typeof GIFTS_IN_WILLS_GUIDE\n | typeof ORGANISATION\n | typeof GENERAL_FUNDRAISING_2\n | typeof ALWAYS_ON_2\n | typeof ALWAYS_ON\n | typeof RUN_56\n | typeof CELEBRATION_0\n | typeof DIY_PARK_RUNNER\n | typeof DIY_COUCH_TO_5K_JOGGER\n | \"undefined\";\n","// We define these constants such that these strings can be kept in sync across the codebase.\n// eslint-disable-next-line import/prefer-default-export\nexport const PACK = \"pack\";\nexport const T_SHIRT = \"tshirt\";\nexport const VEST = \"vest\";\n","import { FormJourney, FormPage, getFormJourneyConfig } from \".\";\nimport mustache from \"mustache\";\nimport { ActivityType } from \"../../contexts/ActivityContext\";\n\n// Uses mustache to fill the page using the activity provided.\nfunction fillPage(formPage: FormPage, activity: ActivityType): FormPage {\n return {\n ...formPage,\n ...{\n heading: mustache.render(formPage.heading, activity),\n introText: formPage.introText\n ? mustache.render(formPage.introText, activity)\n : undefined,\n collapseLabel: formPage.collapseLabel\n ? mustache.render(formPage.collapseLabel, activity)\n : undefined,\n collapseContent: formPage.collapseContent\n ? mustache.render(formPage.collapseContent, activity)\n : undefined,\n submitButtonLabel: formPage.submitButtonLabel\n ? mustache.render(formPage.submitButtonLabel, activity)\n : undefined,\n backLinkLabel: formPage.backLinkLabel\n ? mustache.render(formPage.backLinkLabel, activity)\n : undefined,\n activityDateTimeLabel: formPage.activityDateTimeLabel\n ? mustache.render(formPage.activityDateTimeLabel, activity)\n : undefined,\n emailAddressLabel: formPage.emailAddressLabel\n ? mustache.render(formPage.emailAddressLabel, activity)\n : undefined,\n emailAddressHintText: formPage.emailAddressHintText\n ? mustache.render(formPage.emailAddressHintText, activity)\n : undefined,\n phoneNumberLabel: formPage.phoneNumberLabel\n ? mustache.render(formPage.phoneNumberLabel, activity)\n : undefined,\n addressHeading: formPage.addressHeading\n ? mustache.render(formPage.addressHeading, activity)\n : undefined,\n },\n };\n}\n\n/*\n * Augment the form journey with activity data.\n */\nexport default function getFormJourney(\n journey: string,\n activity: ActivityType\n): FormJourney {\n const formJourneyConfig = getFormJourneyConfig(journey);\n if (!formJourneyConfig) {\n throw new Error(`Unable to find journey: ${journey}`);\n }\n Object.keys(formJourneyConfig.pages).forEach((key) => {\n formJourneyConfig.pages[key] = fillPage(\n formJourneyConfig.pages[key],\n activity\n );\n });\n return formJourneyConfig;\n}\n","import { createContext } from \"react\";\n\nexport type ActivityType = {\n activityMonthDateHeader: string;\n activityName: string;\n activityType: string;\n activityStatus: string;\n activitySuccessHeader: string;\n activitySuccessMessage: string;\n activityDateHeader: string;\n activityDateHelpText: string;\n callToActionLabel?: string;\n callToActionLink?: string;\n secondCallToActionLabel?: string;\n secondCallToActionLink?: string;\n confirmationPageCTALabel?: string;\n secondConfirmationPageCTALabel?: string;\n dobHelpText: string;\n firstNameLabel: string;\n fundraisingPageHeading: string;\n fundraisingTargetLabel: string;\n fundraisingTargetHelpTextHtml: string;\n header: string;\n bannerText: string;\n introTextHtml: string;\n id: string;\n journey: string;\n loaded: boolean;\n lastNameLabel: string;\n moreInfoHeader: string;\n moreInfoHelpText: string;\n merchandiseTemplateType?: string | undefined;\n merchandiseLabelHeader?: string;\n ageRestriction?: string;\n selectedAgeRestriction?: string;\n organisationName: string;\n productQuantityHeader: string;\n productQuantityHelpText: string;\n productQuantityMax: string;\n productQuantityMin: string;\n productQuantityMaxError: string;\n productQuantityMinError: string;\n productCode: string;\n products: Array<{\n productCode: string;\n enabled: \"Y\" | \"N\";\n type: \"pack\" | \"tshirt\" | \"vest\";\n metaData: { key: string; value: string }[];\n precedence: number;\n }>;\n sourceCode: string;\n submitButtonLabel: string;\n tShirtHeader?: string;\n termsAndConditionsHeader: string;\n termsAndConditionsTextHtml: string;\n typeConfig: Record;\n theme: \"cruk\" | \"rfl\" | \"su2c\";\n urlName: string;\n metaTitle?: string;\n metaDescription?: string;\n};\n\nexport const emptyActivity: ActivityType = {\n activityMonthDateHeader: \"\",\n activityDateHeader: \"\",\n activityDateHelpText: \"\",\n activityName: \"\",\n activityType: \"\",\n activitySuccessHeader: \"\",\n activitySuccessMessage: \"\",\n callToActionLabel: \"\",\n callToActionLink: \"\",\n secondCallToActionLabel: \"\",\n secondCallToActionLink: \"\",\n confirmationPageCTALabel: \"\",\n secondConfirmationPageCTALabel: \"\",\n dobHelpText: \"\",\n fundraisingPageHeading: \"\",\n fundraisingTargetLabel: \"\",\n firstNameLabel: \"\",\n fundraisingTargetHelpTextHtml: \"\",\n header: \"\",\n id: \"\",\n bannerText: \"\",\n introTextHtml: \"\",\n journey: \"\",\n loaded: false,\n lastNameLabel: \"\",\n moreInfoHeader: \"\",\n moreInfoHelpText: \"\",\n merchandiseTemplateType: \"\",\n merchandiseLabelHeader: \"\",\n ageRestriction: \"\",\n selectedAgeRestriction: \"\",\n organisationName: \"\",\n products: [],\n productCode: \"\",\n productQuantityHeader: \"\",\n productQuantityHelpText: \"\",\n productQuantityMax: \"\",\n productQuantityMin: \"\",\n productQuantityMaxError: \"\",\n productQuantityMinError: \"\",\n sourceCode: \"\",\n submitButtonLabel: \"\",\n theme: \"cruk\",\n tShirtHeader: \"\",\n typeConfig: {},\n termsAndConditionsHeader: \"\",\n termsAndConditionsTextHtml: \"\",\n urlName: \"\",\n activityStatus: \"\",\n};\n\nconst ActivityContext = createContext(emptyActivity);\n\nexport default ActivityContext;\n","// eslint-disable-next-line eslint-comments/disable-enable-pair\n/* eslint-disable no-console */\nconst errors = {\n E0001: {\n message: \"The source code does not have a journey\",\n help: `The activity's sourceCode could not be mapped to a journey type.\n - Check the sourceCode in the activity fixture or API data is correct`,\n },\n E0002: {\n message: \"The activity form journey does not have a form type\",\n help: `The activity's form journey could not be mapped to a form type\n - Check the sourceCode and formJourney in the activity fixture or API data are correct\n - It must be matched by one of the switch cases in ActivityRoutes.tsx`,\n },\n E0003: {\n message: \"The formJourney is not a known form journey value\",\n help: `- Check the formJourney in the activity fixture or API data is correct\n - It must be one of the form journey values in formJourneys.tsx`,\n },\n};\n\nfunction logError(errorCode: keyof typeof errors, data?: unknown): void {\n console.group(\"%cError\", \"color: red;\");\n console.error(`${errorCode}: ${errors[errorCode].message}`);\n\n if (errors[errorCode].help) {\n console.error(errors[errorCode].help);\n }\n\n if (data) {\n console.error(data);\n }\n\n console.groupEnd();\n}\n\nexport default logError;\n","import React, { FC, useContext } from \"react\";\nimport { Route, Routes } from \"react-router-dom\";\nimport getFormJourney from \"../constants/journeys/formJourney\";\nimport { JourneyTypes } from \"../constants/journeys/journeyNames\";\nimport ActivityContext from \"../contexts/ActivityContext\";\nimport logError from \"../utils/logError\";\n\ntype ActivityRoutesProps = {\n children: ({\n journey,\n page,\n currentStep,\n totalSteps,\n }: {\n journey: JourneyTypes;\n page: string;\n currentStep: number;\n totalSteps: number;\n }) => React.ReactElement | null;\n};\n\nconst ActivityRoutes: FC = ({ children }) => {\n const activity = useContext(ActivityContext);\n const { journey, sourceCode } = activity;\n\n const formJourney = getFormJourney(journey, activity);\n\n if (typeof journey === \"undefined\" || (formJourney && !formJourney.pages)) {\n logError(\"E0003\", { journey, sourceCode });\n return null;\n }\n // the thank-you page is a complete step in the config, but we don't count it in the total\n // in the step tracker\n const totalSteps = Object.entries(formJourney.pages).filter(\n ([page]) => page !== \"thank-you\"\n ).length;\n\n // call the children render prop function once for each page in the form,\n // passing the page's config plus the currentStep and totalStep numbers.\n // each page becomes it's own element rendered with a different config.\n // if the function returns nothing, no element is returned for that page.\n return (\n \n {Object.entries(formJourney.pages).map(([page, pageConfig], index) => {\n const routeChildren = children({\n journey: journey as JourneyTypes,\n page,\n currentStep: index + 1,\n totalSteps,\n ...pageConfig,\n });\n\n return routeChildren ? (\n \n }\n />\n ) : null;\n })}\n \n );\n};\n\nexport default ActivityRoutes;\n","import {\n createContext,\n Dispatch,\n ReactNode,\n SetStateAction,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport {\n Client,\n EventTags,\n OptimizelyUserContext,\n UserAttributes,\n} from \"@optimizely/optimizely-sdk\";\n\nexport type OptimizelyContextStateType = {\n optimizelyClient: Client | null;\n isServerSide: boolean;\n timeout: number | undefined;\n optimizelyUserContext: OptimizelyUserContext | null;\n loadingState: string;\n};\n\nexport type OptimizelyContextProviderType = [\n OptimizelyContextStateType,\n Dispatch>,\n];\n\nexport type TrackEventProps = {\n eventKey: string;\n overrideUserId?: string;\n overrideAttributes?: UserAttributes;\n eventTags?: EventTags;\n};\n\nconst defaultState: OptimizelyContextStateType = {\n optimizelyClient: null,\n optimizelyUserContext: null,\n isServerSide: false,\n timeout: 0,\n loadingState: \"failed\",\n};\n\nexport const OptimizelyContext = createContext([\n { ...defaultState },\n () => {},\n]);\n\nexport const useOptimizelyContext = () => {\n const [optimizelyContext, setOptimizelyContext] =\n useContext(OptimizelyContext);\n const { optimizelyClient, optimizelyUserContext } = optimizelyContext;\n\n // helper function to track events using optimizely user context information\n const trackEvent = (trackEventProps: TrackEventProps) => {\n if (!optimizelyClient) return; // todo track error\n const currentUser: OptimizelyUserContext | null | undefined =\n trackEventProps.overrideUserId\n ? optimizelyClient?.createUserContext(\n trackEventProps.overrideUserId,\n trackEventProps.overrideAttributes\n )\n : optimizelyUserContext;\n if (!currentUser) return;\n optimizelyClient.track(\n trackEventProps.eventKey,\n currentUser.getUserId(),\n currentUser.getAttributes(),\n trackEventProps.eventTags\n );\n };\n\n // helper function to set optimizely user context attributes\n const setOptimizelyUserAttributes = (\n UserAttributesObject: UserAttributes\n ) => {\n if (!optimizelyClient || !optimizelyUserContext) return;\n Object.keys(UserAttributesObject).forEach(\n (key: keyof typeof UserAttributesObject) => {\n optimizelyUserContext.setAttribute(\n `${key}`,\n UserAttributesObject[`${key}`]\n );\n }\n );\n };\n\n return {\n optimizelyContext,\n setOptimizelyContext,\n setOptimizelyUserAttributes,\n trackEvent,\n };\n};\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const OptimizelyContextProvider = ({ children }: Props) => {\n const [state, setState] = useState({\n ...defaultState,\n });\n\n const value = useMemo(\n () => [state, setState],\n [state]\n ) as OptimizelyContextProviderType;\n\n return (\n \n {children}\n \n );\n};\n","import { useEffect, useState } from \"react\";\n\nconst isBrowser = typeof window !== \"undefined\";\n\nconst getStorageValue = (key: string, defaultValue: string): string | null => {\n // getting stored value\n if (!isBrowser) return defaultValue;\n const saved: string | null = localStorage.getItem(key);\n const initial = saved ? (JSON.parse(saved) as string) : null;\n return initial || defaultValue;\n};\n\nexport const useLocalStorage = (key: string, defaultValue: string) => {\n const [value, setValue] = useState(() => getStorageValue(key, defaultValue));\n\n useEffect(() => {\n // storing input name\n localStorage.setItem(key, JSON.stringify(value));\n }, [key, value]);\n\n return { value, setValue };\n};\n\nexport default useLocalStorage;\n","import { useEffect } from \"react\";\nimport optimizely, { createInstance } from \"@optimizely/optimizely-sdk\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { useOptimizelyContext } from \"../contexts/OptimizelyContext\";\nimport { useLocalStorage } from \"../hooks/useLocalStorage\";\n\nexport type OptimizelyLoaderProps = {\n sdkKey: string;\n onError?: (err: Error) => void;\n};\n\nconst ENV_NAME = process.env.REACT_APP_STAGE || \"development\";\n\n/**\n * OptimizelyLoader initialises optimizely and sets user details\n */\nexport const OptimizelyLoader = ({\n sdkKey = \"\",\n onError,\n}: OptimizelyLoaderProps) => {\n const { optimizelyContext, setOptimizelyContext } = useOptimizelyContext();\n // \"user_id_not_set\" is default effectively user_id unset\n const { value: optimizelyId, setValue: setOptimizelyId } = useLocalStorage(\n \"optimizely\",\n \"user_id_not_set\"\n );\n\n if (ENV_NAME === \"PRODUCTION\") {\n optimizely.setLogger(null);\n }\n\n // init optimizely if we have a sdk key\n useEffect(() => {\n if (!sdkKey.length || optimizelyContext.optimizelyClient) return;\n const client = createInstance({\n sdkKey,\n datafileOptions: { autoUpdate: true, updateInterval: 300000 },\n eventBatchSize: 20,\n eventFlushInterval: 1000,\n });\n if (client) {\n client\n .onReady()\n .then((success) => {\n setOptimizelyContext({\n ...optimizelyContext,\n optimizelyClient: client,\n loadingState: success ? \"ready\" : \"failed\",\n });\n return undefined;\n })\n .catch((err: Error) => {\n if (onError) onError(err);\n });\n }\n }, [sdkKey]);\n\n // wait till we have access to browser to see if there is a stored optimizely id\n // if so use it, if not create one and use that\n useEffect(() => {\n if (optimizelyId === \"user_id_not_set\") {\n const randomId: string = uuidv4();\n setOptimizelyId(randomId);\n }\n }, [optimizelyId]);\n\n // once we get/set an optimizely id and we have an optimizely client\n // create a user context if one doesn't exist\n useEffect(() => {\n if (\n !sdkKey.length ||\n !optimizelyContext.optimizelyClient ||\n !optimizelyId ||\n optimizelyId === \"user_id_not_set\" ||\n optimizelyContext.optimizelyUserContext\n )\n return;\n\n const userContext = optimizelyContext.optimizelyClient.createUserContext(\n optimizelyId,\n { user_id: optimizelyId }\n );\n setOptimizelyContext({\n ...optimizelyContext,\n optimizelyUserContext: userContext,\n });\n }, [optimizelyContext.optimizelyClient, optimizelyId]);\n\n return null;\n};\n\nexport default OptimizelyLoader;\n","// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable eslint-comments/no-duplicate-disable */\n\n/* eslint-disable eslint-comments/disable-enable-pair */\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/* eslint-disable eslint-comments/disable-enable-pair */\n\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { Text } from \"@cruk/cruk-react-components\";\nimport { FC } from \"react\";\nimport styled from \"styled-components/macro\";\n\ntype StepTrackerProps = {\n currentStep: number;\n totalSteps: number;\n};\n\nconst StepTrackerWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n\n width: 40px;\n height: 40px;\n\n @media (min-width: ${({ theme }) => theme.breakpoint.desktop}) {\n width: 80px;\n height: 80px;\n }\n`;\n\nconst StyledText = styled(Text)`\n color: ${({ theme }) => theme.colors.progressBar};\n @media (min-width: ${({ theme }) => theme.breakpoint.desktop}) {\n font-size: ${({ theme }) => theme.fontSizes.l};\n }\n`;\n\nconst StepTrackerSvg = styled.svg`\n position: absolute;\n transform: rotate(-90deg);\n fill: none;\n stroke-linecap: round;\n\n width: 40px;\n height: 40px;\n\n @media (min-width: ${({ theme }) => theme.breakpoint.desktop}) {\n width: 80px;\n height: 80px;\n }\n\n .empty {\n stroke: ${({ theme }) => theme.tokenColors.grey_200};\n }\n\n .full {\n stroke: ${({ theme }) => theme.colors.circularProgress};\n }\n`;\n\nconst StepTracker: FC = ({\n currentStep,\n totalSteps,\n ...props\n}) => {\n const r = 16;\n const strokeWidth = 4;\n const d = (r + strokeWidth) * 2;\n\n return (\n \n {`${currentStep}/${totalSteps}`}\n \n \n \n \n \n );\n};\n\nexport default StepTracker;\n","import { useState } from \"react\";\nimport { ActivityType } from \"../contexts/ActivityContext\";\nimport JourneyHelper from \"../utils/journeyHelper\";\n\nconst journeyHelper = new JourneyHelper();\n\ntype DataLayerEvent =\n | {\n event: \"dataLayerLoaded\";\n brand: string;\n activity: string;\n pagePath: string;\n pageTitle: string;\n activityType: string;\n sourceCode: string;\n productCode: string;\n }\n | {\n event: \"am_interaction\";\n interactionName: string;\n interactionAction: string;\n }\n | {\n event: \"pageView\";\n pagePath: string;\n pageTitle: string;\n }\n | {\n event: \"pageView\";\n pagePath: string;\n pageTitle: \"confirmation\";\n registrationId: string;\n };\n\ndeclare global {\n interface Window {\n dataLayer: Array;\n }\n}\n\nif (typeof window.dataLayer === \"undefined\") {\n window.dataLayer = [];\n}\n\nfunction debug(event: DataLayerEvent) {\n if (process.env.NODE_ENV === \"development\") {\n console.groupCollapsed(\n `%cdataLayer event: ${event.event}`,\n \"font-weight: bold; color: forestgreen;\"\n );\n console.debug(event);\n console.groupEnd();\n }\n}\n\nfunction useDataLayer(): {\n pushDataLayerLoaded: (activity: ActivityType, eventCode: string) => void;\n pushInteraction: (interactionName: string, interactionAction: string) => void;\n pushPageView: (interactionName: string, interactionAction?: string) => void;\n pushPageViewConfirmation: (\n activity: ActivityType,\n registrationId: string\n ) => void;\n} {\n const [dataLayerLoadedPushed, setDataLayerLoadedPushed] = useState(false);\n\n const push = (event: DataLayerEvent) => {\n window.dataLayer.push(event);\n debug(event);\n };\n\n return {\n pushDataLayerLoaded(activity: ActivityType, eventCode: string = \"\") {\n if (dataLayerLoadedPushed) {\n return;\n }\n push({\n event: \"dataLayerLoaded\",\n brand: activity.theme,\n activity: activity.urlName,\n pagePath: window.location.pathname,\n pageTitle: activity.header,\n activityType: activity.activityType,\n sourceCode:\n journeyHelper.isSportsFormExternalJourney(activity.journey) &&\n eventCode\n ? eventCode\n : activity.sourceCode,\n productCode: activity.productCode,\n });\n setDataLayerLoadedPushed(true);\n },\n pushInteraction(interactionName: string, interactionAction: string) {\n push({\n event: \"am_interaction\",\n interactionName,\n interactionAction,\n });\n },\n pushPageView(title: string) {\n push({\n event: \"pageView\",\n pagePath: window.location.pathname,\n pageTitle: title,\n });\n },\n pushPageViewConfirmation(activity: ActivityType, registrationId: string) {\n push({\n event: \"pageView\",\n // this is a \"virtual\" confirmation page page only used in tracking, this page does not exist in the app routes\n pagePath: `/${activity.urlName}/confirmation`,\n pageTitle: \"confirmation\",\n registrationId,\n });\n },\n };\n}\n\nexport default useDataLayer;\n","import { datadogRum } from \"@datadog/browser-rum\";\nimport { version } from \"../../package.json\";\n\ndeclare global {\n interface Window {\n datadogRum: typeof datadogRum;\n }\n}\n\nconst ENV_NAME =\n (process.env.REACT_APP_DATA_DOG_ENV?.toLowerCase() as\n | \"production\"\n | \"integration\"\n | \"development\") || \"\";\n\nconst extractUrlParts = (\n url: string\n): { protocol: string; subdomains: string; tld: string } | null => {\n const regex = /^(https?):\\/\\/((?:[\\w-]+\\.)+)([\\w-]+\\.[\\w-]+)(\\/.*)?$/;\n const match = url.match(regex);\n\n if (match) {\n const subdomains = match[2].slice(0, -1);\n return {\n protocol: match[1],\n subdomains: subdomains,\n tld: match[3],\n };\n }\n\n return null;\n};\n\nexport const setUpDataDog = (graphQLEndpoint: string): void => {\n if (ENV_NAME === \"development\") return;\n\n const getUrlParts = extractUrlParts(graphQLEndpoint);\n\n datadogRum.init({\n applicationId: \"cb0074c1-646b-4100-a1bf-29d9a26573fc\",\n clientToken: \"pubb1e870fb63983e62c484468955bc710e\",\n site: \"datadoghq.eu\",\n service: \"activity-management\",\n env: ENV_NAME,\n allowedTracingUrls:\n ENV_NAME === \"production\"\n ? [\n `${graphQLEndpoint}`,\n `/${getUrlParts?.protocol}:\\/\\/.*\\.${getUrlParts?.subdomains}.\\.${getUrlParts?.tld}/`,\n (url) => url.startsWith(`${graphQLEndpoint}`),\n ]\n : [],\n // Specify a version number to identify the deployed version of your application in Datadog\n version,\n sessionSampleRate: 100,\n sessionReplaySampleRate: ENV_NAME === \"production\" ? 10 : 0,\n trackUserInteractions: true,\n trackResources: true,\n trackLongTasks: true,\n defaultPrivacyLevel: \"mask-user-input\",\n });\n\n datadogRum.startSessionReplayRecording();\n};\n\nexport const trackDataDogError = (errorMessage: string, extraInfo?: object) => {\n if (ENV_NAME === \"development\") return;\n\n datadogRum.addError(errorMessage, extraInfo);\n};\n","import { FC, useEffect, useState } from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { Status } from \"@cruk/activity-management-schema\";\nimport {\n ACTIVITY_DATE,\n ACTIVITY_MONTH,\n CALL_TO_ACTION,\n DATE_OF_BIRTH,\n FIRST_NAME,\n FUNDRAISING_PAGE,\n LAST_NAME,\n MERCHANDISE_TYPE,\n MORE_INFO,\n ORGANISATION,\n PARTICIPANTS,\n SECOND_CALL_TO_ACTION,\n T_SHIRT,\n TARGET,\n TERMS_AND_CONDITIONS,\n} from \"../constants/fields\";\nimport { hasFormJourneyConfig } from \"../constants/journeys\";\nimport ActivityContext, { ActivityType } from \"../contexts/ActivityContext\";\nimport useDataLayer from \"../hooks/useDataLayer\";\nimport { getActivityByUrl } from \"../utils/api/client\";\nimport { trackDataDogError } from \"../utils/dataDog\";\nimport { FieldUtils } from \"../utils/fieldUtils\";\nimport logError from \"../utils/logError\";\nimport { sanitize } from \"dompurify\";\n\ntype ActivityContainerProps = {\n isErrorPage: boolean;\n};\n\nconst ActivityContainer: FC = ({\n isErrorPage,\n children,\n}) => {\n const navigate = useNavigate();\n const [activity, setActivity] = useState();\n const { urlName } = useParams<{ urlName: string }>();\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { pushDataLayerLoaded } = useDataLayer();\n const {\n location: { search },\n } = window;\n const params = new URLSearchParams(search);\n const eventCode = sanitize(params.get(\"event_code\") as string);\n\n useEffect(() => {\n async function fetchActivityEffect() {\n try {\n const response = await getActivityByUrl(urlName!);\n // eslint-disable-next-line no-underscore-dangle\n switch (response.__typename) {\n case \"Activity\":\n // FIXME - Remove `ActivityType` and use the schema as-is without transforming it.\n {\n const fieldUtils = new FieldUtils(response.journeyConfig.fields);\n setActivity({\n activityMonthDateHeader:\n fieldUtils.get(ACTIVITY_MONTH)?.header ?? \"\",\n activityType: response.type,\n activityName: response.name,\n activityStatus:\n response.status === Status.Open ? \"active\" : \"closed\",\n activitySuccessHeader: response.successHeader ?? \"\",\n activitySuccessMessage: response.successMessage ?? \"\",\n activityDateHeader: fieldUtils.get(ACTIVITY_DATE)?.header ?? \"\",\n activityDateHelpText:\n fieldUtils.get(ACTIVITY_DATE)?.helpText ?? \"\",\n callToActionLabel: fieldUtils.get(CALL_TO_ACTION)?.header ?? \"\",\n callToActionLink: fieldUtils.get(CALL_TO_ACTION)?.text ?? \"\",\n secondCallToActionLabel:\n fieldUtils.get(SECOND_CALL_TO_ACTION)?.header ?? \"\",\n secondCallToActionLink:\n fieldUtils.get(SECOND_CALL_TO_ACTION)?.text ?? \"\",\n dobHelpText: fieldUtils.get(DATE_OF_BIRTH)?.helpText ?? \"\",\n firstNameLabel: fieldUtils.get(FIRST_NAME)?.header ?? \"\",\n fundraisingPageHeading:\n fieldUtils.get(FUNDRAISING_PAGE)?.header ||\n \"Your fundraising target\",\n fundraisingTargetLabel: fieldUtils.get(TARGET)?.header ?? \"\",\n fundraisingTargetHelpTextHtml:\n fieldUtils.get(TARGET)?.helpText ?? \"\",\n bannerText: response.journeyConfig.bannerText ?? \"\",\n header: response.journeyConfig.title ?? \"\",\n introTextHtml: response.journeyConfig.introText ?? \"\",\n id: response.id,\n journey: response.journeyConfig.journey,\n loaded: true,\n lastNameLabel: fieldUtils.get(LAST_NAME)?.header ?? \"\",\n moreInfoHeader: fieldUtils.get(MORE_INFO)?.header ?? \"\",\n moreInfoHelpText: fieldUtils.get(MORE_INFO)?.helpText ?? \"\",\n merchandiseTemplateType: response.merchandiseTemplateType ?? \"\",\n ageRestriction: response.ageRestriction ?? \"\",\n selectedAgeRestriction: response.selectedAgeRestriction ?? \"\",\n merchandiseLabelHeader:\n fieldUtils.get(MERCHANDISE_TYPE)?.header ?? \"\",\n organisationName: fieldUtils.get(ORGANISATION)?.header ?? \"\",\n productQuantityHeader:\n fieldUtils.get(PARTICIPANTS)?.header ?? \"\",\n productQuantityHelpText:\n fieldUtils.get(PARTICIPANTS)?.helpText ?? \"\",\n productQuantityMax:\n fieldUtils\n .get(PARTICIPANTS)\n ?.validation?.maxValue?.toString() ?? \"\",\n productQuantityMin:\n fieldUtils\n .get(PARTICIPANTS)\n ?.validation?.minValue?.toString() ?? \"\",\n productQuantityMaxError:\n fieldUtils.get(PARTICIPANTS)?.validation\n ?.maxValueErrorMessage ?? \"\",\n productQuantityMinError:\n fieldUtils.get(PARTICIPANTS)?.validation\n ?.minValueErrorMessage ?? \"\",\n productCode: response.reference.productCode,\n products: response.products.map((product) => ({\n productCode: product.code,\n enabled: product.enabled ? \"Y\" : \"N\",\n type: product.type as \"pack\" | \"tshirt\",\n precedence: product.precedence,\n metaData: product.metadata,\n })),\n sourceCode: response.reference.sourceCode,\n submitButtonLabel:\n response.journeyConfig.submitButtonLabel ?? \"\",\n tShirtHeader: fieldUtils.get(T_SHIRT)?.header ?? \"\",\n termsAndConditionsHeader:\n fieldUtils.get(TERMS_AND_CONDITIONS)?.header ?? \"\",\n termsAndConditionsTextHtml:\n fieldUtils.get(TERMS_AND_CONDITIONS)?.text ?? \"\",\n typeConfig: response.journeyConfig.validActivityTypes.reduce(\n (o, key) => ({ ...o, [key]: key }),\n {}\n ),\n theme: response.journeyConfig.theme.toLowerCase() as\n | \"cruk\"\n | \"rfl\"\n | \"su2c\",\n urlName: response.url,\n metaTitle: response.metaTitle ?? \"\",\n metaDescription: response.metaDescription ?? \"\",\n });\n }\n return;\n default:\n trackDataDogError(`Unsuccessful retrieval of activity ${urlName}`);\n\n throw new Error(`Unsuccessful retrieval of activity ${urlName}`);\n }\n } catch (err) {\n trackDataDogError(\"\", { error: err });\n // eslint-disable-next-line no-console\n console.error(err);\n navigate(\"/error\");\n }\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n fetchActivityEffect();\n }, [navigate, urlName]);\n\n useEffect(() => {\n if (!activity?.loaded) {\n return;\n }\n\n // redirect to new DIY form\n if (urlName === \"fundraising-reg-pack-info\") {\n navigate(\"/diy-inspire-fundraising-pack\");\n }\n\n if (!activity.journey) {\n trackDataDogError(\"No activity journey\", {\n sourceCode: activity.sourceCode,\n });\n logError(\"E0001\", { sourceCode: activity.sourceCode });\n navigate(\"/error\");\n return;\n }\n\n if (!hasFormJourneyConfig(activity.journey)) {\n logError(\"E0002\", { journey: activity.journey });\n navigate(\"/error\");\n return;\n }\n\n // Specific for sports external journey\n pushDataLayerLoaded(activity, eventCode);\n\n if (activity.activityStatus !== \"active\" && !isErrorPage) {\n navigate(`/${activity.urlName}/error/closed`);\n }\n });\n\n if (!activity?.loaded) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default ActivityContainer;\n","import { createContext, Dispatch, SetStateAction } from \"react\";\n\nexport type RegistrationType = {\n dateOfBirthDay: string;\n dateOfBirthMonth: string;\n dateOfBirthYear: string;\n firstName: string;\n lastName: string;\n emailAddress: string;\n phoneNumber: string;\n country: string;\n fundraisingTarget: string;\n addressLine1: string;\n addressLine2: string;\n addressLine3: string;\n city: string;\n postcode: string;\n validated: boolean;\n optInEmail: \"yes\" | \"no\" | \"unknown\";\n optInText: \"yes\" | \"no\" | \"unknown\";\n optInPost: \"yes\" | \"no\" | \"unknown\";\n optInPhone: \"yes\" | \"no\" | \"unknown\";\n optInMerchandise: \"yes\" | \"no\" | \"unknown\";\n deliveryMethod: \"email\" | \"post\" | undefined;\n activityType: string;\n activityDateTime: string;\n moreInfo: string;\n restriction: \"yes\" | \"no\";\n restrictionCode: string;\n tShirtSize: string;\n tshirtVestSize: string;\n maleFemaleStyles: string;\n contactCentreSportsProductLookUp: Array;\n celebrationDateDay: string;\n celebrationDateMonth: string;\n celebrationDateYear: string;\n organisationName: string;\n productQuantity: string;\n ironOnText: string;\n haveEnteredEvent: boolean;\n tshirtOrVest: string;\n eventName?: string | undefined;\n eventCode?: string | undefined | null;\n eventTypes?: Array | undefined;\n eventStart?: string | undefined;\n isGenericEvent?: boolean | undefined;\n hasOnlineFundraisingPage?: \"yes\" | \"no\" | undefined;\n supporterNeedPack?: \"yes\" | \"no\" | undefined;\n addressActiveOption?: string | undefined;\n addressSearchStatus?: string | undefined;\n informationLookingFor?: string | undefined;\n informationLookingForFreeText?: string | undefined;\n};\n\nconst initialValue: {\n registration: RegistrationType;\n setRegistration: Dispatch>;\n} = {\n registration: {\n dateOfBirthDay: \"\",\n dateOfBirthMonth: \"\",\n dateOfBirthYear: \"\",\n firstName: \"\",\n lastName: \"\",\n emailAddress: \"\",\n phoneNumber: \"\",\n country: \"\",\n fundraisingTarget: \"\",\n addressLine1: \"\",\n addressLine2: \"\",\n addressLine3: \"\",\n city: \"\",\n postcode: \"\",\n validated: false,\n optInEmail: \"unknown\",\n optInText: \"unknown\",\n optInPost: \"yes\",\n optInPhone: \"yes\",\n optInMerchandise: \"unknown\",\n deliveryMethod: undefined,\n activityType: \"\",\n activityDateTime: \"\",\n moreInfo: \"\",\n restriction: \"no\",\n restrictionCode: \"\",\n tShirtSize: \"\",\n tshirtVestSize: \"\",\n maleFemaleStyles: \"\",\n contactCentreSportsProductLookUp: [],\n celebrationDateDay: \"\",\n celebrationDateMonth: \"\",\n celebrationDateYear: \"\",\n organisationName: \"\",\n productQuantity: \"\",\n ironOnText: \"\",\n haveEnteredEvent: false,\n tshirtOrVest: \"\",\n eventName: \"\",\n eventCode: \"\",\n eventTypes: [],\n eventStart: \"\",\n isGenericEvent: false,\n hasOnlineFundraisingPage: undefined,\n supporterNeedPack: undefined,\n addressActiveOption: undefined,\n addressSearchStatus: undefined,\n },\n setRegistration() {},\n};\n\nconst RegistrationContext = createContext(initialValue);\n\nexport default RegistrationContext;\n","export default function isUkCountry(country: string): boolean {\n return [\"GBR\", \"IMN\", \"GGY\", \"JEY\"].includes(country);\n}\n","// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { RegistrationType } from \"../contexts/RegistrationContext\";\nimport isUkCountry from \"./isUkCountry\";\n\nfunction transformName(name: string) {\n return name\n .trim()\n .toLowerCase()\n .replace(/\\s+/g, \" \") // multiple spaces => single space\n .replace(/[‘’]/g, \"'\") // curly quote => straight quote\n .replace(/\\s?(['-])\\s?/g, \"$1\") // space around quote or dash => no space\n .replace(/^mc(.)/, (_, c) => `Mc${c.toUpperCase()}`) // mcmanus => McManus\n .replace(/^mac(.)/, (_, c) => `Mac${c.toUpperCase()}`) // macdonald => MacDonald\n .replace(/^(.)|['.-\\s](.)|\\s/g, (c) => c.toUpperCase()); // sophie ellis-bextor => Sophie Ellis-Bextor\n}\n\nfunction transformEmailAddress(emailAddress: string) {\n return emailAddress.trim().toLowerCase();\n}\n\nfunction transformAddressLine(addressLine: string) {\n return addressLine\n .trim()\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .replace(/[^a-zA-Z0-9 \\-/'.]/g, \"\")\n .replace(/^(.)|['.-\\s](.)|\\s/g, (c) => c.toUpperCase());\n}\n\nfunction transformCity(city: string) {\n return city.trim().toUpperCase().replace(/\\s+/g, \" \");\n}\n\nfunction transformPostcodeIntl(postcode: string) {\n return postcode.trim() === \"\"\n ? \"00000\"\n : postcode.trim().toUpperCase().replace(/\\s+/g, \" \");\n}\n\nfunction transformPostcodeUk(postcode: string) {\n const pc = postcode.toUpperCase().replace(/[^a-zA-Z0-9]/g, \"\");\n\n return `${pc.substr(0, pc.length - 3)} ${pc.substr(pc.length - 3, 3)}`;\n}\n\nfunction transformCelebrationDate(\n celebrationDateDay: string,\n celebrationDateMonth: string,\n celebrationDateYear: string\n) {\n const celebrationDate = new Date(\n Date.UTC(\n parseInt(celebrationDateYear, 10),\n parseInt(celebrationDateMonth, 10) - 1,\n parseInt(celebrationDateDay, 10),\n 12, // this makes daylight savings go away\n 0\n )\n );\n\n return `${celebrationDate.toISOString().split(\".\")[0]}Z`;\n}\n\nexport default function transform({\n firstName,\n lastName,\n emailAddress,\n country,\n addressLine1,\n addressLine2,\n addressLine3,\n city,\n postcode,\n celebrationDateDay,\n celebrationDateMonth,\n celebrationDateYear,\n activityDateTime,\n ironOnText,\n hasOnlineFundraisingPage,\n tshirtVestSize,\n maleFemaleStyles,\n contactCentreSportsProductLookUp,\n haveEnteredEvent,\n tshirtOrVest,\n ...registration\n}: RegistrationType): RegistrationType {\n const newRegistration = {\n ...registration,\n firstName: firstName ? transformName(firstName) : \"\",\n lastName: lastName ? transformName(lastName) : \"\",\n emailAddress: emailAddress ? transformEmailAddress(emailAddress) : \"\",\n country: country || \"\",\n addressLine1: addressLine1 ? transformAddressLine(addressLine1) : \"\",\n addressLine2: addressLine2 ? transformAddressLine(addressLine2) : \"\",\n addressLine3: addressLine3 ? transformAddressLine(addressLine3) : \"\",\n city: city ? transformCity(city) : \"\",\n postcode: isUkCountry(country)\n ? postcode\n ? transformPostcodeUk(postcode)\n : \"\"\n : postcode === \"\"\n ? transformPostcodeIntl(postcode)\n : postcode\n ? transformPostcodeIntl(postcode)\n : \"\",\n celebrationDateDay: celebrationDateDay || \"\",\n celebrationDateMonth: celebrationDateMonth || \"\",\n celebrationDateYear: celebrationDateYear || \"\",\n activityDateTime:\n celebrationDateDay && celebrationDateMonth && celebrationDateYear\n ? transformCelebrationDate(\n celebrationDateDay,\n celebrationDateMonth,\n celebrationDateYear\n )\n : activityDateTime,\n ironOnText: ironOnText || \"\",\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n maleFemaleStyles: maleFemaleStyles || \"\",\n contactCentreSportsProductLookUp: contactCentreSportsProductLookUp || \"\",\n haveEnteredEvent,\n tshirtOrVest: tshirtOrVest || \"\",\n tshirtVestSize: tshirtVestSize || \"\",\n hasOnlineFundraisingPage: hasOnlineFundraisingPage || undefined,\n };\n\n if (newRegistration.addressLine1 === newRegistration.addressLine2) {\n newRegistration.addressLine2 = \"\";\n }\n\n if (\n newRegistration.addressLine1 === newRegistration.addressLine3 ||\n newRegistration.addressLine2 === newRegistration.addressLine3\n ) {\n newRegistration.addressLine3 = \"\";\n }\n\n if (newRegistration.addressLine2 === \"\") {\n newRegistration.addressLine2 = newRegistration.addressLine3;\n newRegistration.addressLine3 = \"\";\n }\n\n return newRegistration;\n}\n","import { FC, useEffect, useState } from \"react\";\nimport RegistrationContext, {\n RegistrationType,\n} from \"../contexts/RegistrationContext\";\nimport transform from \"../utils/transform\";\n\nconst RegistrationContainer: FC = ({ children }) => {\n const [registration, setRegistration] = useState({\n dateOfBirthDay: \"\",\n dateOfBirthMonth: \"\",\n dateOfBirthYear: \"\",\n firstName: \"\",\n lastName: \"\",\n emailAddress: \"\",\n phoneNumber: \"\",\n country: \"GBR\",\n fundraisingTarget: \"\",\n addressLine1: \"\",\n addressLine2: \"\",\n addressLine3: \"\",\n city: \"\",\n postcode: \"\",\n validated: false,\n optInEmail: \"unknown\",\n optInText: \"unknown\",\n optInPost: \"yes\",\n optInPhone: \"yes\",\n optInMerchandise: \"unknown\",\n deliveryMethod: undefined,\n activityType: \"\",\n activityDateTime: \"\",\n moreInfo: \"\",\n restriction: \"no\",\n restrictionCode: \"\",\n tShirtSize: \"\",\n tshirtVestSize: \"\",\n maleFemaleStyles: \"\",\n contactCentreSportsProductLookUp: [],\n celebrationDateDay: \"\",\n celebrationDateMonth: \"\",\n celebrationDateYear: \"\",\n organisationName: \"\",\n productQuantity: \"\",\n ironOnText: \"\",\n haveEnteredEvent: false,\n tshirtOrVest: \"\",\n eventName: \"\",\n eventCode: \"\",\n eventTypes: [],\n eventStart: \"\",\n isGenericEvent: false,\n hasOnlineFundraisingPage: undefined,\n supporterNeedPack: undefined,\n informationLookingFor: \"\",\n informationLookingForFreeText: \"\",\n });\n\n function debug() {\n if (process.env.NODE_ENV === \"development\") {\n console.groupCollapsed(\n `%cRegistration`,\n \"font-weight: bold; color: rebeccapurple;\"\n );\n console.log(registration);\n console.groupEnd();\n console.groupCollapsed(\n `%cTransform(Registration)`,\n \"font-weight: bold; color: rebeccapurple;\"\n );\n console.log(transform(registration));\n console.groupEnd();\n }\n if (window.Cypress) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.registration = registration;\n }\n }\n\n useEffect(debug, [registration]);\n\n return (\n \n );\n};\n\nexport default RegistrationContainer;\n","// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { FormikValues } from \"formik\";\nimport * as Yup from \"yup\";\nimport { T_SHIRT } from \"../../constants/fields\";\nimport { Field, FormPage } from \"../../constants/journeys\";\nimport { JourneyTypes } from \"../../constants/journeys/journeyNames\";\nimport { ActivityType } from \"../../contexts/ActivityContext\";\nimport isUkCountry from \"../../utils/isUkCountry\";\nimport { JourneyHelper } from \"../../utils/journeyHelper\";\n\nconst AGE_16 = \"16\";\nconst AGE_18 = \"18\";\n\nexport type AgeType = typeof AGE_16 | typeof AGE_18;\n\nconst nameRegExp =\n /^[a-zA-Z '‘’\\-ƼƽÁáÀàȦȧÂâÄäǍǎĂăĀāÃãÅåĄąȺǠǡǺǻǞǟȀȁȂȃɐɑɒÆæǼǽǢǣƀɃƁɓƂƃƄƅĆćĊċĈĉČčÇçȻȼƇƈƆɔɕĎďĐđƋƌƊɗÐðƍȸDZDzdzDŽDždžƉɖȡÉéÈèĖėÊêËëĚěĔĕĒēĘęȨȩɆɇȄȅȆȇƐɛƎǝƏəɚɘɜɝɞȜȝƑƒǴǵĠġĜĝǦǧĞğĢģǤǥƓƔĤĥȞȟĦħƕǶıÍíÌìİÎîÏïǏǐĬĭĪīĨĩĮįƗȈȉȊȋƖIJijȷĴĵǰɈɉɟĸǨǩĶķƘƙĹĺĿŀĽľĻļƚȽŁłƛLJLjljȴƜŃńǸǹŇňÑñŅņƝʼnƞȠNJNjnjȵŊŋÓóÒòȮȯÔôÖöǑǒŎŏŌōÕõǪǫŐőƟØøȰȱȪȫǾǿȬȭǬǭȌȍȎȏƠơƢƣŒœȢȣƤƥɊɋȹƦŔŕŘřŖŗɌɍȐȑȒȓŚśŜŝŠšŞşȘșȿƩƧƨƪßſŤťŢţƬƭƫƮȚțȾȶÞþŦŧÚúÙùÛûÜüǓǔŬŭŪūŨũŮůŲųŰűɄǗǘǛǜǙǚǕǖȔȕȖȗƯưƱƲɅŴŵƿǷÝýŶŷÿŸȲȳɎɏƳƴŹźŻżŽžƵƶȤȥɀƷǮǯƸƹƺƾɁɂ]*$/;\nconst emailRegExp =\n /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?\\.)+[a-z][a-z]+$/i;\nconst excludedEmailDomains = [\n \"@googlemail.co.uk\",\n \"@gmail.co.uk\",\n \"@gmail.co\",\n \"@gmail.con\",\n \"@gmail.col\",\n \"@gmail.comcom\",\n \"@gmail.coma\",\n \"@gmale.com\",\n \"@gmale.co.uk\",\n \"@live.go.uk\",\n \"@live.co.um\",\n \"@live.con\",\n \"@icloud.co\",\n \"@icloud.con\",\n \"@outlook.comm\",\n \"@outlook.con\",\n \"@outlook.xom\",\n \"@yahoo.co.ik\",\n \"@yahoo.con\",\n \"@hotmail.con\",\n \"@hotmail.co.uj\",\n \"@msn.con\",\n];\nconst phoneNumberRegExp = /^(0[127]|\\+)[0-9 ]*$/;\nconst addressLine1RegExp = /^[a-zA-Z0-9\\-./'& ]*$/;\nconst addressLine23RegExp = /^[a-zA-Z0-9\\-./' ]*$/;\nconst numberRegExp = /^[0-9 ]*$/;\nconst cityRegExp = /^[a-zA-Z\\-./' ]*$/;\nconst andRegExp = /(^and | and | and$|& | &|\\+ | \\+)/;\nexport const postcodeUkRegExp =\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;\nconst postcodeIntlRegExp = /^[a-zA-Z0-9 -]+$/;\nconst ironOnTextRegExp = /^[a-z0-9£&@\\s]+$/i;\n\nconst nameExcludedValues = [\n \"anon\",\n \"anonymous\",\n \"none\",\n \"test\",\n \"undefined\",\n \"unknown\",\n];\n\nconst journeyHelper = new JourneyHelper();\n\nfunction isDateValid(\n day?: string | null,\n month?: string | null,\n year?: string | null,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n min?: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n max?: any\n) {\n if (!day || !month || !year || year.length !== 4) {\n return true;\n }\n\n const d = parseInt(day, 10);\n const m = parseInt(month, 10) - 1; // indexed from 0: Jan=0, Dec=11\n const y = parseInt(year, 10);\n\n const date = new Date(\n y,\n m,\n d,\n 12, // this makes daylight savings time go away\n 0\n );\n\n if (date > max || date < min) {\n return false;\n }\n\n return (\n y === date.getUTCFullYear() &&\n m === date.getUTCMonth() &&\n d === date.getUTCDate()\n );\n}\n\nfunction isSuporterAdult(\n selectedAgeRestriction: AgeType,\n day?: string | null,\n month?: string | null,\n year?: string | null\n) {\n const cutoff = new Date();\n cutoff.setFullYear(cutoff.getFullYear() - Number(selectedAgeRestriction));\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n const birthdate = new Date(`${year}-${month}-${day}`);\n return birthdate <= cutoff;\n}\n\nexport const dateOfBirthDay = Yup.string()\n .trim()\n .test(\n \"date-not-empty\",\n \"Please enter your date of birth.\",\n function checkRequiredDOB(doBDD) {\n return (\n doBDD || this.parent.dateOfBirthMonth || this.parent.dateOfBirthYear\n );\n }\n )\n .test(\n \"day-month\",\n \"Date of birth must include a day and a month.\",\n function checkDOBIncludeDayMonth(doBDD) {\n return this.parent.dateOfBirthMonth || doBDD;\n }\n )\n .test(\n \"day-year\",\n \"Date of birth must include a day and a year.\",\n function checkDOBIncludeDayYear(doBDD) {\n return this.parent.dateOfBirthYear || doBDD;\n }\n )\n .required(\"Date of birth must include a day.\")\n\n .test(\n \"date-valid\",\n \"Please enter a real date.\",\n function checkRealDate(doBDD) {\n return isDateValid(\n doBDD,\n this.parent.dateOfBirthMonth,\n this.parent.dateOfBirthYear,\n new Date(1900, 0),\n new Date()\n );\n }\n );\n\nexport const dateOfBirthMonth = Yup.string()\n .trim()\n .test(\n \"date-not-empty\",\n \"Please enter your date of birth.\",\n function checkRequiredDOB(doBMM) {\n return this.parent.dateOfBirthDay || doBMM || this.parent.dateOfBirthYear;\n }\n )\n .test(\n \"month-year\",\n \"Date of birth must include a month and a year.\",\n function checkDOBMonthYear(doBMM) {\n return this.parent.dateOfBirthYear || doBMM;\n }\n )\n .required(\"Date of birth must include a month.\")\n .test(\n \"date-valid\",\n \"Please enter a real date.\",\n function checkRealDate(doBMM) {\n return isDateValid(\n this.parent.dateOfBirthDay,\n doBMM,\n this.parent.dateOfBirthYear,\n new Date(1900, 0),\n new Date()\n );\n }\n );\n\nexport const dateOfBirthYear = Yup.string()\n .trim()\n .min(4, \"Year must contain 4 numbers.\")\n .max(4, \"Year must contain 4 numbers.\")\n .test(\n \"date-not-empty\",\n \"Please enter your date of birth.\",\n function checkRequiredDOB(doBYYYY) {\n return (\n this.parent.dateOfBirthDay || this.parent.dateOfBirthMonth || doBYYYY\n );\n }\n )\n .required(\"Date of birth must include a year.\")\n .test(\n \"date-valid\",\n \"Please enter a real date.\",\n function checkRealDate(doBYYYY) {\n return isDateValid(\n this.parent.dateOfBirthDay,\n this.parent.dateOfBirthMonth,\n doBYYYY,\n new Date(1900, 0),\n new Date()\n );\n }\n );\n\nexport const dateOfBirthYearForSFChallenge = (\n selectedAgeRestriction: AgeType\n) =>\n Yup.string()\n .trim()\n .min(4, \"Year must contain 4 numbers.\")\n .max(4, \"Year must contain 4 numbers.\")\n .test(\n \"date-not-empty\",\n \"Please enter your date of birth.\",\n function checkRequiredDOB(doBYYYY) {\n return (\n this.parent.dateOfBirthDay || this.parent.dateOfBirthMonth || doBYYYY\n );\n }\n )\n .required(\"Date of birth must include a year.\")\n .test(\n \"date-valid\",\n \"Please enter a real date.\",\n function checkRealDate(doBYYYY) {\n return isDateValid(\n this.parent.dateOfBirthDay,\n this.parent.dateOfBirthMonth,\n doBYYYY,\n new Date(1900, 0),\n new Date()\n );\n }\n )\n .test(\n \"adult-valid\",\n selectedAgeRestriction === AGE_16\n ? \"This challenge is not suitable for supporters who are under 16 years of age.\"\n : \"This challenge is not suitable for supporters who are under 18 years of age.\",\n function checkAdult(doBYYYY) {\n return isSuporterAdult(\n selectedAgeRestriction,\n this.parent.dateOfBirthDay,\n this.parent.dateOfBirthMonth,\n doBYYYY\n );\n }\n );\n\nexport const celebrationDateDay = Yup.string()\n .trim()\n .test(\n \"date-not-empty\",\n \"Please enter the date of your celebration.\",\n // eslint-disable-next-line func-names\n function (celebrationDD) {\n return (\n celebrationDD ||\n this.parent.celebrationDateMonth ||\n this.parent.celebrationDateYear\n );\n }\n )\n .test(\n \"day-month\",\n \"Date of your celebration must include a day and a month.\",\n // eslint-disable-next-line func-names\n function (celebrationDD) {\n return this.parent.celebrationDateMonth || celebrationDD;\n }\n )\n .test(\n \"day-year\",\n \"Date of your celebration must include a day and a year.\",\n // eslint-disable-next-line func-names\n function (celebrationDD) {\n return this.parent.celebrationDateYear || celebrationDD;\n }\n )\n .required(\"Date of your celebration must include a day.\")\n // eslint-disable-next-line func-names\n .test(\"date-valid\", \"Please enter a real date.\", function (celebrationDD) {\n return isDateValid(\n celebrationDD,\n this.parent.celebrationDateMonth,\n this.parent.celebrationDateYear,\n new Date()\n );\n });\n\nexport const celebrationDateMonth = Yup.string()\n .trim()\n .test(\n \"date-not-empty\",\n \"Please enter the date of your celebration.\",\n // eslint-disable-next-line func-names\n function (celebrationDDMM) {\n return (\n this.parent.celebrationDateDay ||\n celebrationDDMM ||\n this.parent.celebrationDateYear\n );\n }\n )\n .test(\n \"month-year\",\n \"Date of your celebration must include a month and a year.\",\n // eslint-disable-next-line func-names\n function (celebrationDDMM) {\n return this.parent.celebrationDateYear || celebrationDDMM;\n }\n )\n .required(\"Date of your celebration must include a month.\")\n // eslint-disable-next-line func-names\n .test(\"date-valid\", \"Please enter a real date.\", function (celebrationDDMM) {\n return isDateValid(\n this.parent.celebrationDateDay,\n celebrationDDMM,\n this.parent.celebrationDateYear,\n new Date()\n );\n });\n\nexport const celebrationDateYear = Yup.string()\n .trim()\n .min(4, \"Year must contain 4 numbers.\")\n .max(4, \"Year must contain 4 numbers.\")\n .test(\n \"date-not-empty\",\n \"Please enter the date of your celebration.\",\n // eslint-disable-next-line func-names\n function (celebrationDDYYYY) {\n return (\n this.parent.celebrationDateDay ||\n this.parent.celebrationDateMonth ||\n celebrationDDYYYY\n );\n }\n )\n .required(\"Date of your celebration must include a year.\")\n // eslint-disable-next-line @typescript-eslint/no-shadow\n .test(\n \"date-valid\",\n \"Please enter a real date.\",\n // eslint-disable-next-line func-names\n function (celebrationDDYYYY) {\n return isDateValid(\n this.parent.celebrationDateDay,\n this.parent.celebrationDateMonth,\n celebrationDDYYYY,\n new Date()\n );\n }\n );\n\nexport const firstName = Yup.string()\n .trim()\n .min(2, \"Please enter your first name, between 2-50 characters.\")\n .max(50, \"Please enter your first name, between 2-50 characters.\")\n .lowercase()\n .test(\n \"and\",\n \"Please enter only one person's name.\",\n (first_Name) => !first_Name?.match(andRegExp)\n )\n .notOneOf(nameExcludedValues, \"Please enter a valid first name.\")\n .test(\n \"not-excluded-value\",\n \"Please enter a valid first name.\",\n (first_Name) =>\n !first_Name || !nameExcludedValues.includes(first_Name.toLowerCase())\n )\n .matches(nameRegExp, \"Please only use letters and hyphens.\")\n .required(\"Please enter your first name.\");\n\nexport const lastName = Yup.string()\n .trim()\n .min(2, \"Please enter your last name, between 2-50 characters.\")\n .max(50, \"Please enter your last name, between 2-50 characters.\")\n .lowercase()\n .test(\n \"and\",\n \"Please enter only one person's name.\",\n (last_Name) => !last_Name?.match(andRegExp)\n )\n .notOneOf(nameExcludedValues, \"Please enter a valid last name.\")\n .test(\n \"not-excluded-value\",\n \"Please enter a valid last name.\",\n (last_Name) =>\n !last_Name || !nameExcludedValues.includes(last_Name.toLowerCase())\n )\n .matches(nameRegExp, \"Please only use letters and hyphens.\")\n .required(\"Please enter your last name.\");\n\nexport const emailAddress = Yup.string()\n .trim()\n .max(\n 100,\n \"Please enter your email address. Over 100 characters is not accepted.\"\n )\n .matches(emailRegExp, \"Please enter a valid email address.\")\n .required(\"Please enter your email address.\")\n .test(\"not-excluded-email\", \"Please enter a valid email address.\", (email) =>\n Boolean(\n email &&\n !excludedEmailDomains.find((domain) =>\n email.toLocaleLowerCase().endsWith(domain)\n )\n )\n );\n\nexport const phoneNumber = Yup.string()\n .trim()\n .min(11, \"Please enter a valid phone number between 11-15 characters.\")\n .max(15, \"Please enter a valid phone number between 11-15 characters.\")\n .matches(\n phoneNumberRegExp,\n \"Please enter a valid phone number between 11-15 characters.\"\n );\n\nexport const phoneNumberRequired = phoneNumber.required(\n \"Please enter your phone number.\"\n);\n\nexport const country = Yup.string().required();\n\nexport const addressLine1 = Yup.string()\n .trim()\n .min(3, \"Please enter your address between 3-100 characters.\")\n .max(100, \"Please enter your address between 3-100 characters.\")\n .test(\n \"not-only-number\",\n \"Please enter a valid address.\",\n (address) => !address?.match(numberRegExp)\n )\n .matches(addressLine1RegExp, \"Please enter a valid address.\")\n .required(\"Please enter your address.\")\n .test(\n \"not-match-with-postcode\",\n \"Address line 1 should not contain a postcode\",\n (address) => !address?.match(postcodeUkRegExp)\n );\n\nexport const addressLine2 = Yup.string()\n .trim()\n .max(100, \"Please enter your address between 0-100 characters.\")\n .test(\n \"not-only-number\",\n \"Please enter a valid address.\",\n (address) => !address?.match(numberRegExp)\n )\n .matches(addressLine23RegExp, \"Please enter a valid address.\");\n\nexport const addressLine3 = addressLine2;\n\nexport const city = Yup.string()\n .trim()\n .min(2, \"Please enter your town between 2-50 characters.\")\n .max(50, \"Please enter your town. Over 50 characters is not accepted.\")\n .matches(cityRegExp, \"Please only use letters and the following: - ' / .\")\n .required(\"Please enter your town or city.\");\n\nexport const postcode = Yup.string()\n .trim()\n .min(2, \"Please enter your postcode between 2-8 characters.\")\n .max(8, \"Please enter your postcode between 2-8 characters.\")\n .when(\"country\", {\n is: (countryName: string) => isUkCountry(countryName),\n then: Yup.string()\n .trim()\n .required(\"Please enter your postcode.\")\n .matches(postcodeUkRegExp, \"Please enter a valid postcode.\"),\n otherwise: Yup.string()\n .trim()\n .matches(postcodeIntlRegExp, \"Please enter a valid postcode.\"),\n });\n\nexport const fundraisingTarget = Yup.number()\n .min(1, \"Please enter a number between 1 and 10000000\")\n .max(10000000, \"Please enter a number between 1 and 10000000\");\n\nexport const moreInfo = Yup.string().max(\n 2000,\n \"Please use less than 2000 characters.\"\n);\n\nexport const activityType = Yup.string()\n .trim()\n .min(1, \"Please enter an activity type.\")\n .required(\"What fundraising activity are you planning? field is required.\");\n\nexport const tShirtSize = (optInMerchandise: boolean) => {\n if (optInMerchandise) {\n return Yup.string().required(\"You must select a T-shirt size.\");\n }\n return Yup.string();\n};\n\nexport const tshirtVestSize = Yup.string()\n .when(\"tshirtOrVest\", {\n is: \"tshirt\",\n then: Yup.string().required(\"You must select a size for your top.\"),\n })\n .when(\"tshirtOrVest\", {\n is: \"vest\",\n then: Yup.string().required(\"You must select a size for your top.\"),\n });\n\nexport const maleFemaleStyles = Yup.string()\n .when(\"tshirtOrVest\", {\n is: \"tshirt\",\n then: Yup.string().required(\"You must select a male or female style.\"),\n })\n .when(\"tshirtOrVest\", {\n is: \"vest\",\n then: Yup.string().required(\"You must select a male or female style.\"),\n });\n\nexport const organisationName = Yup.string()\n .trim()\n .required(\"Organisation name field is required.\")\n .min(2, \"Please enter your organisation name, between 2-255 characters.\")\n .max(255, \"Please enter your organisation name, between 2-255 characters.\");\n\nexport const eventName = Yup.string()\n .trim()\n .required(\"Event name is required.\");\n\nexport const addressActiveOption = Yup.string().trim();\n\nexport const productQuantity = (\n productQuantityMin: number,\n productQuantityMax: number,\n productQuantityMinError: string,\n productQuantityMaxError: string\n) =>\n Yup.number()\n .min(productQuantityMin, productQuantityMinError)\n .max(productQuantityMax, productQuantityMaxError)\n .required(\n \"How many participants do you expect at your event? field is required.\"\n );\n\nexport const ironOnText = Yup.string()\n .trim()\n .matches(ironOnTextRegExp, \"Please do not enter invalid characters.\")\n .test({\n name: \"max\",\n exclusive: true,\n params: { max: 10 },\n message: `You can enter a maximum of 10 letters.`,\n test: (value) => {\n if (value) {\n if (/\\s/.test(value)) {\n const removeWhiteSpaceString = value.replace(/\\s+/g, \"\");\n if (removeWhiteSpaceString.length <= 10) {\n return true;\n }\n return false;\n }\n return !!(value.length <= 10);\n }\n return true;\n },\n });\n\nexport const haveEnteredEvent = Yup.bool().oneOf(\n [true],\n \"Please confirm that you already have a place in this event by ticking the checkbox\"\n);\n\nexport const tshirtOrVest = Yup.string().required(\"Please select an option\");\n\nexport const optInMerchandise = Yup.string()\n .trim()\n .oneOf([\"yes\", \"no\"], \"Please select an option.\");\n\nexport const hasOnlineFundraisingPage = Yup.string()\n .trim()\n .required(\"Please select an option.\");\n\nexport const supporterNeedPack = Yup.string().required(\n \"Please select an option\"\n);\n\nexport const informationLookingFor = Yup.string()\n .trim()\n .required(\"Please select an option.\");\n\nexport const informationLookingForFreeText = Yup.string()\n .trim()\n .max(2000, \"Please use less than 2000 characters.\")\n .when(\"informationLookingFor\", {\n is: \"Other\",\n then: Yup.string().required(\"Please provide a reason.\"),\n });\n\nexport function makeValidationSchema(\n formConfig: FormPage,\n journey: JourneyTypes,\n activity: ActivityType,\n optInOrOutMerchandise: boolean | null,\n enabledExperimentGIWGVariation: boolean | undefined\n) {\n const resultSchema: FormikValues = {};\n\n if (formConfig.fields.includes(Field.FIRST_NAME)) {\n resultSchema.firstName = firstName;\n }\n\n if (formConfig.fields.includes(Field.LAST_NAME)) {\n resultSchema.lastName = lastName;\n }\n\n if (formConfig.fields.includes(Field.DATE_OF_BIRTH)) {\n resultSchema.dateOfBirthDay = dateOfBirthDay;\n resultSchema.dateOfBirthMonth = dateOfBirthMonth;\n resultSchema.dateOfBirthYear =\n journeyHelper.isSocialFundraisingJourney(journey) &&\n activity.ageRestriction === \"yes\"\n ? dateOfBirthYearForSFChallenge(\n activity.selectedAgeRestriction as AgeType\n )\n : dateOfBirthYear;\n }\n\n if (formConfig.fields.includes(Field.ACTIVITY_DATE)) {\n resultSchema.celebrationDateDay = celebrationDateDay;\n resultSchema.celebrationDateMonth = celebrationDateMonth;\n resultSchema.celebrationDateYear = celebrationDateYear;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (formConfig.fields.includes(Field.EMAIL_ADDRESS)) {\n resultSchema.emailAddress = emailAddress;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (formConfig.fields.includes(Field.PHONE_NUMBER)) {\n // phone number is optional, except for vf and lead-generation journeys\n resultSchema.phoneNumber =\n journey === \"vf\" ||\n journey === \"vf-fundreg\" ||\n journey === \"lead-generation-1\" ||\n journey === \"gifts-in-wills-guide\" ||\n journey === \"sports-forms-contact-centre\" ||\n journey === \"sports-form\"\n ? phoneNumberRequired\n : phoneNumber;\n }\n\n if (\n formConfig.fields.includes(Field.ADDRESS) ||\n formConfig?.secondaryFields?.includes(Field.ADDRESS)\n ) {\n resultSchema.country = country;\n resultSchema.addressLine1 = addressLine1;\n resultSchema.addressLine2 = addressLine2;\n resultSchema.addressLine3 = addressLine3;\n resultSchema.city = city;\n resultSchema.postcode = postcode;\n resultSchema.addressActiveOption = addressActiveOption;\n }\n\n if (formConfig.fields.includes(Field.FUNDRAISING_TARGET)) {\n resultSchema.fundraisingTarget = fundraisingTarget;\n }\n\n if (formConfig.fields.includes(Field.ACTIVITY_TYPE)) {\n resultSchema.activityType = activityType;\n }\n\n if (formConfig.fields.includes(Field.MORE_INFO)) {\n resultSchema.moreInfo = moreInfo;\n }\n\n if (formConfig.fields.includes(Field.T_SHIRT_SIZE)) {\n const optInTSshirt =\n (optInOrOutMerchandise && activity.merchandiseTemplateType === T_SHIRT) ||\n journey !== \"sf-challenges\";\n // FIXME - remove challenge requirement following results of test.\n resultSchema.tShirtSize = tShirtSize(optInTSshirt);\n }\n\n if (formConfig.fields.includes(Field.RADIO_SELECT_T_SHIRT_VEST_SIZE)) {\n resultSchema.tshirtVestSize = tshirtVestSize;\n }\n\n if (formConfig.fields.includes(Field.MALE_FEMALE_STYLES)) {\n resultSchema.maleFemaleStyles = maleFemaleStyles;\n }\n\n if (formConfig.fields.includes(Field.ORGANISATION_NAME)) {\n resultSchema.organisationName = organisationName;\n }\n\n if (formConfig.fields.includes(Field.PRODUCT_QUANTITY)) {\n resultSchema.productQuantity = productQuantity(\n parseInt(activity.productQuantityMin, 10),\n parseInt(activity.productQuantityMax, 10),\n activity.productQuantityMinError,\n activity.productQuantityMaxError\n );\n }\n\n if (formConfig.fields.includes(Field.IRON_ON_TEXT)) {\n resultSchema.ironOnText = ironOnText;\n }\n\n if (formConfig.fields.includes(Field.HAVE_ENTERED_EVENT)) {\n resultSchema.haveEnteredEvent = haveEnteredEvent;\n }\n\n if (formConfig.fields.includes(Field.T_SHIRT_OR_VEST)) {\n resultSchema.tshirtOrVest = tshirtOrVest;\n }\n\n if (formConfig.fields.includes(Field.EVENT_LOOKUP)) {\n resultSchema.eventName = eventName;\n }\n\n if (formConfig.fields.includes(Field.HAS_ONLINE_FUNDRAISING_PAGE)) {\n resultSchema.hasOnlineFundraisingPage = hasOnlineFundraisingPage;\n }\n\n if (formConfig.fields.includes(Field.SUPPORTER_NEED_PACK)) {\n resultSchema.supporterNeedPack = supporterNeedPack;\n }\n\n if (formConfig.fields.includes(Field.MERCHANDISE_TYPE)) {\n resultSchema.optInMerchandise = optInMerchandise;\n }\n\n // Temporary for A/B testing in GIWG Journey\n if (\n formConfig.fields.includes(Field.INFORMATION_LOOKING_FOR) &&\n enabledExperimentGIWGVariation\n ) {\n resultSchema.informationLookingFor = informationLookingFor;\n resultSchema.informationLookingForFreeText = informationLookingForFreeText;\n }\n\n return Yup.object().shape(resultSchema);\n}\n","import { Link, Text } from \"@cruk/cruk-react-components\";\nimport ReactMarkdown, { ReactElement } from \"react-markdown\";\n\n/**\n * Renders custom text\n *\n * This function converts provided activity custom text (in markdown)\n * into it's associated react components. It is used such that\n * admins can insert custom text displays into the form. The\n * custom markdown format text handles:\n * * Line breaks\n * * Embedded links\n * * Un-ordered lists\n * * Ordered lists\n *\n * This restriction on what the user can provide was done to minimize\n * complexity and reduce the potential for activity admins to create\n * security flaws, style misalignments and broken activity pages.\n *\n * @param value custom text to render\n * @returns rendered react components\n */\nexport default function renderCustomText(value: string): ReactElement {\n return (\n (\n \n ),\n p: ({ node, ...props }: any) => ,\n }}\n />\n );\n}\n","import { Box, Collapse, Text } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../types\";\nimport renderCustomText from \"../utils/renderCustomText\";\n\n/**\n * Renders a collapsible section with a label and content.\n * The collapsible sectionis used to provide additional information to the supporter,\n * such as explaining why certain information is needed.\n * @param {FormFieldProps} props - The properties passed into the component.\n * @param {Object} props.formJourneyPage - The form journey page object containing the collapse label and content.\n * @param {string} props.formJourneyPage.collapseLabel - The label for the collapsible section. - The label for the collapsible section.\n * @param {string} props.formJourneyPage.collapseContent - The content for the collapsible section.\n * @param {boolean} [props.formJourneyPage.secondaryHeading] - Optional flag to adjust the margin based on the presence of a secondary heading.\n *\n * @returns {JSXElementConstructor.Element|null} - The collapsible section with the label and content, or null if the label or content is not provided.\n */\nconst FormCollapseLabelWhyDoWeNeedThis = ({\n formJourneyPage: { collapseLabel, collapseContent, secondaryHeading },\n}: FormFieldProps) => {\n return collapseLabel && collapseContent ? (\n \n \n {renderCustomText(collapseContent)}\n \n \n ) : null;\n};\n\nexport default FormCollapseLabelWhyDoWeNeedThis;\n","import { Box, Heading } from \"@cruk/cruk-react-components\";\n\nconst FormPageBannerText = ({ bannerText }: { bannerText: string }) => {\n return bannerText ? (\n \n \n {bannerText}\n \n \n ) : null;\n};\n\nexport default FormPageBannerText;\n","import { Box, Button } from \"@cruk/cruk-react-components\";\nimport { BackAction } from \"../constants/journeys\";\nimport { RegistrationType } from \"../contexts/RegistrationContext\";\nimport { FormFieldProps } from \"../types\";\nimport StepsButtonWrapper from \"./StepButtonsWrapper\";\nimport SubmitButton from \"./SubmitButton\";\n\nconst FormSubmitNextAndBackButton = ({\n values,\n isSubmitting,\n submitted,\n previousPage,\n formJourneyPage: { backLinkLabel, backLinkAction, submitButtonLabel },\n}: FormFieldProps) => {\n function handleBack(values: RegistrationType) {\n if (backLinkAction === BackAction.BACK) {\n previousPage(values);\n }\n }\n return backLinkAction === BackAction.BACK || submitButtonLabel ? (\n \n {submitButtonLabel && (\n \n \n {isSubmitting ? \"Submitting...\" : submitButtonLabel}\n \n \n )}\n\n {backLinkAction === BackAction.BACK && (\n handleBack(values as RegistrationType)}\n >\n {backLinkLabel}\n \n )}\n \n ) : null;\n};\n\nexport default FormSubmitNextAndBackButton;\n","/* eslint-disable eslint-comments/disable-enable-pair */\n\n/* eslint-disable no-bitwise */\nimport { FC } from \"react\";\nimport { useFormikContext } from \"formik\";\n\nfunction notEmpty(value: T | null): value is T {\n return value !== null;\n}\n\nfunction comparator(a: Element, b: Element) {\n if (a === b) {\n return 0;\n }\n\n // returns a bitmask describing relationship between these two elements\n const position = a.compareDocumentPosition(b);\n\n if (\n position & Node.DOCUMENT_POSITION_FOLLOWING ||\n position & Node.DOCUMENT_POSITION_CONTAINED_BY\n ) {\n // a is before b\n return -1;\n }\n if (\n position & Node.DOCUMENT_POSITION_PRECEDING ||\n position & Node.DOCUMENT_POSITION_CONTAINS\n ) {\n // a is after b\n return 1;\n }\n return 0;\n}\n\nconst ScrollToError: FC = () => {\n const { errors, isSubmitting } = useFormikContext();\n\n if (isSubmitting && errors) {\n // find the input elements by name with errors from formik\n const elements = Object.keys(errors)\n .map((errorKey) =>\n document.querySelector(`#page-form [name='${errorKey}']`)\n )\n .filter(notEmpty);\n\n // sort the elements in document order and take the first one\n const [first] = elements.sort(comparator);\n\n if (first instanceof HTMLElement) {\n first.focus();\n }\n }\n\n return null;\n};\n\nexport default ScrollToError;\n","import { FC } from \"react\";\nimport styled from \"styled-components/macro\";\n\nconst Main = styled.main`\n margin: ${({ theme }) => theme.spacing.xxs} auto;\n padding: ${({ theme }) => theme.spacing.xxs};\n max-width: ${({ theme }) => theme.utilities.contentMaxWidth};\n`;\n\nconst Div = styled.div`\n background-color: ${({ theme }) => theme.colors.backgroundLight};\n border: 1px solid ${({ theme }) => theme.colors.headerBorder};\n border-radius: ${({ theme }) => theme.utilities.borderRadius};\n`;\n\nconst FormPageWrapper: FC = ({ children }) => (\n
\n
{children}
\n
\n);\n\nexport default FormPageWrapper;\n","import { FC } from \"react\";\nimport styled from \"styled-components/macro\";\n\nconst Div = styled.div`\n padding: ${({ theme }) => theme.spacing.xs};\n\n @media (min-width: ${({ theme }) => theme.breakpoint.mobile}) {\n padding: ${({ theme }) => theme.spacing.xs} 25%;\n }\n`;\n\nconst FormWrapper: FC = ({ children }) =>
{children}
;\n\nexport default FormWrapper;\n","import { useContext } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport getFormJourney from \"../constants/journeys/formJourney\";\nimport ActivityContext from \"../contexts/ActivityContext\";\nimport RegistrationContext, {\n RegistrationType,\n} from \"../contexts/RegistrationContext\";\nimport { trackDataDogError } from \"../utils/dataDog\";\nimport JourneyHelper from \"../utils/journeyHelper\";\nimport useDataLayer from \"./useDataLayer\";\n\n// Custom hook that returns an object of nextPage() and previousPage() functions to\n// switch between pages of the form.\n//\n// The returned functions take an object of the current form\n// values from Formik and store them in the registration state, then do a\n// navigate() to the route of the new page.\n//\n// Example:\n// const PageComponent = () => {\n// const { nextPage, previousPage } = useNavigateToPage(\"address\");\n// const { registration } = useContext(RegistrationContext);\n//\n// const newRegistration = { ...registration, firstName: \"spongebob\" };\n//\n// return (\n// <>\n// \n// \n// \n// );\n// };\nfunction useNavigateToPage(journey: string, currentPage: string) {\n const navigate = useNavigate();\n const location = useLocation();\n const activity = useContext(ActivityContext);\n const { setRegistration } = useContext(RegistrationContext);\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { pushPageView } = useDataLayer();\n const { isSportsFormWithEventCodeJourney } = new JourneyHelper();\n\n function navigateToPage(\n values: RegistrationType,\n indexFunction: (index: number) => number\n ) {\n const formJourney = getFormJourney(journey, activity);\n // This uses the fact that key traversal is predictable in JavaScript for\n // string keys. Should this change a map or list could be used instead.\n const pages = Object.keys(formJourney.pages);\n\n const currentPageIndex = pages.indexOf(currentPage);\n const nextPageIndex = indexFunction(currentPageIndex);\n\n if (nextPageIndex >= pages.length || nextPageIndex < 0) {\n trackDataDogError(\"Attempted to navigate to an undefined page.\");\n throw new Error(\"Attempted to navigate to an undefined page.\");\n } else {\n const formConfigEntry = formJourney.pages[pages[nextPageIndex]];\n const rootPath = formConfigEntry.path === \"/\";\n const nextPath = rootPath ? `/${activity.urlName}` : formConfigEntry.path;\n const eventCode = location.search;\n const href = `${window.location.origin}/${activity.urlName}/${nextPath}`;\n\n setRegistration(values);\n\n if (\n nextPath.endsWith(\"thank-you\") &&\n isSportsFormWithEventCodeJourney(activity.journey)\n ) {\n window.location.href = href + eventCode;\n return;\n } else if (nextPath.endsWith(\"thank-you\")) {\n window.location.href = href;\n return;\n }\n\n if (\n isSportsFormWithEventCodeJourney(activity.journey) &&\n location.pathname.match(`/${activity.urlName}`)\n ) {\n navigate(nextPath + eventCode);\n } else {\n navigate(nextPath);\n }\n\n // Note: must do this after navigate() so useDataLayer() will see the new\n // value of window.location.pathname\n const pageTitle = legacyPageTitleTransform(formConfigEntry.heading);\n pushPageView(pageTitle);\n }\n }\n\n // This function is required to maintain previous behaviour with existing page\n // titles. These titles are passed to Google Tag Manager for analytics. The previous\n // implementation used the entries listed below instead of the form header in certain\n // scenarios. In most cases the header matches except for the 6 listed below.\n function legacyPageTitleTransform(pageTitle: string) {\n switch (pageTitle) {\n case \"Staying in touch with us\":\n return \"Join us\";\n case \"Personal details\":\n case \"Your details\":\n return \"Contact details\";\n case \"Challenge details\":\n case \"Your fundraising\":\n return \"Your fundraising target\";\n case \"Your organisation\":\n return \"Your address\";\n // no default\n }\n return pageTitle;\n }\n\n function nextPage(values: RegistrationType) {\n navigateToPage(values, (i) => i + 1);\n }\n\n function previousPage(values: RegistrationType) {\n navigateToPage(values, (i) => i - 1);\n }\n\n return {\n nextPage,\n previousPage,\n };\n}\n\nexport default useNavigateToPage;\n","export const getCookieValue = (value: string) => {\n return document.cookie?.match(`(^|;)\\\\s*${value}\\\\s*=\\\\s*([^;]+)`)?.pop();\n};\n","import { CookieBannerInput } from \"@cruk/activity-management-schema\";\nimport { getCookieValue } from \"./getCookieValue\";\n\nexport function cookieBannerInput(): CookieBannerInput {\n const cookieData = getCookieValue(\"OptanonConsent\");\n\n if (!cookieData) {\n return {\n fun: undefined,\n per: undefined,\n snc: undefined,\n tar: undefined,\n };\n }\n\n const cookieDataKeyValues = cookieData.split(\"&\");\n const cookieInputString = cookieDataKeyValues\n .find((string) => string.startsWith(\"groups\"))\n ?.split(\"=\")[1]!;\n\n const cookieInput = Object.fromEntries(\n decodeURIComponent(cookieInputString)\n .trim()\n .split(\",\")\n .map((keyValue) => {\n const pair = keyValue.split(\":\");\n return [pair[0], pair[1] === \"1\"];\n })\n );\n\n return {\n fun: cookieInput?.fun,\n per: cookieInput?.per,\n snc: cookieInput?.snc,\n tar: cookieInput?.tar,\n };\n}\n","import { ActivityRegistrationSuccess } from \"@cruk/activity-management-schema\";\nimport { PACK, T_SHIRT, VEST } from \"../constants/productTypes\";\nimport { ActivityType } from \"../contexts/ActivityContext\";\nimport { RegistrationType } from \"../contexts/RegistrationContext\";\nimport { submitRegistration } from \"./api/client\";\nimport { conversionInput } from \"./conversionInput\";\nimport { cookieBannerInput } from \"./cookieBannerInput\";\nimport isUkCountry from \"./isUkCountry\";\nimport { JourneyHelper } from \"./journeyHelper\";\nimport transform from \"./transform\";\n\nconst createActivityTypeSection = (\n activity: ActivityType,\n registration: RegistrationType\n) => ({\n activityType: registration.activityType || activity.activityType || undefined,\n});\n\nconst createTelephoneNumberSection = (country: string, phoneNumber: string) =>\n isUkCountry(country) && phoneNumber.indexOf(\"07\") === 0\n ? { telephoneNumberMobile: phoneNumber }\n : { telephoneNumberLandline: phoneNumber };\n\nexport async function createProcessJob(\n activity: ActivityType,\n registration: RegistrationType\n): Promise {\n const transformedRegistration = transform(registration);\n const journeyHelper = new JourneyHelper();\n\n const activityTypeSection = createActivityTypeSection(\n activity,\n transformedRegistration\n );\n const optInSocialFundrasingMerchandise =\n transformedRegistration.optInMerchandise === \"yes\";\n const telephoneNumberSection = createTelephoneNumberSection(\n transformedRegistration.country,\n transformedRegistration.phoneNumber\n );\n\n const { products } = activity;\n\n const quantity =\n transformedRegistration.productQuantity === \"\"\n ? \"1\"\n : transformedRegistration.productQuantity;\n\n const getDeliveryNote = () => {\n if (\n journeyHelper.isSocialFundraisingJourney(activity.journey) &&\n activity.merchandiseTemplateType === \"other\" &&\n registration.optInMerchandise === \"no\"\n ) {\n return \"NO PACK\";\n }\n if (journeyHelper.isSportsFormJourney(activity.journey)) {\n if (registration.supporterNeedPack === \"no\") {\n return `NO PACK,${\n registration.contactCentreSportsProductLookUp.length > 0\n ? `,${registration.contactCentreSportsProductLookUp.toString()}`\n : \"\"\n }`;\n }\n return registration.contactCentreSportsProductLookUp.toString();\n }\n return \"\";\n };\n\n const generateAttributes = (product: {\n productCode: string;\n enabled: \"Y\" | \"N\";\n type: \"pack\" | \"tshirt\" | \"vest\";\n metaData: { key: string; value: string }[];\n precedence: number;\n }) => {\n if (journeyHelper.isSportsFormJourney(activity.journey)) {\n if (product.type === T_SHIRT || product.type === VEST) {\n return [\n {\n letters: registration.ironOnText,\n },\n ];\n }\n if (product.type === PACK) {\n return [\n { \"Event Code\": registration?.eventCode },\n {\n \"Event Date\": registration?.eventStart\n ? `${new Date(registration.eventStart).getFullYear()}-${String(\n new Date(registration.eventStart).getMonth() + 1\n ).padStart(2, \"0\")}-${String(\n new Date(registration.eventStart).getDate()\n ).padStart(2, \"0\")}`\n : undefined,\n },\n { \"Event Name\": registration.eventName },\n {\n \"Activity Type\": registration?.eventTypes\n ? registration?.eventTypes[0]\n : undefined,\n },\n {\n \"Pledge Amount\": registration.fundraisingTarget\n ? parseInt(registration.fundraisingTarget, 10).toString()\n : \"0.00\",\n },\n ];\n }\n } else if (product.type === T_SHIRT) {\n return [{ letters: \"FACEBOOK\" }];\n } else if (product.productCode.startsWith(\"FB\")) {\n return [\n { \"Event Name\": activity.activityName },\n { \"Event Code\": activity.sourceCode },\n { \"Event Type\": activity.activityType },\n ];\n }\n return undefined;\n };\n\n const createOrderLines = () =>\n products\n .filter(\n (product) =>\n product.enabled === \"Y\" &&\n (product.type === PACK ||\n ((product.type === T_SHIRT || product.type === VEST) && // For sports form and generic forms which only have t-shirts\n (product.productCode === registration.tShirtSize ||\n product.productCode === registration.tshirtVestSize)) ||\n (activity.merchandiseTemplateType === T_SHIRT && // For Social Fundraising Challenge\n optInSocialFundrasingMerchandise &&\n registration.tShirtSize === product.productCode))\n )\n .map((product, index) => ({\n lineNumber: index + 1,\n quantity,\n productCode: product.productCode,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any\n attributes: generateAttributes(product) as any,\n }));\n\n const createFulfilmentSection = () => {\n const orderLines = createOrderLines();\n const deliveryNote = getDeliveryNote();\n const fulfilment = {\n orderLines: orderLines.map((orderLine) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const attributes =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n orderLine.attributes && orderLine.attributes.length > 0\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n orderLine.attributes.flatMap((attribute: any) =>\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n Object.keys(attribute).map((key) => ({\n name: key,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n value: attribute[key],\n }))\n )\n : [];\n if (transformedRegistration.activityDateTime) {\n const eventDate = new Date(transformedRegistration.activityDateTime);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n attributes.push({\n name: \"Event Date\",\n value: `${eventDate.getFullYear()}-${String(\n eventDate.getMonth() + 1\n ).padStart(2, \"0\")}-${String(eventDate.getDate()).padStart(\n 2,\n \"0\"\n )}`,\n });\n }\n return {\n lineNumber: orderLine.lineNumber,\n quantity: parseInt(orderLine.quantity, 10),\n productCode: orderLine.productCode,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n attributes,\n };\n }),\n productQuantity: journeyHelper.isSportsFormJourney(activity.journey)\n ? parseInt(quantity, 10)\n : +quantity,\n deliveryMethod: transformedRegistration.deliveryMethod ?? \"post\",\n ...(journeyHelper.isSportsFormJourney(activity.journey)\n ? { eventCode: registration.eventCode }\n : {}),\n ...(deliveryNote ? { deliveryNote } : {}),\n };\n return { fulfilment };\n };\n\n const isSocialFundraisingJourneyWithoutMerchandise =\n journeyHelper.isSocialFundraisingJourney(activity.journey) &&\n !optInSocialFundrasingMerchandise;\n\n const shouldSkipFulfilmentData = isSocialFundraisingJourneyWithoutMerchandise; // Add Condition here if you want to skip sending fulfilment object\n\n const getFulfilment = () => {\n if (shouldSkipFulfilmentData) {\n return {};\n }\n return createFulfilmentSection();\n };\n\n const restrictionSection = {\n activityResCode:\n transformedRegistration.restriction === \"yes\" &&\n transformedRegistration.restrictionCode !== \"\"\n ? transformedRegistration.restrictionCode\n : undefined,\n };\n\n const suppressionCodes = {\n email: { yes: \"PYEM\", no: \"PNEM\", unknown: \"PUEM\" },\n text: { yes: \"PYSM\", no: \"PNSM\", unknown: \"PUSM\" },\n post: { yes: \"LIPO\", no: \"PNPO\", unknown: \"LIPO\" },\n phone: { yes: \"LIPH\", no: \"PNPH\", unknown: \"LIPH\" },\n };\n\n const suppressionsSection = {\n suppressions: [\n suppressionCodes.email[transformedRegistration.optInEmail],\n suppressionCodes.post[transformedRegistration.optInPost],\n suppressionCodes.phone[transformedRegistration.optInPhone],\n suppressionCodes.text[transformedRegistration.optInText],\n ],\n };\n\n const registrationData = {\n activityId: activity.id,\n ...activityTypeSection,\n ...getFulfilment(),\n // FIXME - When the previous backend integration is removed this can be simplified such that time is in the ISO 8601 date and time format everywhere.\n activityDateTime: transformedRegistration.activityDateTime\n ? transformedRegistration.activityDateTime.replace(\"Z\", \".000Z\")\n : undefined,\n activityRestrictionCode: restrictionSection.activityResCode || undefined,\n fundraisingTarget:\n parseInt(registration.fundraisingTarget, 10) || undefined,\n moreInfo:\n transformedRegistration.moreInfo ||\n (transformedRegistration.informationLookingFor &&\n transformedRegistration.informationLookingFor === \"Other\"\n ? transformedRegistration.informationLookingForFreeText\n : transformedRegistration.informationLookingFor) ||\n undefined,\n organisationName: transformedRegistration.organisationName || undefined,\n hasOnlineFundraisingPage:\n registration.hasOnlineFundraisingPage || undefined,\n eventCode: registration.eventCode || undefined,\n };\n\n const activityFundraiserData = {\n emailAddress: transformedRegistration.emailAddress,\n dateOfBirth:\n transformedRegistration.dateOfBirthDay &&\n transformedRegistration.dateOfBirthMonth &&\n transformedRegistration.dateOfBirthYear\n ? `${transformedRegistration.dateOfBirthYear}-${String(\n transformedRegistration.dateOfBirthMonth\n ).padStart(2, \"0\")}-${String(\n transformedRegistration.dateOfBirthDay\n ).padStart(2, \"0\")}`\n : undefined,\n forename: transformedRegistration.firstName,\n surname: transformedRegistration.lastName,\n address: {\n city: transformedRegistration.city,\n country: transformedRegistration.country,\n line1: transformedRegistration.addressLine1,\n line2: transformedRegistration.addressLine2 || undefined,\n line3: transformedRegistration.addressLine3 || undefined,\n postcode: transformedRegistration.postcode,\n validated: transformedRegistration.validated,\n },\n landlineNumber: telephoneNumberSection.telephoneNumberLandline || undefined,\n mobileNumber: telephoneNumberSection.telephoneNumberMobile || undefined,\n suppressions: suppressionsSection.suppressions,\n };\n\n const conversionData = conversionInput(activity);\n\n return submitRegistration({\n registration: { ...registrationData },\n fundraiser: { ...activityFundraiserData },\n conversion: conversionData,\n cookieBanner: cookieBannerInput(),\n });\n}\n","import { ConversionInput } from \"@cruk/activity-management-schema\";\nimport { ActivityType } from \"../contexts/ActivityContext\";\nimport { getCookieValue } from \"./getCookieValue\";\nimport moment from \"moment\";\n\ntype DataLayer = {\n event: \"am_interaction\";\n interactionName: string;\n interactionAction: string;\n};\n\nexport const conversionInput = (activity: ActivityType): ConversionInput => {\n const eventId = (\n window.dataLayer?.find(\n (key) => (key as DataLayer)?.interactionName === \"eventId\"\n ) as DataLayer\n )?.interactionAction;\n\n const clientUserAgent = navigator.userAgent;\n\n return {\n eventTime: moment().utc().unix(),\n eventId,\n eventSourceUrl: `${window.location.origin}/${activity?.urlName}`,\n clientUserAgent,\n formId: activity?.id,\n activityName: activity?.activityName,\n activityUrl: activity?.urlName,\n brand: activity?.theme,\n fbc: getCookieValue(\"_fbc\"),\n fbp: getCookieValue(\"_fbp\"),\n };\n};\n","// create timestamp and text label for start of this month + 12 more\nconst dateOptions = Array.from(Array(13).keys()).map((month, index) => {\n const now = new Date();\n const then = new Date(\n Date.UTC(\n now.getFullYear(),\n now.getMonth() + month,\n index === 0 ? now.getDate() : 1,\n 12, // this makes daylight savings time go away\n 0\n )\n );\n\n return {\n value: `${then.toISOString().split(\".\")[0]}Z`,\n label: then.toLocaleString(\"en-GB\", { month: \"long\", year: \"numeric\" }),\n key: month,\n };\n});\n\nexport default dateOptions;\n","import { ChangeEvent, ChangeEventHandler } from \"react\";\nimport { RegistrationType } from \"../contexts/RegistrationContext\";\n\nfunction allowDigits(value: string) {\n return value.replace(/[^0-9]/g, \"\");\n}\n\nfunction allowDigitsAndPlus(value: string) {\n return value.replace(/[^0-9+]/g, \"\");\n}\n\nfunction filteredHandleChange(\n handleChange: ChangeEventHandler,\n values: RegistrationType,\n setValues: (values: RegistrationType) => void\n): ChangeEventHandler {\n return (event: ChangeEvent) => {\n handleChange(event);\n\n const {\n currentTarget: { name, value },\n } = event;\n\n if (name === \"dateOfBirthDay\") {\n setValues({ ...values, dateOfBirthDay: allowDigits(value) });\n } else if (name === \"dateOfBirthMonth\") {\n setValues({ ...values, dateOfBirthMonth: allowDigits(value) });\n } else if (name === \"dateOfBirthYear\") {\n setValues({ ...values, dateOfBirthYear: allowDigits(value) });\n } else if (name === \"phoneNumber\") {\n setValues({ ...values, phoneNumber: allowDigitsAndPlus(value) });\n } else if (name === \"fundraisingTarget\") {\n setValues({ ...values, fundraisingTarget: allowDigits(value) });\n } else if (name === \"productQuantity\") {\n setValues({ ...values, productQuantity: allowDigits(value) });\n }\n };\n}\n\nexport default filteredHandleChange;\n","export enum FeatureFlags {\n DEVELOPMENT_EXPERIMENT_FLAG = \"development_experiement_flag\",\n GIWG_ADDITIONAL_QUESTION = \"giwg_additional_question\",\n}\n\nexport enum FeatureFlagVariation {\n CONTROL = \"control\",\n VARIATION = \"variation\",\n ON = \"on\",\n OFF = \"off\",\n}\n\nexport enum Events {\n GIWG_SIGNUP_EVENT = \"giwg_signup_event\",\n GIWG_INFORMATION_LOOKING_FOR = \"giwg_information_looking_for\",\n}\n\nexport enum FeatureFlagPathname {\n GIWG = \"gifts-in-wills-guide\",\n}\n","// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n// eslint-disable-next-line eslint-comments/disable-enable-pair\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { ErrorText, Text, TextField } from \"@cruk/cruk-react-components\";\nimport { ChangeEventHandler, FC, InputHTMLAttributes, ReactNode } from \"react\";\nimport styled from \"styled-components/macro\";\nimport { trackDataDogError } from \"../utils/dataDog\";\n\n// type DateFieldProps = InputHTMLAttributes<{}> & {\ntype DateFieldProps = InputHTMLAttributes> & {\n label: string;\n hintText?: ReactNode;\n day: string;\n month: string;\n year: string;\n dayName?: string;\n monthName?: string;\n yearName?: string;\n dayHasError?: boolean;\n monthHasError?: boolean;\n yearHasError?: boolean;\n errorMessage?: string;\n onChange?: ChangeEventHandler;\n handleBlur?: (e: React.FocusEvent) => void;\n};\n\nconst Fieldset = styled.fieldset`\n margin: 0;\n padding: 0;\n border: 0;\n`;\n\nconst HintTextWrapper = styled.div`\n p {\n margin-bottom: 0;\n }\n\n p:last-child {\n margin-bottom: ${({ theme }) => theme.spacing.xs};\n }\n`;\n\nconst DateTextFieldWrapper = styled.div`\n display: inline-block;\n width: 60px;\n float: left;\n margin-right: ${({ theme }) => theme.spacing.xs};\n\n span {\n margin-bottom: 0.25rem; // this is smaller than xxs spacing\n font-weight: ${({ theme }) => theme.typography.fontWeightMedium};\n }\n`;\n\nconst LargeDateTextFieldWrapper = styled(DateTextFieldWrapper)`\n width: 80px;\n`;\n\nconst ErrorTextWrapper = styled.div`\n clear: left;\n`;\n\nconst DateField: FC = ({\n label,\n hintText,\n day,\n month,\n year,\n dayName = \"day\",\n monthName = \"month\",\n yearName = \"year\",\n dayHasError,\n monthHasError,\n yearHasError,\n errorMessage,\n onChange = () => {},\n handleBlur = () => {},\n // touchedAll,\n}) => (\n
\n \n {label}\n \n {hintText && {hintText}}\n \n \n \n \n \n \n \n \n \n {errorMessage && (\n \n {trackDataDogError(\"DateField\", {\n error: errorMessage,\n })}\n {errorMessage}\n \n )}\n
\n);\n\nexport default DateField;\n","import { Box, Text } from \"@cruk/cruk-react-components\";\nimport DateField from \"../../components/DateField\";\nimport { FormFieldProps } from \"../../types\";\nimport renderCustomText from \"../../utils/renderCustomText\";\n\nconst ActivityDate = ({\n values,\n field,\n touched,\n activity,\n errors,\n handleBlur,\n filterHandleChange,\n}: FormFieldProps) => {\n const touchedAll =\n touched.celebrationDateDay &&\n touched.celebrationDateMonth &&\n touched.celebrationDateYear;\n const error = touchedAll\n ? errors.celebrationDateDay ||\n errors.celebrationDateMonth ||\n errors.celebrationDateYear\n : \"\";\n\n return (\n \n \n For example 15 03 2021\n {renderCustomText(activity.activityDateHelpText)}\n \n }\n day={values.celebrationDateDay as string}\n month={values.celebrationDateMonth as string}\n year={values.celebrationDateYear as string}\n dayName=\"celebrationDateDay\"\n monthName=\"celebrationDateMonth\"\n yearName=\"celebrationDateYear\"\n dayHasError={touchedAll && !!errors.celebrationDateDay}\n monthHasError={touchedAll && !!errors.celebrationDateMonth}\n yearHasError={touchedAll && !!errors.celebrationDateYear}\n errorMessage={error}\n onChange={filterHandleChange()}\n onBlur={handleBlur}\n />\n \n );\n};\n\nexport default ActivityDate;\n","import { Box, Select } from \"@cruk/cruk-react-components\";\nimport { ChangeEvent } from \"react\";\nimport { RegistrationType } from \"../../contexts/RegistrationContext\";\nimport { FormFieldProps } from \"../../types\";\nimport dateOptions from \"../../utils/dateOptions\";\n\nconst ActivityMonth = ({\n values,\n field,\n formJourneyPage,\n handleChange,\n handleBlur,\n setValues,\n}: FormFieldProps) => (\n \n ) => {\n setValues({ ...values } as RegistrationType);\n handleChange(event);\n }}\n onBlur={handleBlur}\n >\n {dateOptions.map(({ value, label, key }) => (\n \n ))}\n \n \n);\n\nexport default ActivityMonth;\n","import { Box, Select } from \"@cruk/cruk-react-components\";\nimport { ChangeEvent } from \"react\";\nimport { RegistrationType } from \"../../contexts/RegistrationContext\";\nimport { FormFieldProps } from \"../../types\";\nimport JourneyHelper from \"../../utils/journeyHelper\";\n\nconst { isDIYJourney } = new JourneyHelper();\n\nconst ActivityType = ({\n values,\n field,\n touched,\n errors,\n getFieldProps,\n handleChange,\n setValues,\n activity,\n isRequired,\n journey,\n}: FormFieldProps) => (\n \n ) => {\n setValues({ ...(values as RegistrationType) });\n handleChange(event);\n }}\n errorMessage={touched.activityType ? errors.activityType : undefined}\n >\n \n {Object.entries(activity.typeConfig).map(([label, value]) => (\n \n ))}\n \n \n);\n\nexport default ActivityType;\n","import {\n Box,\n Button,\n ErrorText,\n IconFa,\n InfoBox,\n Link,\n Select,\n Text,\n TextField,\n} from \"@cruk/cruk-react-components\";\nimport { ChangeEvent, FC, useEffect, useRef, useState } from \"react\";\nimport { faExclamationCircle } from \"@fortawesome/free-solid-svg-icons\";\nimport { Field, FieldProps, FormikErrors, FormikTouched } from \"formik\";\nimport countries from \"../constants/countries.json\";\nimport { RegistrationType } from \"../contexts/RegistrationContext\";\nimport { trackDataDogError } from \"../utils/dataDog\";\nimport isUkCountry from \"../utils/isUkCountry\";\nimport { JourneyHelper } from \"../utils/journeyHelper\";\n\ntype AddressLookupContainerProps = {\n values: RegistrationType;\n setValues: (values: RegistrationType) => void;\n handleBlur: (e: React.FocusEvent) => void;\n handleChange: (e: ChangeEvent) => void;\n touched: FormikTouched;\n errors: FormikErrors;\n setFieldValue: (\n field: string,\n value: unknown,\n shouldValidate?: boolean | undefined\n ) => void;\n journey: string;\n submitCount: number;\n};\n\n// used to disable autocomplete on address fields that are filled in by\n// loqate search\nconst autoComplete = {\n autoComplete: `no-autofill-${Date.now()}`,\n // old edge: disable autocomplete by setting list attribute to a list that does not exist\n // https://stackoverflow.com/a/52608082\n list: \"autocompleteOff\",\n};\n\ninterface AddressArrayType {\n value: string;\n data: string;\n label: string;\n}\n\ninterface LoquateAddressItemType {\n Id: string;\n Type: string;\n Text: string;\n Highlight: string;\n Description: string;\n Error: string;\n}\n\ninterface LoquateAddressRetriveItemType {\n Line1: string;\n Line2: string;\n Line3: string;\n Line4: string;\n Line5: string;\n Company: string;\n PostalCode: string;\n CountryName: string;\n City: string;\n}\n\ninterface LoquateAddressResponse {\n Items: [LoquateAddressItemType];\n}\ninterface LoquateRetriveAddressResponse {\n Items: [LoquateAddressRetriveItemType];\n}\n\nconst AddressLookupContainer: FC = ({\n values,\n setValues,\n handleBlur,\n handleChange,\n touched,\n errors,\n setFieldValue,\n journey,\n submitCount,\n}) => {\n const apiKey = process.env.REACT_APP_PCA_KEY || \"\";\n const FIND_URL =\n \"https://api.addressy.com/Capture/Interactive/Find/v1.1/json3.ws\";\n const RETRIEVE_URL =\n \"https://api.addressy.com/Capture/Interactive/Retrieve/v1/json3.ws\";\n\n const [addressOptions, setAddressOptions] = useState([]);\n const [addressActiveOption, setAddressActiveOption] = useState(\"\");\n const [addressSearchStatus, setAddressSearchStatus] = useState(\n values.addressSearchStatus\n ); // \"\" | \"manual\" | \"retrive\" | \"search\"\n const [addressFieldsVisible, setAddressFieldsVisible] = useState(false);\n const [manualFieldsVisible, setManualFieldsVisible] = useState(false);\n // const [addressLookupErrorText, setAddressLookupErrorText] = useState(\"\");\n\n const journeyHelper = new JourneyHelper();\n const buttonRef = useRef(null);\n\n const inputs = [\n {\n value: \"addressLine1\",\n label: \"Address line 1\",\n required: true,\n },\n {\n value: \"addressLine2\",\n label: \"Address line 2\",\n },\n {\n value: \"addressLine3\",\n label: \"Address line 3\",\n },\n {\n value: \"city\",\n label: \"City\",\n required: true,\n },\n ];\n\n const countriesList = \"GBR\";\n\n const fieldSet = manualFieldsVisible\n ? [...inputs, { value: \"postcode\", label: \"Postcode\", required: true }]\n : inputs;\n\n const clearOptions = () => {\n setAddressActiveOption(\"\");\n setAddressOptions([]);\n };\n\n // eslint-disable-next-line consistent-return\n const findAddress = (query: string, countryCode: string, id = \"\") => {\n if (query?.length === 0) return setAddressOptions([]);\n fetch(\n `${FIND_URL}?Key=${apiKey}&Text=${query}&Container=${id}&Countries=${countryCode}`\n )\n .then((res: Response) => {\n if (!res.ok) {\n // eslint-disable-next-line no-console\n console.error(\"Error\", \"Something went wrong please try again\");\n trackDataDogError(\"Unable to find address!\");\n }\n return res.json();\n })\n // eslint-disable-next-line consistent-return\n .then((data: LoquateAddressResponse) => {\n setAddressSearchStatus(\"search\");\n if (data.Items[0] && data.Items[0].Error) {\n // eslint-disable-next-line no-console\n trackDataDogError(data.Items[0].Error);\n return console.error(data.Items[0]);\n }\n // eslint-disable-next-line promise/always-return\n if (data.Items[0].Type === \"Postcode\") {\n findAddress(values.postcode, countriesList, data.Items[0].Id);\n } else {\n const addressesArray = [];\n for (let i = 0; i < data.Items.length; i += 1) {\n const keyValueObject = {\n value: \"\",\n label: \"\",\n data: \"\",\n };\n keyValueObject.value = data.Items[i].Id;\n keyValueObject.data = data.Items[i].Type;\n const itemText = data.Items[i].Text;\n const itemDesc = data.Items[i].Description;\n if ((itemText + itemDesc).length < 90) {\n keyValueObject.label = `${data.Items[i].Text}, ${data.Items[i].Description}`;\n } else {\n keyValueObject.label = data.Items[i].Text;\n }\n addressesArray.push(keyValueObject);\n }\n\n setAddressOptions(addressesArray);\n }\n })\n // eslint-disable-next-line no-console\n .catch((err) => {\n trackDataDogError(err);\n console.error(err);\n });\n };\n\n const retrieve = (id: string) => {\n fetch(`${RETRIEVE_URL}?Key=${apiKey}&Id=${id}`)\n .then((res: Response) => {\n if (!res.ok) {\n // eslint-disable-next-line no-console\n console.error(\"Error\", \"Something went wrong please try again\");\n trackDataDogError(\"Unable to retrieve address lookup!\");\n }\n return res.json();\n })\n .then((data: LoquateRetriveAddressResponse) => {\n setAddressSearchStatus(\"retrieve\");\n let field3 = data.Items[0].Line3;\n if (data.Items[0].Line4) field3 += `, ${data.Items[0].Line4}`;\n if (data.Items[0].Line5) field3 += `, ${data.Items[0].Line5}`;\n clearOptions();\n if (data.Items[0].Company) {\n setFieldValue(\"addressLine1\", data.Items[0].Company);\n setFieldValue(\"addressLine2\", data.Items[0].Line1);\n setFieldValue(\"addressLine3\", data.Items[0].Line2);\n } else {\n setFieldValue(\"addressLine1\", data.Items[0].Line1);\n setFieldValue(\"addressLine2\", data.Items[0].Line2);\n setFieldValue(\"addressLine3\", field3);\n }\n // only city field required to be sha-hashed\n setFieldValue(\"city\", data.Items[0].City);\n setFieldValue(\"postcode\", data.Items[0].PostalCode);\n const foundCountry = countries.find(\n // where c is country\n (c) => c.name === data.Items[0].CountryName\n );\n // eslint-disable-next-line promise/always-return\n if (foundCountry) {\n setFieldValue(\"country\", foundCountry.code);\n }\n })\n // eslint-disable-next-line no-console\n .catch((err) => {\n trackDataDogError(err);\n console.error(err);\n });\n };\n\n useEffect(() => {\n if (!addressActiveOption) return;\n retrieve(addressActiveOption);\n }, [addressActiveOption]);\n\n useEffect(() => {\n setValues({ ...values, addressSearchStatus });\n addressSearchStatus === \"retrieve\"\n ? setAddressFieldsVisible(true)\n : setAddressFieldsVisible(false);\n\n if (addressSearchStatus === \"manual\") {\n setAddressFieldsVisible(true);\n setManualFieldsVisible(true);\n } else {\n setManualFieldsVisible(false);\n }\n }, [addressSearchStatus]);\n\n const checkFormAddressLookupError = () => {\n if (\n touched.postcode &&\n values.postcode &&\n !errors.postcode &&\n submitCount > 0 &&\n !addressSearchStatus\n ) {\n return true;\n }\n return false;\n };\n\n return (\n <>\n {!manualFieldsVisible && (\n <>\n \n {\n if (e.code === \"Enter\") {\n e.preventDefault();\n buttonRef?.current?.click();\n }\n return true;\n }}\n onChange={(event: ChangeEvent) => {\n if (\n addressSearchStatus === \"retrieve\" ||\n addressSearchStatus === \"search\"\n ) {\n setAddressSearchStatus(\"\");\n setAddressOptions([]);\n fieldSet.forEach((fieldName) =>\n setFieldValue(fieldName.value, \"\")\n );\n }\n setValues({ ...values, validated: false });\n handleChange(event);\n }}\n onBlur={handleBlur}\n errorMessage={touched.postcode ? errors.postcode : undefined}\n {...autoComplete}\n />\n \n \n {\n if (!errors.postcode) {\n findAddress(values.postcode, countriesList);\n }\n }}\n >\n Find address\n \n \n {checkFormAddressLookupError() && (\n \n
\n Please search for your address.\n
\n
\n )}\n {addressOptions.length > 0 && (\n \n {\n handleChange(e);\n if (\n addressOptions[\n e.target.selectedIndex - 1\n ].data.toLowerCase() !== \"address\"\n ) {\n findAddress(values.postcode, countriesList, e.target.value);\n } else {\n setAddressActiveOption(e.target.value);\n setValues({ ...values, validated: true });\n }\n }}\n onBlur={handleBlur}\n required\n name=\"addressActiveOption\"\n errorMessage={\n (touched.addressActiveOption || submitCount > 0) &&\n !values.addressActiveOption\n ? \"Please select an address\"\n : undefined\n }\n value={addressActiveOption}\n >\n \n {addressOptions.map((address) => (\n \n ))}\n \n \n )}\n \n )}\n\n {addressSearchStatus === \"manual\" && (\n \n \n To use the automated address finder, click on the link below\n \n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n {\n setAddressSearchStatus(\"search\");\n setAddressFieldsVisible(true);\n clearOptions();\n fieldSet.forEach((fieldName) =>\n setFieldValue(fieldName.value, \"\")\n );\n }}\n >\n Search By Postcode\n {\" \"}\n \n )}\n\n {addressFieldsVisible && (\n <>\n {fieldSet.map((input, index) => (\n // eslint-disable-next-line react/no-array-index-key\n \n {({ field }: FieldProps): React.ReactElement => {\n const id = `${field.name}`;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const fieldTouched = touched[id];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const fieldError = errors[id] as string;\n return (\n \n ) => {\n setValues({ ...values, validated: false });\n handleChange(event);\n }}\n // only city required to be sha-hashed\n onBlur={handleBlur}\n errorMessage={fieldTouched ? fieldError : undefined}\n {...autoComplete}\n />\n \n );\n }}\n \n ))}\n \n ) => {\n setValues({ ...values, validated: false });\n handleChange(event);\n }}\n onBlur={handleBlur}\n >\n {countries.map(({ code, name }) => (\n \n ))}\n \n \n {(journeyHelper.isSportsFormJourney(journey) ||\n journeyHelper.isInternationalAddressReminder(journey)) &&\n !isUkCountry(values.country) && (\n \n }\n >\n \n We can still offer you other fundraising support and a Cancer\n Research UK Giving page\n \n \n )}\n \n )}\n {addressSearchStatus !== \"manual\" && (\n \n \n To enter address manually or to enter an address outside the UK, use\n the link below\n \n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\n {\n setAddressSearchStatus(\"manual\");\n clearOptions();\n setAddressFieldsVisible(true);\n fieldSet.forEach((fieldName) =>\n setFieldValue(fieldName.value, \"\")\n );\n }}\n >\n Enter address manually\n \n \n )}\n \n );\n};\nexport default AddressLookupContainer;\n","import { Box, Heading } from \"@cruk/cruk-react-components\";\nimport AddressLookupContainer from \"../../containers/AddressLookupContainer\";\nimport { RegistrationType } from \"../../contexts/RegistrationContext\";\nimport { FormFieldProps } from \"../../types\";\n\nconst Address = ({\n values,\n setValues,\n handleChange,\n journey,\n touched,\n errors,\n handleBlur,\n formJourneyPage,\n setFieldValue,\n submitCount,\n}: FormFieldProps) => {\n const { addressHeading } = formJourneyPage;\n return (\n <>\n {addressHeading && {addressHeading}}\n \n \n \n \n );\n};\n\nexport default Address;\n","import { Box, Button } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst CallToAction = ({ activity, field, getClickableLink }: FormFieldProps) =>\n activity.callToActionLabel && activity.callToActionLink ? (\n \n \n {activity.callToActionLabel}\n \n \n ) : null;\n\nexport default CallToAction;\n","import { Box, Checkbox, LegendWrapper } from \"@cruk/cruk-react-components\";\nimport { useEffect, useState } from \"react\";\nimport { Material } from \"@cruk/activity-management-schema\";\nimport { RegistrationType } from \"../../contexts/RegistrationContext\";\nimport { FormFieldProps } from \"../../types\";\nimport { getSupporterMaterials } from \"../../utils/api/client\";\n\nconst ContactCentreSportsProductsLookup = ({\n values,\n setValues,\n field,\n}: FormFieldProps) => {\n const [supporterMaterials, setSupporterMaterials] = useState([]);\n\n useEffect(() => {\n const getSupporterMaterialsForPackCodes = async () => {\n const packCodesResult: Material[] = await getSupporterMaterials();\n setSupporterMaterials(packCodesResult);\n };\n\n getSupporterMaterialsForPackCodes();\n }, []);\n return (\n (values.tshirtOrVest === \"neither\" ||\n (values.tshirtOrVest !== \"neither\" && values.tshirtVestSize)) && (\n \n \n {supporterMaterials.length > 0 &&\n supporterMaterials.map((packCode) => (\n {\n if (e.target.checked) {\n values.contactCentreSportsProductLookUp.push(packCode.code);\n setValues({\n ...(values as RegistrationType),\n contactCentreSportsProductLookUp:\n values.contactCentreSportsProductLookUp,\n });\n } else {\n const findIndex =\n values?.contactCentreSportsProductLookUp?.findIndex(\n (codeForBackend: string) =>\n codeForBackend === packCode.code\n );\n if (findIndex > -1) {\n values?.contactCentreSportsProductLookUp.splice(\n findIndex,\n 1\n );\n setValues({\n ...(values as RegistrationType),\n contactCentreSportsProductLookUp:\n values.contactCentreSportsProductLookUp,\n });\n }\n }\n }}\n >\n {packCode.name} Pack Code: {packCode.code}\n \n ))}\n \n \n )\n );\n};\n\nexport default ContactCentreSportsProductsLookup;\n","import { Box, Text } from \"@cruk/cruk-react-components\";\nimport DateField from \"../../components/DateField\";\nimport { FormFieldProps } from \"../../types\";\nimport renderCustomText from \"../../utils/renderCustomText\";\n\nconst DateOfBirth = ({\n activity,\n touched,\n errors,\n field,\n values,\n handleBlur,\n filterHandleChange,\n}: FormFieldProps) => {\n const touchedAll =\n touched.dateOfBirthDay &&\n touched.dateOfBirthMonth &&\n touched.dateOfBirthYear;\n const error = touchedAll\n ? errors.dateOfBirthDay || errors.dateOfBirthMonth || errors.dateOfBirthYear\n : \"\";\n\n return (\n \n \n For example 14 03 1987\n {renderCustomText(activity.dobHelpText)}\n \n }\n day={values.dateOfBirthDay as string}\n month={values.dateOfBirthMonth as string}\n year={values.dateOfBirthYear as string}\n dayName=\"dateOfBirthDay\"\n monthName=\"dateOfBirthMonth\"\n yearName=\"dateOfBirthYear\"\n dayHasError={touchedAll && !!errors.dateOfBirthDay}\n monthHasError={touchedAll && !!errors.dateOfBirthMonth}\n yearHasError={touchedAll && !!errors.dateOfBirthYear}\n errorMessage={error}\n onChange={filterHandleChange()}\n onBlur={handleBlur}\n />\n \n );\n};\n\nexport default DateOfBirth;\n","import { Box, LegendWrapper, Radio, Text } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst DeliveryMethod = ({\n field,\n journey,\n errors,\n getFieldProps,\n values,\n touched,\n}: FormFieldProps) => (\n \n {journey === \"general-fundraising-pack-option\" && (\n Your pack\n )}\n \n \n Email with PDF\n \n \n Post\n \n \n \n);\n\nexport default DeliveryMethod;\n","import { Box, LegendWrapper, Radio, Text } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\nimport JourneyHelper from \"../../utils/journeyHelper\";\n\nconst { isDIYJourney } = new JourneyHelper();\n\nconst DeliveryMethod2 = ({\n field,\n journey,\n getFieldProps,\n touched,\n values,\n errors,\n}: FormFieldProps) => (\n \n {journey === \"general-fundraising-pack-option\" && (\n Your pack\n )}\n \n \n Email only\n \n\n \n Email and post\n \n \n \n);\n\nexport default DeliveryMethod2;\n","import { Box, Text } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst DynamicEventName = ({ field, eventRegistered }: FormFieldProps) => (\n \n \n {eventRegistered && (\n // eslint-disable-next-line react/jsx-no-comment-textnodes\n \n You are taking part in the "\n {eventRegistered?.title}"\n \n )}\n \n \n);\n\nexport default DynamicEventName;\n","import { Box, TextField } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst EmailAddress = ({\n field,\n touched,\n errors,\n formJourneyPage,\n handleBlur,\n getFieldProps,\n isRequired,\n}: FormFieldProps) => (\n \n \n \n);\n\nexport default EmailAddress;\n","import styled from \"styled-components/macro\";\n\nconst EventLookupWrapper = styled.div`\n span {\n border-left: none;\n }\n`;\n\nexport default EventLookupWrapper;\n","import styled from \"styled-components/macro\";\n\nconst GenericEventCancelIconWrapper = styled.div`\n svg {\n position: absolute;\n margin-top: -${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.spacing.xl\n };\n right: ${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.spacing.s\n };\n transform: translateY(-50%);\n cursor: pointer;\n }\n`;\n\nexport default GenericEventCancelIconWrapper;\n","import styled from \"styled-components/macro\";\n\nconst GenericEventSuccessIconWrapper = styled.div`\n svg {\n position: absolute;\n margin-top: -${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.spacing.xl\n };\n right: ${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.spacing.xxl\n };\n transform: translateY(-50%);\n }\n`;\n\nexport default GenericEventSuccessIconWrapper;\n","import styled from \"styled-components/macro\";\n\nconst IconBoxWrapper = styled.div`\n position: relative;\n`;\n\nexport default IconBoxWrapper;\n","import styled from \"styled-components/macro\";\n\nconst List = styled.div`\n background-color: ${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.colors.backgroundLight\n };\n border-radius: 3px;\n border: 2px solid #ccc;\n box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.2);\n list-style: none;\n margin-top: 0;\n max-height: 400px;\n overflow-y: auto;\n padding: 0;\n position: absolute;\n width: 100%;\n z-index: 999;\n`;\n\nexport default List;\n","import styled from \"styled-components/macro\";\n\nconst ListItem = styled.li`\n align-items: center;\n background-color: ${({ theme }) =>\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n theme.colors.backgroundLight};\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n padding: 5px;\n &:hover,\n &:focus {\n background-color: #ddd;\n }\n`;\n\nexport default ListItem;\n","import styled from \"styled-components/macro\";\n\nconst ListWrapper = styled.div`\n position: relative;\n`;\n\nexport default ListWrapper;\n","import styled from \"styled-components/macro\";\n\nconst SpecificSearchCancelIconWrapper = styled.div`\n svg {\n position: absolute;\n margin-top: -${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.spacing.s\n };\n right: ${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.spacing.xs\n };\n transform: translateY(-50%);\n cursor: pointer;\n }\n`;\n\nexport default SpecificSearchCancelIconWrapper;\n","import styled from \"styled-components/macro\";\n\nconst SpecificSearchSuccessIconWrapper = styled.div`\n svg {\n position: absolute;\n margin-top: -${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.spacing.s\n };\n right: ${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.spacing.xl\n };\n transform: translateY(-50%);\n }\n`;\n\nexport default SpecificSearchSuccessIconWrapper;\n","import {\n Box,\n Collapse,\n IconFa,\n Select,\n Text,\n TextField,\n} from \"@cruk/cruk-react-components\";\nimport { ChangeEvent } from \"react\";\nimport { Event, EventResultSuccess } from \"@cruk/activity-management-schema\";\nimport { faCheckCircle, faClose } from \"@fortawesome/free-solid-svg-icons\";\nimport EventLookupWrapper from \"../../components/EventLookupWrapper\";\nimport GenericEventCancelIconWrapper from \"../../components/GenericEventCancelIconWrapper\";\nimport GenericEventSuccessIconWrapper from \"../../components/GenericEventSuccessIconWrapper\";\nimport IconBoxWrapper from \"../../components/IconBoxWrapper\";\nimport List from \"../../components/List\";\nimport ListItem from \"../../components/ListItem\";\nimport ListWrapper from \"../../components/ListWrapper\";\nimport SpecificSearchCancelIconWrapper from \"../../components/SpecificSearchCancelIconWrapper\";\nimport SpecificSearchSuccessIconWrapper from \"../../components/SpecificSearchSuccessIconWrapper\";\nimport { RegistrationType } from \"../../contexts/RegistrationContext\";\nimport { FormFieldProps } from \"../../types\";\nimport { getEvent, getEvents } from \"../../utils/api/client\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst EventLookup = ({\n field,\n values,\n errors,\n touched,\n handleChange,\n setValues,\n handleBlur,\n setEventRegistered,\n setEvents,\n events,\n journey,\n journeyHelper,\n}: FormFieldProps) => {\n const navigate = useNavigate();\n\n const setEventsAPI = async (type: string, value: string | null) => {\n switch (type) {\n case \"EventList\":\n if (value) {\n const response = await getEvents(value);\n if (response.events) {\n setEvents(response.events);\n }\n } else {\n setEvents([]);\n }\n break;\n case \"EventDetail\":\n try {\n const eventResult: EventResultSuccess = await getEvent(value || \"\");\n if (eventResult.event[0]) {\n setEventRegistered(eventResult.event[0]);\n } else {\n throw Error(\"EventDetail is empty!\");\n }\n } catch (error) {\n console.error(error);\n return navigate(\"/error\");\n }\n break;\n default:\n break;\n }\n };\n\n return (\n \n \n \n ) => {\n handleChange(event);\n setValues({\n ...values,\n eventCode: \"\",\n eventName: event.target.value,\n } as RegistrationType);\n setEventsAPI(\"EventList\", event.target.value);\n }}\n onBlur={handleBlur}\n errorMessage={\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n touched.eventName && !values.isGenericEvent\n ? errors.eventName\n : undefined\n }\n />\n \n {values.eventCode && !values.isGenericEvent ? (\n \n \n \n \n {\n setValues({\n ...(values as RegistrationType),\n eventCode: \"\",\n eventName: \"\",\n tshirtOrVest: \"\",\n maleFemaleStyles: \"\",\n haveEnteredEvent: false,\n eventTypes: [],\n eventStart: \"\",\n });\n if (journeyHelper.isSportsFormPromoterJourney(journey)) {\n setEventRegistered(undefined);\n }\n setEvents([]);\n }}\n >\n \n \n \n ) : (\n <>\n )}\n {events &&\n events.length > 0 &&\n values.eventName &&\n !values.isGenericEvent && (\n \n \n {events.map((event: Event, index) => (\n {\n setValues({\n ...(values as RegistrationType),\n eventName: event.title,\n eventCode: event.event_code,\n eventTypes: event.event_types,\n eventStart: event.date_start,\n });\n if (journeyHelper.isSportsFormPromoterJourney(journey)) {\n setEventRegistered(event);\n }\n setEvents([]);\n }}\n onChange={handleChange}\n onBlur={handleBlur}\n >\n \n {event.title}\n \n \n ))}\n \n \n )}\n \n {((!values.eventCode && !values.isGenericEvent) ||\n !!values.isGenericEvent) && (\n {\n if (isOpen) {\n setValues({\n ...(values as RegistrationType),\n eventName: \"\",\n eventCode: \"\",\n tshirtOrVest: \"\",\n maleFemaleStyles: \"\",\n haveEnteredEvent: false,\n isGenericEvent: true,\n eventTypes: [],\n eventStart: \"\",\n });\n await setEventsAPI(\"EventList\", \"Generic Events\");\n } else {\n setValues({\n ...(values as RegistrationType),\n eventName: \"\",\n eventCode: \"\",\n tshirtOrVest: \"\",\n maleFemaleStyles: \"\",\n eventTypes: [],\n eventStart: \"\",\n haveEnteredEvent: false,\n isGenericEvent: false,\n });\n if (journeyHelper.isSportsFormPromoterJourney(journey)) {\n setEventRegistered(undefined);\n }\n setEvents([]);\n }\n }}\n >\n \n ) => {\n const eventFound = events.find(\n (ev: Event) => ev.title === event.target.value\n );\n setValues({\n ...(values as RegistrationType),\n eventCode: eventFound && eventFound.event_code,\n eventTypes: eventFound && eventFound.event_types,\n eventStart: eventFound && eventFound.date_start,\n });\n if (journeyHelper.isSportsFormPromoterJourney(journey)) {\n setEventRegistered(eventFound);\n }\n handleChange(event);\n }}\n errorMessage={\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n touched.eventName ? errors.eventName : undefined\n }\n >\n \n {events &&\n events.length > 0 &&\n events.map((event: Event) => (\n \n ))}\n \n \n {values.eventCode && values.isGenericEvent ? (\n \n \n \n \n {\n setValues({\n ...(values as RegistrationType),\n eventCode: \"\",\n eventName: \"\",\n eventTypes: [],\n eventStart: \"\",\n });\n if (journeyHelper.isSportsFormPromoterJourney(journey)) {\n setEventRegistered(undefined);\n }\n }}\n >\n \n \n \n ) : (\n <>\n )}\n \n )}\n \n );\n};\n\nexport default EventLookup;\n","import { Box, Button } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst FacebookFundraiserCTA = ({ activity, field }: FormFieldProps) =>\n !activity.callToActionLabel && !activity.callToActionLink ? (\n \n \n Set up your Facebook Fundraiser\n \n \n ) : null;\n\nexport default FacebookFundraiserCTA;\n","import { Box, TextField } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst FirstName = ({\n field,\n touched,\n errors,\n activity,\n handleBlur,\n getFieldProps,\n isRequired,\n}: FormFieldProps) => (\n \n \n \n);\n\nexport default FirstName;\n","import { Box, TextField } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\nimport renderCustomText from \"../../utils/renderCustomText\";\n\nconst FundraisingTarget = ({\n journeyHelper,\n journey,\n touched,\n errors,\n handleBlur,\n values,\n filterHandleChange,\n field,\n isRequired,\n activity,\n}: FormFieldProps) =>\n (!journeyHelper.isSportsFormJourney(journey) ||\n (journeyHelper.isSportsFormExternalJourney(journey) &&\n values.haveEnteredEvent) ||\n (journeyHelper.isSportsFormContactCentreJourney(journey) &&\n values.hasOnlineFundraisingPage) ||\n (journeyHelper.isSportsFormPromoterJourney(journey) &&\n values.haveEnteredEvent)) && (\n \n {renderCustomText(activity.fundraisingTargetHelpTextHtml)}\n }\n name=\"fundraisingTarget\"\n required={isRequired(\"fundraisingTarget\")}\n value={values.fundraisingTarget}\n onChange={filterHandleChange()}\n onBlur={handleBlur}\n errorMessage={\n !!touched.fundraisingTarget && !!errors.fundraisingTarget\n ? errors.fundraisingTarget\n : \"\"\n }\n extraLeft=\"£\"\n />\n \n );\n\nexport default FundraisingTarget;\n","import { Box } from \"@cruk/cruk-react-components\";\nimport { FunctionComponent } from \"react\";\nimport { CSSProperties } from \"styled-components\";\n\ntype ImageBoxProps = {\n alt: string;\n src: string;\n style?: CSSProperties;\n};\n\nconst ImageBox: FunctionComponent = ({ alt, src, style }) => (\n \n {alt}\n \n);\nexport default ImageBox;\n","export default __webpack_public_path__ + \"static/media/gifts-in-wills-guide-form-image.02a7533d.jpg\";","import { Box } from \"@cruk/cruk-react-components\";\nimport ImageBox from \"../../components/ImageBox\";\nimport SpaceAroundRows from \"../../components/SpaceAroundRows\";\nimport giftsInWillsGuideImage from \"../../assets/gifts-in-wills-guide-form-image.jpg\";\n\nconst GiftsInWillsGuideImage = () => (\n \n \n \n \n \n);\n\nexport default GiftsInWillsGuideImage;\n","import {\n Box,\n IconFa,\n InfoBox,\n LegendWrapper,\n Radio,\n} from \"@cruk/cruk-react-components\";\nimport { faCircleCheck } from \"@fortawesome/free-solid-svg-icons\";\nimport { FormFieldProps } from \"../../types\";\n\nconst HasOnlineFundraisingPage = ({\n values,\n errors,\n touched,\n journeyHelper,\n journey,\n field,\n isRequired,\n getFieldProps,\n}: FormFieldProps) => {\n return values.haveEnteredEvent ? (\n \n \n \n Yes\n \n \n No\n \n \n {values.hasOnlineFundraisingPage &&\n journeyHelper.isSportsFormContactCentreJourney(journey) && (\n \n }\n titleText={\n values.hasOnlineFundraisingPage === \"no\"\n ? \"Great\"\n : \"Giving Page creation\"\n }\n />\n )}\n \n ) : null;\n};\n\nexport default HasOnlineFundraisingPage;\n","import { Box, Checkbox, LegendWrapper } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst HaveEnteredEvent = ({\n field,\n values,\n errors,\n touched,\n eventRegistered,\n journey,\n journeyHelper,\n getFieldProps,\n}: FormFieldProps) => (\n \n {(eventRegistered || (values.eventCode && values.eventName)) && (\n <>\n \n \n {journeyHelper.isSportsFormExternalJourney(journey) && (\n <>I already have a place at this event\n )}\n {journeyHelper.isSportsFormContactCentreJourney(journey) && (\n <>They have a place at this event\n )}\n \n \n \n )}\n \n);\n\nexport default HaveEnteredEvent;\n","import { Box, Text, TextField } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst IronOnText = ({\n values,\n field,\n journeyHelper,\n journey,\n getFieldProps,\n errors,\n touched,\n}: FormFieldProps) => {\n const getIronOnTextRemainingLength = (ironOnText: string) => {\n if (ironOnText.includes(\" \")) {\n const removeWhiteSpaceString = ironOnText.replaceAll(\" \", \"\");\n return 10 - removeWhiteSpaceString.length;\n }\n return 10 - ironOnText.length;\n };\n\n return (values.tshirtVestSize as string) ? (\n \n \n {getIronOnTextRemainingLength(values.ironOnText) >= 0 && (\n \n {getIronOnTextRemainingLength(values.ironOnText)} characters remaining\n \n )}\n \n ) : null;\n};\n\nexport default IronOnText;\n","import { Box, TextField } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst LastName = ({\n field,\n touched,\n errors,\n activity,\n handleBlur,\n getFieldProps,\n isRequired,\n}: FormFieldProps) => (\n \n \n \n);\n\nexport default LastName;\n","import { Box, Button } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst LegaciesDigitalGuideCTA = ({ activity, field }: FormFieldProps) =>\n activity.journey !== \"gifts-in-wills-guide\" ? (\n \n \n View your online guide\n \n \n ) : !activity.callToActionLabel && !activity.callToActionLink ? (\n \n \n View your online guide\n \n \n ) : null;\n\nexport default LegaciesDigitalGuideCTA;\n","import {\n Box,\n ErrorText,\n LegendWrapper,\n Radio,\n} from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst MaleFemaleStyles = ({\n values,\n field,\n touched,\n errors,\n journeyHelper,\n journey,\n getFieldProps,\n}: FormFieldProps) =>\n values.haveEnteredEvent &&\n (values.tshirtOrVest === \"tshirt\" || values.tshirtOrVest === \"vest\") ? (\n \n \n \n Male\n \n \n Female\n \n \n \n {touched.maleFemaleStyles ? errors.maleFemaleStyles : undefined}\n \n \n ) : null;\n\nexport default MaleFemaleStyles;\n","import {\n Box,\n IconFa,\n InfoBox,\n LegendWrapper,\n Link,\n Radio,\n Text,\n} from \"@cruk/cruk-react-components\";\nimport { OTHER_MERCHANDISE, T_SHIRT } from \"../../constants/fields\";\nimport { FormFieldProps } from \"../../types\";\n\nconst MerchandiseType = ({\n setOptInMerchandise,\n errors,\n handleChange,\n values: { optInMerchandise },\n activity: { merchandiseLabelHeader, merchandiseTemplateType },\n}: FormFieldProps) => {\n const infoBoxData = (): {\n header: string;\n description: string;\n additionalDescription?: string;\n link?: JSX.Element;\n } => {\n switch (merchandiseTemplateType) {\n case T_SHIRT:\n if (optInMerchandise === \"yes\") {\n return {\n header: \"You've selected a t-shirt!\",\n description:\n \"We hope you're excited to wear your free t-shirt and start your challenge for life-saving research! Kickstart your fundraising today, but please allow for 10 working days for your pack to arrive.\",\n additionalDescription:\n \"Sending out your pack comes at a cost to Cancer Research UK so please only order one pack if you intend to fundraise to ensure as much fundraising goes towards our life-saving research. Additional t-shirts can be purchased \",\n link: (\n \n here.\n \n ),\n };\n }\n return {\n header: \"You've opted out!\",\n description:\n \"By opting out to receiving a t-shirt, you're saving Cancer Research UK money, which we can now use to fund research. This saving could buy a test tube rack, which make sure our scientists can keep their experiments organised.\",\n additionalDescription:\n \"With your support and fundraising, we fund long-term research. And when we fund long-term research, we make our biggest breakthroughs.\",\n };\n\n case OTHER_MERCHANDISE:\n if (optInMerchandise === \"yes\") {\n return {\n header: \"You've selected to receive a pack!\",\n description:\n \"We hope you're excited to receive your free merchandise and start your challenge for life-saving research! Kickstart your fundraising today, but please allow for 10 working days for your pack to arrive.\",\n additionalDescription:\n \"Sending out your pack comes at a cost to Cancer Research UK so please only order one pack if you intend to fundraise to ensure as much fundraising goes towards our life-saving research.\",\n };\n }\n return {\n header: \"You've opted out!\",\n description:\n \"By opting out to receiving merchandise, you're saving Cancer Research UK money, which we can now use to fund research. This saving could buy a test tube rack, which make sure our scientists can keep their experiments organised.\",\n additionalDescription:\n \"With your support and fundraising, we fund long-term research. And when we fund long-term research, we make our biggest breakthroughs.\",\n };\n\n default:\n return { header: \"\", description: \"\" };\n }\n };\n\n // Add a default header if one hasn't been previously created\n const defaultMerchandiseHeader =\n merchandiseTemplateType === OTHER_MERCHANDISE\n ? \"Would you like to receive a skipping rope?\"\n : \"Would you like to receive a t-shirt?\";\n\n return (\n <>\n \n setOptInMerchandise(true)}\n >\n Yes\n \n setOptInMerchandise(false)}\n >\n No\n \n \n\n \n {optInMerchandise !== \"unknown\" && (\n \n }\n titleText={infoBoxData().header}\n descriptionText={infoBoxData().description}\n >\n {infoBoxData()?.additionalDescription ? (\n \n {infoBoxData().additionalDescription}\n {infoBoxData()?.link}\n \n ) : null}\n \n )}\n \n \n );\n};\n\nexport default MerchandiseType;\n","import { TextAreaField } from \"@cruk/cruk-react-components\";\nimport styled from \"styled-components/macro\";\n\nconst StyledTextAreaField = styled(TextAreaField)`\n resize: vertical;\n min-height: 5rem;\n max-height: 20rem;\n`;\n\nexport default StyledTextAreaField;\n","import { Box } from \"@cruk/cruk-react-components\";\nimport StyledTextAreaField from \"../../components/StyledTextAreaField\";\nimport { FormFieldProps } from \"../../types\";\n\nconst MoreInfo = ({\n field,\n isRequired,\n touched,\n errors,\n activity,\n getFieldProps,\n}: FormFieldProps) => (\n \n \n \n);\n\nexport default MoreInfo;\n","import styled from \"styled-components/macro\";\n\nconst DividerLine = styled.hr`\n border: 1px solid\n ${\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n ({ theme }) => theme.tokenColors.grey_300\n };\n margin-top: 1.5rem;\n`;\n\nexport default DividerLine;\n","import {\n Box,\n Collapse,\n Heading,\n Link,\n RadioConsent,\n Text,\n} from \"@cruk/cruk-react-components\";\nimport DividerLine from \"../../components/DividerLine\";\nimport { FormFieldProps } from \"../../types\";\nimport renderCustomText from \"../../utils/renderCustomText\";\n\nconst OptIn = ({\n values,\n field,\n journeyHelper,\n activity,\n journey,\n getFieldProps,\n handleChange,\n}: FormFieldProps) => {\n const contactUsLink =\n \"https://www.cancerresearchuk.org/about-us/contact-us/contact-preferences\";\n const privacyStatementLink =\n \"https://www.cancerresearchuk.org/privacy-statement\";\n\n return (\n
\n \n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? \"Help bring forward the day when all cancers are cured. Hear about our latest breakthroughs, campaigns and how they can support our life saving work.\"\n : \"Help bring forward the day when all cancers are cured. Hear about our latest breakthroughs, campaigns and how you can support our life saving work.\"}\n \n \n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? `We may contact them by post or phone unless they select\n 'no' below.`\n : `We may contact you by post or phone unless you select\n 'no' below.`}\n \n \n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? `How would they like to hear from us?`\n : `How would you like to hear from us?`}\n \n \n \n \n \n \n \n \n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? `Change their mind at any time`\n : `Change your mind at any time`}\n \n \n Contact us on \n \n 0300 123 3379\n \n  or \n \n preferences@cancer.org.uk\n \n  or via \n \n this form.\n \n  \n \n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? `Their details are safe with us. Check out our`\n : `Your details are safe with us. Check out our`}\n  \n \n Privacy Policy\n {\" \"}\n for more details.\n \n \n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? `To make our fundraising efforts effective, we may\n research them using publicly available sources.`\n : `To make our fundraising efforts effective, we may\n research you using 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 {\" \"}\n This information is stored securely and protected from unauthorised\n access or disclosure. Find out more in our \n \n privacy policy.\n \n  \n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? \"If they don’t want us to do this research in relation to them, they can tell us anytime by contacting\"\n : \"If you don’t want us to do this research in relation to you, you can tell us anytime by contacting\"}\n  \n \n 0300 123 3379\n {\" \"}\n or \n \n preferences@cancer.org.uk\n \n \n \n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? \"We may try to obtain up-to-date contact details for them using external sources if they move house, so that we can stay in touch. \"\n : \"We may try to obtain up-to-date contact details for you using external sources if you move house, so that we can stay in touch. \"}\n      \n \n \n \n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? \"We may try to obtain up-to-date contact details for them using external sources if they move house, so that we can stay in touch.\"\n : \"We may try to obtain up-to-date contact details for you using external sources if you move house, so that we can stay in touch.\"}\n \n \n \n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? \"We may try to obtain up-to-date contact details for them using external sources such as 3rd party organisations (if they previously provided consent to share their data), or the post office national change of address database. This means that we can ensure we have an accurate record of our supporters and ensure that we continue to communicate with them in accordance with their wishes.\"\n : \"We may try to obtain up-to-date contact details for you using external sources such as 3rd party organisations (if you previously provided consent to share your data), or the post office national change of address database. This means that we can ensure we have an accurate record of our supporters and ensure that we continue to communicate with you in accordance with your wishes.\"}\n \n \n {\" \"}\n {journeyHelper.isSportsFormContactCentreJourney(journey)\n ? \"If they don’t want us to do this research in relation to them, they can tell us anytime by contacting\"\n : \"If you don’t want us to do this research in relation to you, you can tell us anytime by contacting\"}\n  \n \n 0300 123 3379\n {\" \"}\n or \n \n preferences@cancer.org.uk.\n \n \n \n \n {activity.termsAndConditionsHeader}\n \n {renderCustomText(activity.termsAndConditionsTextHtml)}\n \n
\n );\n};\n\nexport default OptIn;\n","import { Box, TextField } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst OrganisationName = ({\n activity,\n touched,\n errors,\n field,\n getFieldProps,\n isRequired,\n}: FormFieldProps) => (\n \n \n \n);\n\nexport default OrganisationName;\n","import { Box, TextField } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst PhoneNumber = ({\n field,\n values,\n errors,\n touched,\n handleBlur,\n formJourneyPage,\n journey,\n journeyHelper,\n isRequired,\n filterHandleChange,\n}: FormFieldProps) => (\n \n \n \n);\n\nexport default PhoneNumber;\n","import { Box, TextField } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\nimport renderCustomText from \"../../utils/renderCustomText\";\n\nconst ProductQuantity = ({\n field,\n activity,\n handleBlur,\n filterHandleChange,\n isRequired,\n touched,\n errors,\n values,\n}: FormFieldProps) => (\n \n {renderCustomText(activity.productQuantityHelpText)}}\n name=\"productQuantity\"\n required={isRequired(\"productQuantity\")}\n value={values.productQuantity as string}\n onChange={filterHandleChange()}\n onBlur={handleBlur}\n errorMessage={\n !!touched.productQuantity && !!errors.productQuantity\n ? errors.productQuantity\n : \"\"\n }\n />\n \n);\n\nexport default ProductQuantity;\n","import { FormikValues } from \"formik\";\nimport JourneyHelper from \"../utils/journeyHelper\";\nimport { MALE, T_SHIRT } from \"./fields\";\nimport {\n DRYATHLON,\n JourneyTypes,\n SF_CHALLENGES,\n} from \"./journeys/journeyNames\";\n\ntype Header = {\n title: string;\n abbr?: string;\n detail?: string;\n};\n\ntype CommonSizeData = {\n sizeLabel: string;\n};\n\nexport type CmInchesData = CommonSizeData & {\n cm: string;\n inches: string;\n};\n\nexport type SizesData = CommonSizeData & {\n XXS: string;\n XS: string;\n S: string;\n M: string;\n L: string;\n XL: string;\n XXL: string;\n};\n\ntype SizeData = CmInchesData | SizesData;\n\nexport type SizeGuideValuesType = {\n headers: Header[];\n data: SizeData[];\n};\n\nexport class SizeGuideValues {\n readonly isMale: boolean;\n readonly isTeeShirt: boolean;\n readonly themeSizes: {\n [key: string]: SizeGuideValuesType;\n };\n\n constructor(values: FormikValues) {\n this.isMale = values.maleFemaleStyles === MALE;\n this.isTeeShirt = values.tshirtOrVest === T_SHIRT;\n this.themeSizes = {\n cruk: this.crukTeeShirtSizes(),\n su2c: this.su2CTeeShirtSizes(),\n rfl: this.crukTeeShirtSizes(),\n };\n }\n\n currentSize(theme: \"cruk\" | \"su2c\" | \"rfl\", journey: JourneyTypes) {\n const { isSportsFormJourney } = new JourneyHelper();\n\n if (isSportsFormJourney(journey)) {\n return this.sportsTopsSizes();\n }\n\n switch (journey) {\n case SF_CHALLENGES:\n return this.sfChallengeTeeShirtSizes();\n case DRYATHLON:\n return this.dryathlonTeeShirtSizes();\n default:\n return this.themeSizes[theme];\n }\n }\n\n sfChallengeTechTopSizes(): SizeGuideValuesType {\n return {\n headers: [\n { title: \"Size\" },\n { title: \"Chest\", abbr: \"cm\", detail: \"front\" },\n { title: \"Chest\", abbr: \"in\", detail: \"front\" },\n ],\n data: [\n {\n sizeLabel: \"S\",\n cm: \"52.5\",\n inches: \"21\",\n },\n {\n sizeLabel: \"M\",\n cm: \"56\",\n inches: \"22\",\n },\n {\n sizeLabel: \"L\",\n cm: \"58.5\",\n inches: \"23\",\n },\n {\n sizeLabel: \"XL\",\n cm: \"63\",\n inches: \"25\",\n },\n {\n sizeLabel: \"2XL\",\n cm: \"65\",\n inches: \"26\",\n },\n ],\n };\n }\n\n private sfChallengeTeeShirtSizes(): SizeGuideValuesType {\n return {\n headers: [\n { title: \"Size\" },\n { title: \"Chest\", abbr: \"cm\", detail: \"front\" },\n { title: \"Chest\", abbr: \"in\", detail: \"front\" },\n ],\n data: [\n {\n sizeLabel: \"S\",\n cm: \"50\",\n inches: \"20\",\n },\n {\n sizeLabel: \"M\",\n cm: \"53\",\n inches: \"21\",\n },\n {\n sizeLabel: \"L\",\n cm: \"56\",\n inches: \"22\",\n },\n {\n sizeLabel: \"XL\",\n cm: \"59\",\n inches: \"23\",\n },\n {\n sizeLabel: \"2XL\",\n cm: \"62\",\n inches: \"24\",\n },\n ],\n };\n }\n\n private crukTeeShirtSizes(): SizeGuideValuesType {\n return {\n headers: [\n { title: \"Size\" },\n { title: \"Chest\", abbr: \"cm\" },\n { title: \"Chest\", abbr: \"in\" },\n ],\n data: [\n {\n sizeLabel: \"S\",\n cm: \"89-94\",\n inches: \"35-37\",\n },\n {\n sizeLabel: \"M\",\n cm: \"96.5-101.5\",\n inches: \"38-40\",\n },\n {\n sizeLabel: \"L\",\n cm: \"104-109\",\n inches: \"41-43\",\n },\n {\n sizeLabel: \"XL\",\n cm: \"112-117\",\n inches: \"44-46\",\n },\n {\n sizeLabel: \"2XL\",\n cm: \"119.5-124.5\",\n inches: \"47-49\",\n },\n ],\n };\n }\n\n private sportsTopsSizes(): SizeGuideValuesType {\n return {\n headers: [\n { title: \"Measurement Point in CM\" },\n { title: \"XXS\" },\n { title: \"XS\" },\n { title: \"S\" },\n { title: \"M\" },\n { title: \"L\" },\n { title: \"XL\" },\n { title: \"XXL\" },\n ],\n data: [\n this.isTeeShirt\n ? {\n sizeLabel: \"Body Length\",\n XXS: this.isMale ? \"67.5\" : \"60\",\n XS: this.isMale ? \"70.5\" : \"62.5\",\n S: this.isMale ? \"73.5\" : \"65\",\n M: this.isMale ? \"76.5\" : \"67.5\",\n L: this.isMale ? \"79.5\" : \"70\",\n XL: this.isMale ? \"82\" : \"72\",\n XXL: this.isMale ? \"85\" : \"74\",\n }\n : {\n sizeLabel: \"Body Length\",\n XXS: this.isMale ? \"69\" : \"63.5\",\n XS: this.isMale ? \"72\" : \"65.5\",\n S: this.isMale ? \"75\" : \"67.5\",\n M: this.isMale ? \"78\" : \"69.5\",\n L: this.isMale ? \"81\" : \"72\",\n XL: this.isMale ? \"84.5\" : \"74.5\",\n XXL: this.isMale ? \"87\" : \"77\",\n },\n this.isTeeShirt\n ? {\n sizeLabel: \"Chest\",\n XXS: this.isMale ? \"45.5\" : \"42\",\n XS: this.isMale ? \"49\" : \"44.5\",\n S: this.isMale ? \"52.5\" : \"47\",\n M: this.isMale ? \"56\" : \"50.5\",\n L: this.isMale ? \"58.5\" : \"54\",\n XL: this.isMale ? \"63\" : \"57\",\n XXL: this.isMale ? \"65\" : \"60\",\n }\n : {\n sizeLabel: \"Chest\",\n XXS: this.isMale ? \"47.5\" : \"41\",\n XS: this.isMale ? \"51\" : \"44.5\",\n S: this.isMale ? \"54.5\" : \"48\",\n M: this.isMale ? \"58\" : \"51.5\",\n L: this.isMale ? \"61\" : \"55\",\n XL: this.isMale ? \"64.5\" : \"58.5\",\n XXL: this.isMale ? \"67\" : \"62\",\n },\n this.isTeeShirt\n ? {\n sizeLabel: \"Bottom\",\n XXS: this.isMale ? \"45.5\" : \"44.5\",\n XS: this.isMale ? \"49\" : \"48.5\",\n S: this.isMale ? \"52.5\" : \"52.5\",\n M: this.isMale ? \"56\" : \"56.5\",\n L: this.isMale ? \"58.5\" : \"60.5\",\n XL: this.isMale ? \"63\" : \"64\",\n XXL: this.isMale ? \"65\" : \"67.5\",\n }\n : {\n sizeLabel: \"Bottom\",\n XXS: this.isMale ? \"47\" : \"46\",\n XS: this.isMale ? \"50.5\" : \"50\",\n S: this.isMale ? \"54\" : \"54\",\n M: this.isMale ? \"57.5\" : \"58\",\n L: this.isMale ? \"60.5\" : \"62\",\n XL: this.isMale ? \"64\" : \"65.5\",\n XXL: this.isMale ? \"66.5\" : \"69\",\n },\n this.isTeeShirt\n ? {\n sizeLabel: \"Across Shoulder\",\n XXS: this.isMale ? \"39\" : \"36\",\n XS: this.isMale ? \"42\" : \"38\",\n S: this.isMale ? \"45\" : \"40\",\n M: this.isMale ? \"48\" : \"42\",\n L: this.isMale ? \"49.5\" : \"44\",\n XL: this.isMale ? \"51\" : \"46.5\",\n XXL: this.isMale ? \"53\" : \"49\",\n }\n : {\n sizeLabel: \"Across Shoulder\",\n XXS: this.isMale ? \"31.7\" : \"31.5\",\n XS: this.isMale ? \"32.9\" : \"32.5\",\n S: this.isMale ? \"34.1\" : \"33.5\",\n M: this.isMale ? \"35.3\" : \"34.5\",\n L: this.isMale ? \"36.5\" : \"35.5\",\n XL: this.isMale ? \"37.5\" : \"36.7\",\n XXL: this.isMale ? \"38.5\" : \"37.9\",\n },\n ],\n };\n }\n\n private su2CTeeShirtSizes(): SizeGuideValuesType {\n return {\n headers: [\n { title: \"Size\" },\n { title: \"Chest\", abbr: \"cm\" },\n { title: \"Chest\", abbr: \"in\" },\n ],\n data: [\n {\n sizeLabel: \"S\",\n cm: \"86.5-91.5\",\n inches: \"34-36\",\n },\n {\n sizeLabel: \"M\",\n cm: \"96.5-101.5\",\n inches: \"38-40\",\n },\n {\n sizeLabel: \"L\",\n cm: \"106.5-112\",\n inches: \"42-44\",\n },\n {\n sizeLabel: \"XL\",\n cm: \"117-122\",\n inches: \"46-48\",\n },\n {\n sizeLabel: \"2XL\",\n cm: \"127-132\",\n inches: \"50-52\",\n },\n ],\n };\n }\n\n private dryathlonTeeShirtSizes(): SizeGuideValuesType {\n return {\n headers: [\n { title: \"Size\" },\n { title: \"Chest\", abbr: \"cm\" },\n { title: \"Chest\", abbr: \"in\" },\n ],\n\n data: [\n {\n sizeLabel: \"S\",\n cm: \"86-91\",\n inches: \"34-36\",\n },\n {\n sizeLabel: \"M\",\n cm: \"97-102\",\n inches: \"38-40\",\n },\n {\n sizeLabel: \"L\",\n cm: \"107-112\",\n inches: \"42-44\",\n },\n {\n sizeLabel: \"XL\",\n cm: \"117-122\",\n inches: \"46-48\",\n },\n {\n sizeLabel: \"2XL\",\n cm: \"127-132\",\n inches: \"50-52\",\n },\n ],\n };\n }\n}\n","import { Text } from \"@cruk/cruk-react-components\";\nimport React, { FC } from \"react\";\nimport { FormikValues } from \"formik\";\nimport styled from \"styled-components/macro\";\nimport { JourneyTypes } from \"../constants/journeys/journeyNames\";\nimport {\n CmInchesData,\n SizeGuideValues,\n SizeGuideValuesType,\n SizesData,\n} from \"../constants/sizeGuideValues\";\nimport JourneyHelper from \"../utils/journeyHelper\";\n\nconst StyledSizeGuide = styled.table`\n width: 100%;\n border: none;\n padding: 0;\n th,\n td {\n border: none;\n text-align: left;\n }\n td {\n border-top: 1px solid ${({ theme }) => theme.colors.buttonBorder};\n }\n`;\n\nconst TableContainer = styled.div`\n overflow-x: scroll;\n`;\n\nconst StyledSizeGuideWithMargin = styled(StyledSizeGuide)`\n margin-top: 2rem;\n`;\n\ntype SizeGuideProps = {\n values: FormikValues;\n journey: JourneyTypes;\n theme?: \"cruk\" | \"su2c\" | \"rfl\";\n};\n\nconst SizeGuide: FC = ({ values, journey, theme = \"cruk\" }) => {\n const { isSocialFundraisingJourney, isSportsFormJourney } =\n new JourneyHelper();\n const SizeGuide = new SizeGuideValues(values);\n const currentSize = SizeGuide.currentSize(theme, journey);\n\n const tableHeaders = () =>\n React.Children.toArray(\n currentSize.headers.map(({ title, abbr, detail }) => (\n \n {title} {abbr && ({abbr})}{\" \"}\n {detail && ({detail})}\n \n ))\n );\n\n const tableTitle = (title: string) => {\n return (\n \n {title}\n
\n );\n };\n\n const tableBody = (sizeData: SizeGuideValuesType) => {\n return React.Children.toArray(\n sizeData.data.map((sizeItem) => {\n const { sizeLabel, cm, inches, XXS, XS, S, M, L, XL, XXL } =\n sizeItem as SizesData & CmInchesData;\n\n return isSportsFormJourney(journey) ? (\n \n {sizeLabel}\n {XXS}\n {XS}\n {S}\n {M}\n {L}\n {XL}\n {XXL}\n \n ) : (\n \n {sizeLabel}\n {cm}\n {inches}\n \n );\n })\n );\n };\n\n return (\n <>\n \n \n {isSocialFundraisingJourney(journey) && (\n {tableTitle(\"CRUK T-shirt\")}\n )}\n {tableHeaders()}\n {tableBody(currentSize)}\n \n\n {isSocialFundraisingJourney(journey) && (\n \n {tableTitle(\"CRUK Tech Top\")}\n {tableHeaders()}\n {tableBody(SizeGuide.sfChallengeTechTopSizes())}\n \n )}\n \n \n );\n};\nexport default SizeGuide;\n","import {\n Box,\n Collapse,\n ErrorText,\n LegendWrapper,\n Radio,\n} from \"@cruk/cruk-react-components\";\nimport SizeGuide from \"../../components/SizeGuide\";\nimport { FormFieldProps } from \"../../types\";\n\nconst RadioSelectTShirtVestSize = ({\n values,\n field,\n journeyHelper,\n journey,\n getFieldProps,\n touched,\n errors,\n navigate,\n activity: { theme, products },\n}: FormFieldProps) =>\n (values.maleFemaleStyles as string) ? (\n <>\n \n \n {products\n .filter(\n (product) =>\n product.type === values.tshirtOrVest &&\n product.metaData.find(\n // md = meta data\n (md) => md.key === \"gender\"\n )?.value === values.maleFemaleStyles\n )\n .sort((a, b) => a.precedence - b.precedence)\n .map((product) => (\n \n {product.metaData.find((md) => md.key === \"size-label\")\n ?.value || navigate(\"/error\")}\n {product.enabled === \"N\" && \" (out of stock)\"}\n \n ))}\n \n \n {touched.tshirtVestSize ? errors.tshirtVestSize : undefined}\n \n \n \n \n \n \n \n \n ) : null;\n\nexport default RadioSelectTShirtVestSize;\n","export default __webpack_public_path__ + \"static/media/GIGW-Thank-You-Page-Image.783ea015.jpg\";","import ImageBox from \"../../components/ImageBox\";\nimport renderGIGWThankYouImage from \"../../assets/GIGW-Thank-You-Page-Image.jpg\";\nimport { FormFieldProps } from \"../../types\";\n\nconst RenderGIGWThankYouImage = ({ field }: FormFieldProps) => (\n \n);\n\nexport default RenderGIGWThankYouImage;\n","export default __webpack_public_path__ + \"static/media/fundraisingPackImage.144fdcc5.jpg\";","import ImageBox from \"../../components/ImageBox\";\nimport renderFundraisingPackImage from \"../../assets/fundraisingPackImage.jpg\";\nimport { FormFieldProps } from \"../../types\";\n\nconst RenderImage = ({ field, renderImageSrc }: FormFieldProps) => (\n \n);\n\nexport default RenderImage;\n","import { Box, LegendWrapper, Radio, Select } from \"@cruk/cruk-react-components\";\nimport { ChangeEvent } from \"react\";\nimport restrictionCodes from \"../../constants/restrictionCodes.json\";\nimport { RegistrationType } from \"../../contexts/RegistrationContext\";\nimport { FormFieldProps } from \"../../types\";\nimport JourneyHelper from \"../../utils/journeyHelper\";\n\nconst { isDIYJourney } = new JourneyHelper();\n\nconst Restriction = ({\n field,\n touched,\n getFieldProps,\n values,\n errors,\n setValues,\n handleChange,\n journey,\n}: FormFieldProps) => (\n \n \n \n Where the need is greatest - your donation will help beat all cancers\n sooner\n \n\n \n Choose a cancer type or an area of research\n \n \n \n {values.restriction === \"yes\" && (\n ) => {\n setValues({ ...values, validated: false } as RegistrationType);\n handleChange(event);\n }}\n >\n \n {restrictionCodes.map(({ restrictionCode, label }) => (\n \n ))}\n \n )}\n \n \n);\n\nexport default Restriction;\n","import { Box, Button } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst Run60CTA = ({ field }: FormFieldProps) => (\n \n \n Join our Facebook Group\n \n \n);\n\nexport default Run60CTA;\n","import { Box, Button } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\n/**\n * Renders a secondary call-to-action button if the `secondCallToActionLabel` and `secondCallToActionLink`\n * properties are present in the activity object.\n *\n * @param {FormFieldProps} props - The properties passed to the component.\n * @param {Object} props.activity - The activity object containing the call-to-action details.\n * @param {Function} props.getClickableLink - A function to get the clickable link for the button.\n * @param {string} props.field - The field identifier.\n *\n * @returns {JSX.Element|null} A `Box` containing a `Button` if the call-to-action details are present, otherwise `null`.\n */\nconst SecondCallToAction = ({\n activity,\n getClickableLink,\n field,\n}: FormFieldProps) =>\n activity.secondCallToActionLabel && activity.secondCallToActionLink ? (\n \n \n {activity.secondCallToActionLabel}\n \n \n ) : null;\n\nexport default SecondCallToAction;\n","export default __webpack_public_path__ + \"static/media/default_miguel-a-amutio-Y0woUmyxGrw-unsplash.3d1d1f56.jpg\";","import { Box, IconFa, Link, Text } from \"@cruk/cruk-react-components\";\nimport { faEnvelope, faTruck } from \"@fortawesome/free-solid-svg-icons\";\nimport ImageBox from \"../../components/ImageBox\";\nimport defaultSportsImage from \"../../assets/sports-forms-images/default_miguel-a-amutio-Y0woUmyxGrw-unsplash.jpg\";\nimport { FormFieldProps } from \"../../types\";\n\nconst SportsFormsCTA = ({ field }: FormFieldProps) => (\n <>\n \n Thank you for supporting us!\n \n What happens next?\n \n \n \n \n \n Check your inbox - we have sent you an email confirmation.\n \n \n \n \n \n \n \n Expect your fundraising pack to arrive by post in the next\n two weeks\n \n \n \n \n \n If you have any questions, you can email us at{\" \"}\n \n {\" \"}\n supporter.services@cancer.org.uk\n {\" \"}\n or call us on{\" \"}\n \n 0300 123 5461\n {\" \"}\n (we are here Monday to Friday 9:00am to 6:00pm in the UK).\n \n \n \n);\n\nexport default SportsFormsCTA;\n","import { Box, Button } from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst SU2C60CTA = ({ field }: FormFieldProps) => (\n \n \n Set up your Facebook fundraiser\n \n \n);\n\nexport default SU2C60CTA;\n","import { InfoBox } from \"@cruk/cruk-react-components\";\nimport styled from \"styled-components\";\n\nconst StyledInfoBox = styled(InfoBox)`\n div {\n margin-bottom: 0;\n }\n @media (max-width: ${({ theme }) => theme?.breakpoint?.tablet}) {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n div {\n margin-right: 0 !important;\n margin-bottom: 1rem;\n }\n div:last-child > p {\n text-align: center !important;\n }\n }\n`;\n\nexport default StyledInfoBox;\n","import { Box, Heading, IconFa, Link, Text } from \"@cruk/cruk-react-components\";\nimport { faSquarePhone } from \"@fortawesome/free-solid-svg-icons\";\nimport StyledInfoBox from \"../../components/StyledInfoSupportBox\";\n\nconst SupportCallBox = () => (\n \n \n Support call\n \n }\n titleText=\"\"\n descriptionText=\"\"\n >\n \n We are willing to help. If you would like to phone us to support you,\n our telephone number is{\" \"}\n 0300 1231022.\n \n \n \n);\n\nexport default SupportCallBox;\n","import {\n Box,\n ErrorText,\n LegendWrapper,\n Radio,\n} from \"@cruk/cruk-react-components\";\nimport { FormFieldProps } from \"../../types\";\n\nconst SupporterNeedPack = ({\n values,\n errors,\n touched,\n field,\n getFieldProps,\n}: FormFieldProps) =>\n ((values.tshirtOrVest as string) === \"neither\" ||\n (values.tshirtOrVest !== \"neither\" && values.tshirtVestSize)) && (\n \n \n \n Yes\n \n \n No\n \n \n \n {touched.supporterNeedPack ? errors.supporterNeedPack : undefined}\n \n \n );\n\nexport default SupporterNeedPack;\n","export default __webpack_public_path__ + \"static/media/tshirt.ca649d2e.png\";","export default __webpack_public_path__ + \"static/media/vest.19709fce.jpg\";","import {\n Box,\n ErrorText,\n LegendWrapper,\n Radio,\n} from \"@cruk/cruk-react-components\";\nimport ImageBox from \"../../components/ImageBox\";\nimport SpaceAroundRows from \"../../components/SpaceAroundRows\";\nimport tShirtImage from \"../../assets/sports-forms-images/tshirt.png\";\nimport vestImage from \"../../assets/sports-forms-images/vest.jpg\";\nimport { RegistrationType } from \"../../contexts/RegistrationContext\";\nimport { FormFieldProps } from \"../../types\";\n\nconst TShirtOrVest = ({\n journeyHelper,\n journey,\n values,\n field,\n getFieldProps,\n setValues,\n touched,\n errors,\n}: FormFieldProps) =>\n (\n journeyHelper.isSportsFormContactCentreJourney(journey)\n ? values.hasOnlineFundraisingPage\n : values.haveEnteredEvent\n ) ? (\n \n \n \n \n T-Shirt\n \n \n Vest\n \n {\n setValues({\n ...(values as RegistrationType),\n tshirtOrVest: e.target.value,\n ironOnText: \"\",\n tshirtVestSize: \"\",\n maleFemaleStyles: \"\",\n });\n }}\n aria-label=\"Radio button to be checked if neither tshirt or vest required you can now proceed to the next step\"\n checked={values.tshirtOrVest === \"neither\"}\n >\n Neither\n \n \n {touched.tshirtOrVest ? errors.tshirtOrVest : undefined}\n \n \n \n \n {values.tshirtOrVest === \"\" && (\n \n \n \n \n )}\n {values.tshirtOrVest === \"tshirt\" && (\n \n \n \n )}\n {values.tshirtOrVest === \"vest\" && (\n \n \n \n )}\n \n \n ) : null;\n\nexport default TShirtOrVest;\n","import { Box, Collapse, Select } from \"@cruk/cruk-react-components\";\nimport { ChangeEvent } from \"react\";\nimport SizeGuide from \"../../components/SizeGuide\";\nimport { T_SHIRT } from \"../../constants/fields\";\nimport { Field } from \"../../constants/journeys\";\nimport { RegistrationType } from \"../../contexts/RegistrationContext\";\nimport { FormFieldProps } from \"../../types\";\n\nconst TShirtSize = ({\n values,\n activity: { merchandiseTemplateType, tShirtHeader, products, theme },\n field,\n isRequired,\n journey,\n getFieldProps,\n setValues,\n handleChange,\n formJourneyPage: { fields },\n touched,\n navigate,\n errors,\n optInMerchandise,\n}: FormFieldProps) =>\n (values.optInMerchandise === \"yes\" && merchandiseTemplateType === T_SHIRT) ||\n journey !== \"sf-challenges\" ? (\n <>\n \n ) => {\n setValues({\n ...values,\n } as RegistrationType);\n handleChange(event);\n }}\n errorMessage={touched.tShirtSize ? errors.tShirtSize : undefined}\n >\n \n {journey === \"challenge\" && (\n \n )}\n {products\n .filter((product) => product.type === \"tshirt\")\n .sort((a, b) => a.precedence - b.precedence)\n .map((product) => (\n \n {product.metaData.find((md) => md.key === \"size-label\")\n ?.value || navigate(\"/error\")}\n {product.enabled === \"N\" ? \" Out of stock\" : \"\"}\n \n ))}\n \n \n {/* Size Guide automatically added if we have a tShirtSize field */}\n {(values.optInMerchandise === \"yes\" &&\n merchandiseTemplateType === T_SHIRT) ||\n (journey !== \"sf-challenges\" &&\n fields &&\n fields.includes(Field.T_SHIRT_SIZE)) ? (\n \n \n \n \n \n ) : null}\n \n ) : null;\n\nexport default TShirtSize;\n","export default __webpack_public_path__ + \"static/media/DIY-5k-jogger.94852edb.png\";","export default __webpack_public_path__ + \"static/media/DIY-park-runner.f9fb4c7a.png\";","import {\n OptimizelyDecideOption,\n OptimizelyDecision,\n OptimizelyUserContext,\n} from \"@optimizely/optimizely-sdk\";\nimport { useOptimizelyContext } from \"../contexts/OptimizelyContext\";\n\ntype OptimizelyDecisionEmpty = {\n variationKey: string | null;\n // The boolean value indicating if the flag is enabled or not\n enabled: boolean;\n // The collection of variables associated with the decision\n variables: { [variableKey: string]: unknown };\n // The rule key of the decision\n ruleKey: string | null;\n // The flag key for which the decision has been made for\n flagKey: string;\n // A copy of the user context for which the decision has been made for\n userContext: OptimizelyUserContext | null;\n // An array of error/info messages describing why the decision has been made.\n reasons: string[];\n};\n\nconst createEmptyDecsion = (flagKey: string) => ({\n variationKey: null,\n enabled: false,\n ruleKey: null,\n flagKey,\n variables: {},\n reasons: [],\n userContext: null,\n});\n\n/**\n * A React Hook that retrieves the flag decision, optionally\n * auto updating those values based on underlying user or datafile changes.\n *\n * Note: The react client can become ready AFTER the timeout period.\n * ClientReady and DidTimeout provide signals to handle this scenario.\n */\nexport const useOptimizelyDecision = (\n flagKey: string,\n options: OptimizelyDecideOption[] = []\n): {\n error: Error | null;\n decision: OptimizelyDecision | OptimizelyDecisionEmpty;\n} => {\n const { optimizelyContext } = useOptimizelyContext();\n const { optimizelyClient, optimizelyUserContext } = optimizelyContext;\n\n if (!optimizelyClient) {\n return {\n error: new Error(\n `Unable to use decision ${flagKey}. Optimizely client not set up`\n ),\n decision: createEmptyDecsion(flagKey),\n };\n }\n\n if (!optimizelyUserContext) {\n return {\n error: new Error(\n `Unable to use decision ${flagKey}. Optimizely user context not set up`\n ),\n decision: createEmptyDecsion(flagKey),\n };\n }\n\n const decision: OptimizelyDecision = optimizelyUserContext.decide(\n flagKey,\n options\n );\n\n if (!decision) {\n return {\n error: new Error(`Unable to use decision ${flagKey}. Decision failed`),\n decision: createEmptyDecsion(flagKey),\n };\n }\n return {\n error: null,\n decision,\n };\n};\n\nexport default useOptimizelyDecision;\n","import { Box, Select } from \"@cruk/cruk-react-components\";\nimport { ChangeEvent } from \"react\";\nimport { RegistrationType } from \"../../contexts/RegistrationContext\";\nimport { FormFieldProps } from \"../../types\";\nimport StyledTextAreaField from \"../../components/StyledTextAreaField\";\n\nconst InformationLookingFor: React.FC = ({\n values,\n giwgLookingForVariables,\n field,\n getFieldProps,\n setValues,\n handleChange,\n touched,\n errors,\n handleBlur,\n trackEvent,\n enabledExperimentGIWGVariation,\n}: FormFieldProps) => {\n return enabledExperimentGIWGVariation ? (\n <>\n \n ) => {\n setValues({\n ...values,\n } as RegistrationType);\n handleChange(event);\n trackEvent({\n eventKey: \"giwg_information_looking_for\",\n });\n }}\n errorMessage={\n touched.informationLookingFor\n ? errors.informationLookingFor\n : undefined\n }\n >\n \n {giwgLookingForVariables &&\n giwgLookingForVariables.values.map(\n (opt: { name: string; value: string }) => (\n \n )\n )}\n \n \n {values.informationLookingFor === \"Other\" && (\n \n \n \n )}\n \n ) : null;\n};\n\nexport default InformationLookingFor;\n","import { Box, Heading, Loader, Text } from \"@cruk/cruk-react-components\";\nimport React, { FC, useContext, useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport {\n Event,\n EventListResultSuccess,\n EventResultSuccess,\n} from \"@cruk/activity-management-schema\";\nimport { sanitize } from \"dompurify\";\nimport { Formik, FormikHelpers, FormikProps, FormikValues } from \"formik\";\nimport { makeValidationSchema } from \"../validation/validationSchema\";\nimport FormCollapseLabelWhyDoWeNeedThis from \"../../components/FormCollapseLabelWhyDoWeNeedThis\";\nimport FormPageBannerText from \"../../components/FormPageBannerText\";\nimport FormSubmitNextAndBackButton from \"../../components/FormSubmitNextAndBackButton\";\n// containers and components\nimport ScrollToError from \"../../components/ScrollToError\";\nimport { Field, SubmitAction } from \"../../constants/journeys\";\n// data\nimport { GET_EVENT, GET_EVENTS } from \"../../constants/getQueryTypes\";\nimport useGetQuery from \"../../hooks/useGetQuery\";\nimport getFormJourney from \"../../constants/journeys/formJourney\";\nimport FormPageWrapper from \"../../containers/FormPageWrapper\";\nimport FormWrapper from \"../../containers/FormWrapper\";\nimport ActivityContext from \"../../contexts/ActivityContext\";\nimport RegistrationContext, {\n RegistrationType,\n} from \"../../contexts/RegistrationContext\";\nimport useDataLayer from \"../../hooks/useDataLayer\";\nimport useNavigateToPage from \"../../hooks/useNavigateToPage\";\nimport {\n FormFieldProps,\n FormPageProps,\n GIWGLookingForVariables,\n} from \"../../types\";\nimport { createProcessJob } from \"../../utils/amws\";\nimport { trackDataDogError } from \"../../utils/dataDog\";\nimport dateOptions from \"../../utils/dateOptions\";\nimport filteredHandleChange from \"../../utils/filteredHandleChange\";\nimport { JourneyHelper } from \"../../utils/journeyHelper\";\nimport {\n DIY_COUCH_TO_5K_JOGGER,\n GIFTS_IN_WILLS_GUIDE,\n} from \"../../constants/journeys/journeyNames\";\nimport {\n Events,\n FeatureFlags,\n FeatureFlagVariation,\n} from \"../../utils/optimizely/optimizelyFeatureFlags\";\nimport renderCustomText from \"../../utils/renderCustomText\";\nimport ActivityDate from \"../fields/ActivityDate\";\nimport ActivityMonth from \"../fields/ActivityMonth\";\nimport ActivityType from \"../fields/ActivityType\";\nimport Address from \"../fields/Address\";\nimport CallToAction from \"../fields/CallToAction\";\nimport ContactCentreSportsProductsLookup from \"../fields/ContactCentreSportsProductsLookup\";\nimport DateOfBirth from \"../fields/DateOfBirth\";\nimport DeliveryMethod from \"../fields/DeliveryMethod\";\nimport DeliveryMethod2 from \"../fields/DeliveryMethod2\";\nimport DynamicEventName from \"../fields/DynamicEventName\";\nimport EmailAddress from \"../fields/EmailAddress\";\nimport EventLookup from \"../fields/EventLookup\";\nimport FacebookFundraiserCTA from \"../fields/FacebookFundraiserCTA\";\nimport FirstName from \"../fields/FirstName\";\nimport FundraisingTarget from \"../fields/FundraisingTarget\";\nimport GiftsInWillsGuideImage from \"../fields/GiftsInWillsGuideImage\";\nimport HasOnlineFundraisingPage from \"../fields/HasOnlineFundraisingPage\";\nimport HaveEnteredEvent from \"../fields/HaveEnteredEvent\";\nimport IronOnText from \"../fields/IronOnText\";\nimport LastName from \"../fields/LastName\";\nimport LegaciesDigitalGuideCTA from \"../fields/LegaciesDigitalGuideCTA\";\nimport MaleFemaleStyles from \"../fields/MaleFemaleStyles\";\n// Form components\nimport MerchandiseType from \"../fields/MerchandiseType\";\nimport MoreInfo from \"../fields/MoreInfo\";\nimport OptIn from \"../fields/OptIn\";\nimport OrganisationName from \"../fields/OrganisationName\";\nimport PhoneNumber from \"../fields/PhoneNumber\";\nimport ProductQuantity from \"../fields/ProductQuantity\";\nimport RadioSelectTShirtVestSize from \"../fields/RadioSelectTShirtVestSize\";\nimport RenderGIGWThankYouImage from \"../fields/RenderGIGWThankYouImage\";\nimport RenderImage from \"../fields/RenderImage\";\nimport Restriction from \"../fields/Restriction\";\nimport Run60CTA from \"../fields/Run60CTA\";\nimport SecondCallToAction from \"../fields/SecondCallToAction\";\nimport SportsFormsCTA from \"../fields/SportsFormsCTA\";\nimport SU2C60CTA from \"../fields/SU2C60CTA\";\nimport SupportCallBox from \"../fields/SupportCallBox\";\nimport SupporterNeedPack from \"../fields/SupporterNeedPack\";\nimport TShirtOrVest from \"../fields/TShirtOrVest\";\nimport TShirtSize from \"../fields/TShirtSize\";\n// images and styles\nimport \"./FormPage.css\";\n\nimport renderFundraisingPackImage from \"../../assets/fundraisingPackImage.jpg\";\nimport renderDIY5kJoggerImage from \"../../assets/DIY-5k-jogger.png\";\nimport renderDIYParkRunnerImage from \"../../assets/DIY-park-runner.png\";\n\n// Optimizely GIWG experiment demo\nimport useOptimizelyDecision from \"../../hooks/useOptimizelyDecision\";\nimport InformationLookingFor from \"../fields/InformationLookingFor\";\nimport { useOptimizelyContext } from \"../../contexts/OptimizelyContext\";\nimport { OptimizelyDecision } from \"@optimizely/optimizely-sdk\";\n\nconst FormPage: FC = ({ journey, currentPage }) => {\n const navigate = useNavigate();\n const activity = useContext(ActivityContext);\n const { registration } = useContext(RegistrationContext);\n const { nextPage, previousPage } = useNavigateToPage(journey, currentPage);\n const { pushPageViewConfirmation } = useDataLayer();\n const [serverValidationError, setServerValidationError] = useState(\"\");\n const [submitted, setSubmitted] = useState(false);\n const [events, setEvents] = useState([]);\n const [eventRegistered, setEventRegistered] = useState();\n const [optInMerchandise, setOptInMerchandise] = useState(\n null\n );\n const { trackEvent } = useOptimizelyContext();\n const [giwgLookingForVariables, setGiwgLookingForVariables] = useState<{\n dropdown_value: any;\n } | null>(null);\n const [enabledExperimentGIWGVariation, setEnabledExperimentGIWGVariation] =\n useState(undefined);\n const [giwgExperimentInitialized, setGiwgExperimentInitialized] =\n useState(false);\n\n /* Optimizely development experiment demo */\n const { decision } = useOptimizelyDecision(\n FeatureFlags.DEVELOPMENT_EXPERIMENT_FLAG\n );\n\n const { enabled: experimentEnabled, variationKey } = decision;\n\n const enabledExperimentHeaderControl =\n experimentEnabled && variationKey === FeatureFlagVariation.CONTROL;\n const enabledExperimentHeadervariation =\n experimentEnabled && variationKey === FeatureFlagVariation.VARIATION;\n\n /* Optimizely development experiment demo end */\n\n /* Optimizely GIWG experiment demo */\n\n const decisionResult =\n journey === GIFTS_IN_WILLS_GUIDE\n ? useOptimizelyDecision(FeatureFlags.GIWG_ADDITIONAL_QUESTION)\n : { decision: { enabled: false, variationKey: null } };\n\n useEffect(() => {\n if (journey === GIFTS_IN_WILLS_GUIDE && !giwgExperimentInitialized) {\n const decision = decisionResult.decision as OptimizelyDecision;\n\n if (decision) {\n const giwgExperimentEnabled = decision.enabled;\n const variationKeyGIWG = decision.variationKey;\n setGiwgLookingForVariables(\n decision.variables as { dropdown_value: any }\n );\n\n setEnabledExperimentGIWGVariation(\n giwgExperimentEnabled && variationKeyGIWG === FeatureFlagVariation.ON\n );\n }\n setGiwgExperimentInitialized(true);\n }\n }, [journey, decisionResult, giwgExperimentInitialized]);\n\n /* Optimizely GIWG experiment demo end */\n\n const {\n location: { search },\n } = window;\n\n // form journey config\n const formJourneyPage = getFormJourney(journey, activity).pages[currentPage];\n\n // sports forms utility functions\n const params = new URLSearchParams(search);\n const journeyHelper = new JourneyHelper();\n const eventCode = sanitize(params.get(\"event_code\") as string);\n\n const { isSportsFormWithEventCodeJourney, isSportsFormContactCentreJourney } =\n journeyHelper;\n\n // API calls\n const eventQuery = useGetQuery(\n GET_EVENT,\n eventCode,\n isSportsFormWithEventCodeJourney(journey)\n );\n const eventsQuery = useGetQuery(\n GET_EVENTS,\n \"Generic Events\",\n registration.isGenericEvent\n );\n\n useEffect(() => {\n if (!eventCode && isSportsFormWithEventCodeJourney(journey)) {\n return navigate(\"/error\");\n }\n setEventRegistered(eventQuery?.data?.event[0]);\n }, [eventQuery?.isSuccess]);\n\n useEffect(() => {\n if (eventsQuery?.data?.events) setEvents(eventsQuery.data.events);\n }, [eventsQuery?.isSuccess]);\n\n // configs\n const { urlName, bannerText } = activity;\n\n const {\n heading,\n introText,\n fields,\n submitButtonAction,\n secondaryFields,\n secondaryHeading,\n } = formJourneyPage;\n\n const validationSchema = makeValidationSchema(\n formJourneyPage,\n journey,\n activity,\n optInMerchandise,\n enabledExperimentGIWGVariation\n );\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n // utility functions\n\n const getClickableLink = (link: string | undefined) =>\n link && (link.startsWith(\"http://\") || link.startsWith(\"https://\"))\n ? link\n : `http://${link || \"\"}`;\n\n const handleError = (error: string) => {\n const errors = error.split(\": \");\n const errorMessage = errors[1];\n const errorType = errors[0];\n setSubmitted(false);\n if (errorType === \"Validation error\") {\n trackDataDogError(\"Validation error.\", { errors });\n switch (errorMessage) {\n case \"emailAddress is invalid\":\n return setServerValidationError(\n \"Please go back and enter a valid email address\"\n );\n default:\n return setServerValidationError(errorMessage);\n }\n }\n return navigate(\"/error\");\n };\n\n // eslint-disable-next-line consistent-return\n const activitySubmissionTask = async (values: RegistrationType) => {\n try {\n trackEvent({ eventKey: Events.GIWG_SIGNUP_EVENT });\n localStorage.removeItem(\"enabledExperimentGIWGVariation\");\n\n const { id } = await createProcessJob(activity, values);\n nextPage(values);\n pushPageViewConfirmation(activity, id);\n } catch (e) {\n if (e instanceof Error) {\n return handleError(e.message);\n }\n return navigate(\"/error\");\n }\n };\n\n const activitySubmissionWithFundraisingPageTask = async (\n values: RegistrationType\n // eslint-disable-next-line consistent-return\n ) => {\n try {\n const { id, fundraisingPageRedirectUrl } = await createProcessJob(\n activity,\n values\n );\n\n if (!fundraisingPageRedirectUrl) {\n // fundraisingPageRedirectUrl was expected but it was empty\n return navigate(`/${urlName}/error/registration`);\n }\n\n pushPageViewConfirmation(activity, id);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.location.href = fundraisingPageRedirectUrl;\n } catch (e) {\n if (e instanceof Error) {\n trackDataDogError(\"Activity submission.\", { e });\n return handleError(e.message);\n }\n\n return navigate(\"/error\");\n }\n };\n\n // eslint-disable-next-line consistent-return\n async function handleSubmit(\n values: RegistrationType,\n formProps: FormikHelpers\n ) {\n if (submitButtonAction === SubmitAction.NEXT) {\n const updatedValues =\n eventCode && journeyHelper.isSportsFormWithEventCodeJourney(journey)\n ? {\n ...values,\n eventCode,\n eventName: eventRegistered?.title,\n eventStart: eventRegistered?.date_start,\n eventTypes: eventRegistered?.event_types,\n }\n : values;\n\n nextPage(updatedValues);\n formProps.resetForm({ values: updatedValues });\n }\n\n if (\n isSportsFormContactCentreJourney(journey) &&\n submitButtonAction ===\n SubmitAction.ACTIVITY_SUBMISSION_WITH_FUNDRAISING_PAGE &&\n values.hasOnlineFundraisingPage === \"no\"\n ) {\n setSubmitted(true);\n return activitySubmissionTask(values);\n }\n if (\n isSportsFormContactCentreJourney(journey) &&\n submitButtonAction ===\n SubmitAction.ACTIVITY_SUBMISSION_WITH_FUNDRAISING_PAGE &&\n values.hasOnlineFundraisingPage === \"yes\"\n ) {\n setSubmitted(true);\n return activitySubmissionWithFundraisingPageTask(values);\n }\n\n if (submitButtonAction === SubmitAction.ACTIVITY_SUBMISSION) {\n setSubmitted(true);\n if (journey === GIFTS_IN_WILLS_GUIDE) {\n trackEvent({ eventKey: Events.GIWG_SIGNUP_EVENT });\n }\n\n return activitySubmissionTask(values);\n }\n\n if (\n submitButtonAction ===\n SubmitAction.ACTIVITY_SUBMISSION_WITH_FUNDRAISING_PAGE\n ) {\n setSubmitted(true);\n return activitySubmissionWithFundraisingPageTask(values);\n }\n }\n\n const initialValues = { ...registration };\n\n // only for pages that have the activityDateTime field, if it does not have a\n // value yet set it's initialValue to the first option of the dropdown\n if (\n (fields.includes(Field.ACTIVITY_MONTH) &&\n !initialValues.activityDateTime) ||\n journey === DIY_COUCH_TO_5K_JOGGER\n ) {\n initialValues.activityDateTime = dateOptions[0].value;\n }\n\n // Default delivery method to email for journeys that have deliveryMethod\n if (\n !initialValues.deliveryMethod &&\n (fields.includes(Field.DELIVERY_METHOD) ||\n fields.includes(Field.DELIVERY_METHOD_2))\n ) {\n initialValues.deliveryMethod = \"email\";\n }\n\n function isRequired(field: string): boolean {\n return validationSchema.fields[field]?.tests?.some(\n // this is an internal Yup structure\n (test: Record) =>\n test.OPTIONS.name === \"required\"\n );\n }\n\n // FORM FIELDS RENDERED\n return (\n \n \n \n {/* Optimizely development experiment demo */}\n {enabledExperimentHeaderControl &&

Experiment control here

}\n {enabledExperimentHeadervariation &&

Experiment variation here

}\n {/* Optimizely development experiment demo end */}\n {heading}\n {introText ? (\n \n {renderCustomText(introText)}\n \n ) : null}\n \n {(formProps: FormikProps) => {\n const props: FormFieldProps = {\n ...formProps,\n activity,\n formJourneyPage,\n journey,\n journeyHelper,\n isRequired,\n optInMerchandise,\n setOptInMerchandise,\n navigate,\n eventRegistered,\n submitted,\n previousPage,\n setEvents,\n events,\n serverValidationError,\n setEventRegistered,\n getClickableLink,\n enabledExperimentGIWGVariation,\n trackEvent,\n giwgLookingForVariables: giwgLookingForVariables\n ? (giwgLookingForVariables.dropdown_value as GIWGLookingForVariables)\n : undefined,\n filterHandleChange: () =>\n filteredHandleChange(\n formProps.handleChange,\n formProps.values as RegistrationType,\n formProps.setValues\n ),\n };\n return (\n
\n \n {fields &&\n React.Children.toArray(\n fields.map((field) => {\n props.field = field;\n switch (field) {\n // PERSONAL INFO - why do we need this?\n\n case Field.FIRST_NAME:\n return ;\n\n case Field.LAST_NAME:\n return ;\n\n case Field.DATE_OF_BIRTH:\n return ;\n\n case Field.EMAIL_ADDRESS:\n return ;\n\n case Field.PHONE_NUMBER:\n return ;\n\n case Field.GIFTS_IN_WILLS_GUIDE_IMAGE:\n return ;\n\n case Field.ADDRESS:\n return
;\n\n // ACTIVITY AND FUNDRAISING INFO\n case Field.ACTIVITY_TYPE:\n return ;\n\n case Field.ACTIVITY_DATE:\n return ;\n\n case Field.ACTIVITY_MONTH:\n return ;\n\n case Field.MORE_INFO:\n return ;\n\n case Field.FUNDRAISING_TARGET:\n return ;\n\n case Field.RESTRICTION:\n return ;\n\n case Field.ORGANISATION_NAME:\n return ;\n\n // PACKS AND PRODUCTS\n case Field.RENDER_IMAGE:\n return (\n \n );\n\n case Field.RENDER_GIGW_THANK_YOU_IMAGE:\n return ;\n\n case Field.T_SHIRT_SIZE:\n return ;\n\n case Field.PRODUCT_QUANTITY:\n return ;\n\n case Field.OPT_IN:\n return ;\n\n // CALL TO ACTION\n // TODO: Configure CTA button label and links rationalise this section\n case Field.LEGACIES_DIGITAL_GUIDE_CTA:\n return ;\n\n case Field.CALL_TO_ACTION:\n return ;\n\n case Field.SECOND_CALL_TO_ACTION:\n return ;\n\n // FULFILMENT AND DELIVERY METHODS\n case Field.DELIVERY_METHOD:\n return ;\n\n case Field.DELIVERY_METHOD_2:\n return ;\n\n // SPORTS JOURNEYS\n // TODO: This should be in the run-60 data not in the component\n case Field.FACEBOOK_FUNDRAISER_CTA:\n return ;\n\n case Field.RUN_60_CTA:\n return ;\n\n case Field.SU_2C_FB_CTA:\n return ;\n\n // SPORTS FORM FIELDS\n case Field.DYNAMIC_EVENT_NAME:\n return ;\n\n case Field.EVENT_LOOKUP:\n return ;\n\n case Field.HAVE_ENTERED_EVENT:\n return ;\n\n case Field.HAS_ONLINE_FUNDRAISING_PAGE:\n return ;\n\n case Field.T_SHIRT_OR_VEST:\n return ;\n\n case Field.MALE_FEMALE_STYLES:\n return ;\n\n case Field.RADIO_SELECT_T_SHIRT_VEST_SIZE:\n return ;\n\n case Field.SUPPORTER_NEED_PACK:\n return ;\n\n case Field.IRON_ON_TEXT:\n return ;\n\n case Field.CONTACT_CENTRE_SPORTS_PRODUCTS_LOOKUP:\n return (\n \n );\n\n case Field.SPORTS_FORMS_CTA:\n return ;\n\n case Field.MERCHANDISE_TYPE:\n return ;\n\n case Field.RENDER_IMAGE_DIY_5K_JOGGER:\n return (\n \n );\n\n case Field.RENDER_IMAGE_PARK_RUNNER:\n return (\n \n );\n\n case Field.INFORMATION_LOOKING_FOR:\n return ;\n\n default:\n return null;\n }\n })\n )}\n\n {(eventQuery?.isLoading || eventsQuery?.isLoading) && (\n \n )}\n {eventQuery?.error && (\n {eventQuery.error}\n )}\n {eventsQuery?.error && (\n {eventsQuery.error}\n )}\n\n \n\n {secondaryHeading && (\n \n {secondaryHeading}\n \n )}\n\n {secondaryFields &&\n React.Children.toArray(\n secondaryFields.map((field) => {\n switch (field) {\n case Field.ADDRESS:\n return
;\n default:\n return null;\n }\n })\n )}\n\n \n\n {serverValidationError ? (\n {serverValidationError}\n ) : null}\n\n {fields.includes(Field.SUPPORT_CALL_BOX) ? (\n \n ) : null}\n \n );\n }}\n \n \n \n );\n};\n\nexport default FormPage;\n","export default __webpack_public_path__ + \"static/media/rfl_standard_life_logo_placeholder.d41c8d78.png\";","import {\n crukTheme as originalCrukTheme,\n su2cTheme as originalSU2CTheme,\n} from \"@cruk/cruk-react-components\";\nimport { FC } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport deepmerge from \"deepmerge\";\nimport { ThemeProvider as StyledThemeProvider } from \"styled-components\";\nimport standardLifeLogo from \"../assets/rfl_standard_life_logo_placeholder.png\";\n\nconst crukTheme = deepmerge(\n originalCrukTheme,\n {\n siteConfig: {\n logoAlt: \"Cancer Research UK\",\n logoUrl: \"https://www.cancerresearchuk.org\",\n title: \"Cancer Research UK\",\n faviconUrl: \"/favicon.ico\",\n },\n colors: {\n circularProgress: originalCrukTheme.tokenColors.magenta_500,\n progressBar: originalCrukTheme.tokenColors.darkBlue_500,\n },\n buttonFontWeight: originalCrukTheme.typography.fontWeightMedium,\n headingFontWeight: originalCrukTheme.typography.fontWeightMedium,\n headingTextTransform: originalCrukTheme.button.textTransform,\n },\n {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n arrayMerge: (_, array) => array,\n }\n);\n\nconst rflTheme = deepmerge(\n crukTheme,\n {\n siteConfig: {\n logoSrc: standardLifeLogo,\n logoAlt: \"Race for Life\",\n logoUrl: \"https://raceforlife.cancerresearchuk.org\",\n title: \"Race for Life\",\n },\n },\n {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n arrayMerge: (_, array) => array,\n }\n);\n\nconst su2cTheme = deepmerge(\n originalSU2CTheme,\n {\n siteConfig: {\n logoUrl: \"https://standuptocancer.org.uk/\",\n title: \"Stand Up To Cancer\",\n faviconUrl: \"/favicon-su2c.ico\",\n },\n colors: {\n circularProgress: originalSU2CTheme.tokenColors.su2cOrange3,\n progressBar: originalSU2CTheme.tokenColors.su2cBlack,\n textInputBorder: originalSU2CTheme.tokenColors.su2cBlack,\n },\n buttonFontWeight: originalSU2CTheme.typography.fontWeightHeavy,\n headingFontWeight: originalSU2CTheme.typography.fontWeightHeavy,\n headingTextTransform: originalSU2CTheme.button.textTransform,\n faviconUrl: \"/favicon-su2c.ico\",\n },\n {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n arrayMerge: (_, array) => array,\n }\n);\n\nexport const themes = {\n cruk: crukTheme,\n rfl: rflTheme,\n su2c: su2cTheme,\n dry: crukTheme,\n};\n\ntype ThemeProviderProps = {\n themeKey: keyof typeof themes;\n};\n\nconst ThemeProvider: FC = ({\n themeKey = \"cruk\",\n children,\n}) => {\n const theme = themes[themeKey];\n const {\n siteConfig: { faviconUrl },\n } = theme;\n\n return (\n \n \n \n \n {children}\n \n );\n};\n\nexport default ThemeProvider;\n","import { GlobalStyle, Header, Loader } from \"@cruk/cruk-react-components\";\nimport { FC, lazy, Suspense, useEffect, useState } from \"react\";\nimport { Navigate, Route, Routes } from \"react-router-dom\";\nimport { Amplify } from \"aws-amplify\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport ActivityRoutes from \"./components/ActivityRoutes\";\nimport { OptimizelyLoader } from \"./components/OptimizelyLoader\";\nimport StepTracker from \"./components/StepTracker\";\nimport ActivityContainer from \"./containers/ActivityContainer\";\nimport RegistrationContainer from \"./containers/RegistrationContainer\";\nimport ActivityContext from \"./contexts/ActivityContext\";\nimport { OptimizelyContextProvider } from \"./contexts/OptimizelyContext\";\nimport FormPage from \"./Form/pages/FormPage\";\nimport useDataLayer from \"./hooks/useDataLayer\";\nimport ThemeProvider, { themes } from \"./provider/ThemeProvider\";\nimport { setUpDataDog, trackDataDogError } from \"./utils/dataDog\";\nimport { Helmet } from \"react-helmet\";\n\nconst Admin = lazy(() => import(\"./Admin/pages/admin-page/AdminPage\"));\nconst ErrorPage = lazy(() => import(\"./Form/pages/ErrorPage\"));\nconst OPTIMIZELY_SDK_KEY =\n process.env.REACT_APP_OPTIMIZELY_SDK_KEY || \"7TBv8dRDF9DWGwC12ZYnr\";\n\nconst App: FC = () => {\n const [isLoading, setIsLoading] = useState(true);\n const [isDynamicConfigError, setDynamicConfigError] = useState(false);\n const { pushInteraction } = useDataLayer();\n const [baseUrl, setBaseUrl] = useState(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n process.env.REACT_APP_BASE_URL!\n );\n\n // Load Dynamic Configuration to configure authentication and backend integration.\n useEffect(() => {\n pushInteraction(\"eventId\", uuidv4());\n\n if (!process.env.REACT_APP_CONFIG_FILE) {\n setIsLoading(false);\n setDynamicConfigError(true);\n return;\n }\n fetch(process.env.REACT_APP_CONFIG_FILE)\n .then((response) => {\n if (!response.ok) {\n trackDataDogError(\"Unable to receive dynamic config file\");\n throw new Error(\"Unable to receive dynamic config file\");\n }\n return response.json();\n })\n .then(\n (config: {\n userPoolId: string;\n userPoolClientId: string;\n userPoolDomain: string;\n apiGraphQlEndpoint: string;\n publicApiKey: string;\n url: string;\n }) => {\n Amplify.configure({\n aws_project_region: process.env.REACT_APP_REGION,\n aws_cognito_region: process.env.REACT_APP_REGION,\n aws_user_pools_id: config.userPoolId,\n aws_user_pools_web_client_id: config.userPoolClientId,\n oauth: {\n domain: config.userPoolDomain,\n redirectSignIn: `${config.url}/admin`,\n redirectSignOut: config.url,\n responseType: \"code\",\n },\n federationTarget: \"COGNITO_USER_POOLS\",\n API: {\n aws_appsync_graphqlEndpoint: config.apiGraphQlEndpoint,\n aws_appsync_region: process.env.REACT_APP_REGION,\n aws_appsync_authenticationType: \"API_KEY\",\n aws_appsync_apiKey: config.publicApiKey,\n },\n });\n setBaseUrl(config.url);\n setUpDataDog(config.apiGraphQlEndpoint);\n setIsLoading(false);\n return true;\n }\n )\n .catch((err) => {\n setDynamicConfigError(true);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n trackDataDogError(err);\n });\n }, []);\n\n const RenderPage = ({\n element,\n theme,\n header,\n }: {\n element: JSX.Element;\n theme?: \"cruk\" | \"rfl\" | \"su2c\" | \"dry\";\n header?: boolean;\n }) => (\n \n \n {header &&
}\n {element}\n \n );\n\n return isDynamicConfigError ? (\n } />\n ) : isLoading ? (\n \n ) : (\n \n {\n console.log(err, {\n component: \"OptimizelyLoader\",\n function: \"setOptimizelyContext\",\n });\n }}\n />\n \n } />\n }\n />\n\n } />\n\n {process.env.REACT_APP_ENABLE_ADMIN === \"yes\" && (\n } />}\n />\n )}\n \n \n \n {(activity) => (\n }\n />\n )}\n \n \n }\n />\n\n \n \n {(activity) => (\n }\n />\n )}\n \n \n }\n />\n\n \n \n {(activity) => (\n <>\n \n {activity?.metaTitle ? (\n {activity.metaTitle}\n ) : (\n \n {themes[activity.theme].siteConfig.title}\n \n )}\n {activity?.metaDescription ? (\n \n ) : (\n \n )}\n \n \n \n
\n \n \n {({ page, currentStep, totalSteps }) =>\n page === \"thank-you\" ? null : (\n \n )\n }\n \n \n
\n \n \n \n {({ journey, page }) => (\n \n )}\n \n \n \n
\n \n )}\n
\n \n }\n />\n \n }\n />\n \n }\n />\n
\n );\n};\n\nexport default App;\n","/* eslint-disable eslint-comments/disable-enable-pair */\n\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n\n/* eslint-disable @typescript-eslint/no-floating-promises */\n\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { QueryClient, QueryClientProvider } from \"react-query\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport App from \"./App\";\n\nconst queryClient = new QueryClient();\nconst container = document.getElementById(\"root\");\nconst root = ReactDOM.createRoot(container!);\nimport { ReactQueryDevtools } from \"react-query/devtools\";\nconst { REACT_APP_DATA_DOG_ENV = \"development\" } = process.env;\n\nfunction render() {\n root.render(\n \n \n \n \n {REACT_APP_DATA_DOG_ENV === \"development\" ? (\n \n ) : (\n <>\n )}\n \n );\n}\n\nfunction main() {\n if (process.env.NODE_ENV === \"production\" && !window.Cypress) {\n // if the user somehow arrived at a subpage of the form like /urlName/your-address,\n // redirect them to the first page /urlName but use negative lookahead to\n // exclude /error, /admin and /urlName/thank-you pages from this check\n\n const match = window.location.pathname.match(\n /^\\/(?!error|admin|.*\\/thank-you)(?.*)\\/.*$/\n );\n\n if (match) {\n window.location.pathname = `/${match?.groups?.urlName}`;\n\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires\n const axe = require(\"react-axe\");\n axe(React, ReactDOM, 2000);\n }\n\n if (process.env.REACT_APP_AMWS_ENABLED === \"no\") {\n // eslint-disable-next-line promise/always-return, promise/catch-or-return\n import(\"./utils/createMirageServer\").then((createMirageServer) => {\n createMirageServer.default();\n render();\n });\n } else {\n render();\n }\n}\n\nmain();\n","import cleanDeep from \"clean-deep\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport {\n Activity,\n ActivityInput,\n ActivityQuery,\n EventListResultSuccess,\n EventQuery,\n EventResultSuccess,\n EventsQuery,\n MutateActivityMutation,\n MutateProductMutation,\n Product,\n ProductInput,\n ProductQuery,\n} from \"../index\";\n\n// A collection of utility methods to aid conversion of activity types.\n\n/**\n * Activity and ActivityInput should be kept in sync.\n * The only difference is that a stored activity has\n * __typename, created and updated fields.\n */\nexport const convertActivityToInput = (activity: Activity): ActivityInput =>\n cleanDeep(activity, {\n cleanKeys: [\"__typename\", \"created\", \"updated\"],\n emptyArrays: false,\n emptyObjects: false,\n emptyStrings: false,\n nullValues: true,\n undefinedValues: false,\n }) as ActivityInput;\n\n/**\n * Converts a GraphQL responses to the Activity type. This cleans up null\n * values that are added by GraphQL typings.\n */\nexport const convertActivityResponseToActivity = (\n response: ActivityQuery | MutateActivityMutation\n): Activity => {\n const { activity } = response;\n // eslint-disable-next-line no-underscore-dangle\n if (!activity || activity.__typename !== \"Activity\")\n throw Error(\"Cannot convert non-Activity\");\n return cleanDeep(activity, {\n emptyArrays: false,\n emptyObjects: false,\n emptyStrings: false,\n nullValues: true,\n undefinedValues: false,\n }) as Activity;\n};\n\n/**\n * Product and ProductInput should be kept in sync.\n * The only difference is that a stored Product has\n * __typename, created and updated fields.\n */\nexport const convertProductToInput = (product: Product): ProductInput =>\n cleanDeep(product, {\n cleanKeys: [\"__typename\", \"created\", \"updated\"],\n emptyArrays: false,\n emptyObjects: false,\n emptyStrings: false,\n nullValues: true,\n undefinedValues: false,\n }) as ProductInput;\n\n/**\n * Converts a GraphQL responses to the Product type. This cleans up null\n * values that are added by GraphQL typings.\n */\nexport const convertProductResponseToProduct = (\n response: ProductQuery | MutateProductMutation\n): Product => {\n const { product } = response;\n // eslint-disable-next-line no-underscore-dangle\n if (!product || product.__typename !== \"Product\")\n throw Error(\"Cannot convert non-product\");\n return cleanDeep(product, {\n emptyArrays: false,\n emptyObjects: false,\n emptyStrings: false,\n nullValues: true,\n undefinedValues: false,\n }) as Product;\n};\n\n/**\n * Converts a GraphQL responses to the Events type. This cleans up null\n * values that are added by GraphQL typings.\n */\nexport const convertEventsResponseToEvents = (\n response: EventsQuery\n): EventListResultSuccess => {\n const { events } = response;\n\n return cleanDeep(events, {\n emptyArrays: false,\n emptyObjects: false,\n emptyStrings: false,\n nullValues: true,\n undefinedValues: false,\n }) as EventListResultSuccess;\n};\n\n/**\n * Converts a GraphQL responses to the Event type. This cleans up null\n * values that are added by GraphQL typings.\n */\nexport const convertEventResponseToEvent = (\n response: EventQuery\n): EventResultSuccess => {\n const { event } = response;\n\n return cleanDeep(event, {\n emptyArrays: false,\n emptyObjects: false,\n emptyStrings: false,\n nullValues: true,\n undefinedValues: false,\n }) as EventResultSuccess;\n};\n\n/**\n * Converts the ActivityInput type into a valid Activity for storage.\n * This requires adding the appropriate __typenames and ensuring, created, updated\n * and id fields are correct.\n */\nexport function convertInputToActivity(\n input: ActivityInput,\n current?: Activity\n): Activity {\n const date = new Date().toISOString();\n return {\n __typename: \"Activity\",\n ...input,\n journeyConfig: {\n __typename: \"JourneyConfig\",\n ...input.journeyConfig,\n fields: input.journeyConfig.fields.map((field) => ({\n __typename: \"Field\",\n ...field,\n validation: { __typename: \"FieldValidation\", ...field.validation },\n })),\n },\n products: input.products.map((product) => ({\n __typename: \"Product\",\n ...product,\n metadata: product.metadata.map((metadata) => ({\n __typename: \"Metadata\",\n ...metadata,\n })),\n })),\n reference: {\n __typename: \"Reference\",\n ...input.reference,\n },\n id: input.id ?? uuidv4(),\n updated: date,\n created: current ? current.created : date,\n };\n}\n\nexport function convertInputToProduct(\n input: ProductInput,\n current?: Product\n): Product {\n const date = new Date().toISOString();\n return {\n __typename: \"Product\",\n ...input,\n metadata: input.metadata.map((metadata) => ({\n __typename: \"Metadata\",\n ...metadata,\n })),\n id: input.id ?? uuidv4(),\n updated: date,\n created: current ? current.created : date,\n };\n}\n","import { AnchorHTMLAttributes, FC } from \"react\";\nimport styled from \"styled-components/macro\";\n\nconst StyledSpaceAroundRows = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n align-items: center;\n border-left: none;\n border-right: none;\n width: 100%;\n height: auto;\n`;\n\ntype SpaceAroundRowsProps = AnchorHTMLAttributes<{}>;\n\nconst SpaceAroundRows: FC = ({ children }) => (\n {children}\n);\n\nexport default SpaceAroundRows;\n","/* CONSTANTS */\nconst WHY_DO_WE_NEED_THIS_LABEL = \"Why do we need this?\";\nconst GENERAL_REASON_SUPPORTER =\n \"We use this information to check if they've supported Cancer Research UK before. This will help us to make sure that our records are up to date so we can send them relevant information.\";\nconst GENERAL_REASON =\n \"We use this information to check if you've supported Cancer Research UK before. This will help us to make sure that our records are up to date so we can send you relevant information.\";\nconst PHONE_NUMBER_REASON =\n \"We will use your phone number to call you to offer support for your fundraising activity. We may also send you updates about your fundraising by text message.\";\nconst PHONE_NUMBER_REASON2 =\n \"If you give us your phone number we will use it to send you updates about your fundraising by text message.\";\nconst PHONE_NUMBER_REASON3 =\n \"We use your phone number to identify if you've supported Cancer Research UK before and help us ensure that our records are up to date.\";\nconst DOB_REASON =\n \"We use your date of birth to check if you've supported Cancer Research UK before. This will help us to make sure that our records are up to date so we can send you relevant information.\";\nconst DOB_REASON_SUPPORTER =\n \"We use their date of birth to check if they've supported Cancer Research UK before. This will help us to make sure that our records are up to date so we can send them relevant information.\";\nconst EMAIL_REASON =\n \"We will use your email address to contact you about your fundraising and to send you a fundraising pack if you chose to receive it by email.\";\nconst EMAIL_PACK_REASON =\n \"We use your email address to send a confirmation email to you once you've requested your pack.\";\n\n/* TYPES */\nexport enum SubmitAction {\n NEXT,\n ACTIVITY_SUBMISSION,\n ACTIVITY_SUBMISSION_WITH_FUNDRAISING_PAGE,\n}\n\nexport enum BackAction {\n BACK,\n}\n\nexport enum Field {\n ACTIVITY_TYPE,\n ACTIVITY_MONTH,\n ACTIVITY_DATE,\n FIRST_NAME,\n LAST_NAME,\n DATE_OF_BIRTH,\n PHONE_NUMBER,\n ADDRESS,\n EMAIL_ADDRESS,\n RESTRICTION,\n ORGANISATION_NAME,\n BANNER_TEXT,\n FUNDRAISING_TARGET,\n HAS_ONLINE_FUNDRAISING_PAGE,\n MORE_INFO,\n OPT_IN,\n DELIVERY_METHOD,\n DELIVERY_METHOD_2,\n RENDER_IMAGE,\n RENDER_IMAGE_DIY_5K_JOGGER,\n RENDER_IMAGE_PARK_RUNNER,\n RENDER_GIGW_THANK_YOU_IMAGE,\n SU_2C_FB_CTA,\n RUN_60_CTA,\n PRODUCT_QUANTITY,\n CONTACT_CENTRE_SPORTS_PRODUCTS_LOOKUP,\n T_SHIRT_SIZE,\n T_SHIRT_OR_VEST,\n RADIO_SELECT_T_SHIRT_VEST_SIZE,\n MALE_FEMALE_STYLES,\n IRON_ON_TEXT,\n HAVE_ENTERED_EVENT,\n DYNAMIC_EVENT_NAME,\n EVENT_LOOKUP,\n SUPPORTER_NEED_PACK,\n CALL_TO_ACTION,\n SECOND_CALL_TO_ACTION,\n FACEBOOK_FUNDRAISER_CTA,\n LEGACIES_DIGITAL_GUIDE_CTA,\n SPORTS_FORMS_CTA,\n GIFTS_IN_WILLS_GUIDE_IMAGE,\n FUNDRAISING_PAGE,\n MERCHANDISE_TYPE,\n SUPPORT_CALL_BOX,\n INFORMATION_LOOKING_FOR,\n}\n\nexport type FormPage = {\n fields: Array;\n secondaryFields?: Array;\n heading: string;\n secondaryHeading?: string;\n path: string;\n addressHeading?: string;\n activityDateTimeLabel?: string;\n backLinkAction?: BackAction;\n backLinkLabel?: string;\n collapseLabel?: string;\n collapseContent?: string;\n emailAddressLabel?: string;\n emailAddressHintText?: string;\n introText?: string;\n phoneNumberLabel?: string;\n submitButtonAction?: SubmitAction;\n submitButtonLabel?: string;\n};\n\nexport type FormJourney = {\n name?: string;\n creatable: boolean;\n banner?: true;\n pages: {\n [page: string]: FormPage;\n };\n};\n\n/* PAGES */\nconst introPage = (overrides?: Partial) => ({\n ...{\n path: \"/\",\n heading: \"{{{header}}}\",\n introText: \"{{{introTextHtml}}}\",\n fields: [Field.EMAIL_ADDRESS],\n submitButtonAction: SubmitAction.NEXT,\n submitButtonLabel: \"Next\",\n },\n ...overrides,\n});\n\nconst contactDetailsPage = (overrides?: Partial) => ({\n ...{\n path: \"contact-details\",\n heading: \"Your details\",\n fields: [\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.DATE_OF_BIRTH,\n Field.PHONE_NUMBER,\n ],\n collapseLabel: WHY_DO_WE_NEED_THIS_LABEL,\n collapseContent: `${DOB_REASON}\\n\\n${PHONE_NUMBER_REASON2}`,\n submitButtonAction: SubmitAction.NEXT,\n submitButtonLabel: \"Next\",\n backLinkAction: BackAction.BACK,\n backLinkLabel: \"Back\",\n },\n ...overrides,\n});\n\nconst addressPage = (overrides?: Partial) => ({\n ...{\n path: \"your-address\",\n heading: \"Your address\",\n fields: [Field.ADDRESS],\n collapseLabel: WHY_DO_WE_NEED_THIS_LABEL,\n collapseContent: GENERAL_REASON,\n submitButtonAction: SubmitAction.NEXT,\n submitButtonLabel: \"Next\",\n backLinkAction: BackAction.BACK,\n backLinkLabel: \"Back\",\n },\n ...overrides,\n});\n\nconst fundraisingTargetPage = (overrides?: Partial) => ({\n ...{\n path: \"your-fundraising-target\",\n heading: \"{{{fundraisingPageHeading}}}\",\n fields: [Field.FUNDRAISING_PAGE, Field.FUNDRAISING_TARGET],\n submitButtonAction: SubmitAction.NEXT,\n submitButtonLabel: \"Next\",\n backLinkAction: BackAction.BACK,\n backLinkLabel: \"Back\",\n activityDateTimeLabel: \"{{{activityMonthDateHeader}}}\",\n },\n ...overrides,\n});\n\nconst moreAboutYourFundraisingPage = (overrides?: Partial) => ({\n ...{\n path: \"more-about-your-fundraising\",\n heading: \"More about your fundraising\",\n fields: [Field.ACTIVITY_TYPE, Field.ACTIVITY_MONTH, Field.MORE_INFO],\n activityDateTimeLabel: \"{{{activityMonthDateHeader}}}\",\n submitButtonAction: SubmitAction.NEXT,\n submitButtonLabel: \"Next\",\n backLinkAction: BackAction.BACK,\n backLinkLabel: \"Back\",\n },\n ...overrides,\n});\n\nconst joinUsPage = (overrides?: Partial) => ({\n ...{\n path: \"join-us\",\n heading: \"Staying in touch with us\",\n fields: [Field.OPT_IN],\n submitButtonAction: SubmitAction.ACTIVITY_SUBMISSION_WITH_FUNDRAISING_PAGE,\n submitButtonLabel: \"{{{submitButtonLabel}}}\",\n backLinkAction: BackAction.BACK,\n backLinkLabel: \"Back\",\n },\n ...overrides,\n});\n\n/**\n * Generates the configuration object for the \"thank-you\" page.\n * Allows for optional overrides to customise the configuration.\n *\n * This function performs the following steps:\n * 1. Defines the default configuration for the \"thank-you\" page, including the path, heading, intro text, and fields.\n * 2. Merges the default configuration with any provided overrides, allowing for customisation of the \"thank-you\" page.\n *\n * @param {Partial} [overrides] - An optional object containing properties to override the default configuration.\n * @returns {FormPage} - The configuration object for the \"thank-you\" page.\n */\n\nconst thankYouPage = (overrides?: Partial) => ({\n ...{\n path: \"thank-you\",\n heading: \"{{{activitySuccessHeader}}}\",\n introText: \"{{{activitySuccessMessage}}}\",\n fields: [],\n },\n ...overrides,\n});\n\n/* JOURNEYS */\nconst crukFormJourney: FormJourney = {\n creatable: false,\n pages: {\n index: introPage({\n fields: [Field.DATE_OF_BIRTH],\n collapseLabel: WHY_DO_WE_NEED_THIS_LABEL,\n collapseContent: GENERAL_REASON,\n }),\n \"contact-details\": contactDetailsPage({\n fields: [\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.EMAIL_ADDRESS,\n Field.PHONE_NUMBER,\n ],\n backLinkLabel: \"Back\",\n collapseContent: GENERAL_REASON,\n }),\n address: addressPage(),\n \"fundraising-target\": fundraisingTargetPage(),\n \"join-us\": joinUsPage(),\n },\n};\n\nconst alwaysOn2FormJourney: FormJourney = {\n name: \"Always On V2\",\n creatable: true,\n pages: {\n index: introPage(),\n \"contact-details\": contactDetailsPage(),\n address: addressPage(),\n \"fundraising-target\": fundraisingTargetPage({\n fields: [\n Field.FUNDRAISING_PAGE,\n Field.FUNDRAISING_TARGET,\n Field.ACTIVITY_MONTH,\n ],\n }),\n \"join-us\": joinUsPage(),\n },\n};\n\nconst generalFundraisingFormJourney: FormJourney = {\n creatable: true,\n name: \"General Fundraising - No pack option\",\n pages: {\n index: introPage(),\n \"contact-details\": contactDetailsPage(),\n address: addressPage(),\n \"fundraising-target\": fundraisingTargetPage(),\n \"join-us\": joinUsPage(),\n },\n};\n\nconst generalFundraisingPackOptionFormJourney: FormJourney = {\n name: \"General Fundraising Campaign V2 with a fulfilment option\",\n creatable: true,\n pages: {\n index: introPage(),\n \"contact-details\": contactDetailsPage(),\n address: addressPage(),\n \"fundraising-target\": fundraisingTargetPage({\n fields: [\n Field.FUNDRAISING_PAGE,\n Field.FUNDRAISING_TARGET,\n Field.DELIVERY_METHOD,\n ],\n }),\n \"join-us\": joinUsPage(),\n },\n};\n\nconst celebrationFormJourney: FormJourney = {\n name: \"Always On Celebration\",\n creatable: true,\n pages: {\n index: introPage(),\n \"contact-details\": contactDetailsPage(),\n address: addressPage(),\n \"fundraising-target\": fundraisingTargetPage({\n fields: [\n Field.FUNDRAISING_PAGE,\n Field.FUNDRAISING_TARGET,\n Field.ACTIVITY_DATE,\n ],\n }),\n \"join-us\": joinUsPage(),\n },\n};\n\nconst organisationFormJourney: FormJourney = {\n name: \"Organisation Fundraising\",\n creatable: true,\n pages: {\n index: introPage({\n fields: [],\n }),\n \"contact-details\": contactDetailsPage({\n fields: [\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.EMAIL_ADDRESS,\n Field.PHONE_NUMBER,\n ],\n collapseContent: `If you opt-in to updates from us by phone we will use this phone number to contact you.\\n\\nWe will use your email address to send you a fundraising pack and to contact you about your fundraising if you opt-in to be contacted.`,\n emailAddressLabel: \"Primary contact email address\",\n emailAddressHintText:\n \"This is the email address we will contact you on about your fundraising.\",\n phoneNumberLabel: \"Primary contact phone number\",\n submitButtonLabel: \"Next\",\n backLinkLabel: \"Back\",\n }),\n address: addressPage({\n heading: \"Your organisation\",\n fields: [Field.ORGANISATION_NAME, Field.ADDRESS],\n }),\n \"fundraising-target\": fundraisingTargetPage({\n fields: [\n Field.FUNDRAISING_PAGE,\n Field.ACTIVITY_MONTH,\n Field.PRODUCT_QUANTITY,\n Field.FUNDRAISING_TARGET,\n ],\n }),\n \"join-us\": joinUsPage(),\n },\n};\n\nconst physicalPackBaseJourney: Partial = {\n pages: {\n index: introPage({\n fields: [Field.T_SHIRT_SIZE],\n submitButtonLabel: \"Next\",\n }),\n \"contact-details\": contactDetailsPage({\n heading: \"Personal details\",\n fields: [\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.EMAIL_ADDRESS,\n Field.PHONE_NUMBER,\n Field.DATE_OF_BIRTH,\n ],\n collapseContent: `If you opt-in to updates from us by phone we will use this phone number to contact you.\\n\\n${DOB_REASON}`,\n backLinkLabel: \"Back\",\n }),\n address: addressPage({\n introText:\n \"Please note that we are unable to send physical packs internationally due to the cost to Cancer Research UK.\",\n submitButtonLabel: \"Next\",\n backLinkLabel: \"Back\",\n }),\n },\n};\n// external customers\nconst tShirtVestBaseJourney: Partial = {\n pages: {\n index: introPage({\n submitButtonLabel: \"Next\",\n }),\n \"contact-details\": contactDetailsPage({\n heading: \"Personal details\",\n fields: [\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.EMAIL_ADDRESS,\n Field.PHONE_NUMBER,\n Field.DATE_OF_BIRTH,\n ],\n collapseContent: `If you opt in to updates from us by phone we will use this phone number to contact you.\\n\\n${DOB_REASON}`,\n backLinkLabel: \"Back\",\n submitButtonLabel: \"Next\",\n }),\n address: addressPage({\n introText:\n \"Please note that we are unable to send tshirts or vests internationally due to the cost to Cancer Research UK\",\n submitButtonLabel: \"Next\",\n backLinkLabel: \"Back\",\n }),\n \"join-us\": joinUsPage({\n backLinkLabel: \"Back\",\n }),\n \"thank-you\": thankYouPage({\n fields: [Field.FACEBOOK_FUNDRAISER_CTA],\n }),\n },\n};\n\n// contact centre\nconst tShirtVestBaseContactCenterJourney: Partial = {\n pages: {\n index: introPage({\n fields: [\n Field.EVENT_LOOKUP,\n Field.HAVE_ENTERED_EVENT,\n Field.HAS_ONLINE_FUNDRAISING_PAGE,\n Field.FUNDRAISING_TARGET,\n Field.T_SHIRT_OR_VEST,\n Field.MALE_FEMALE_STYLES,\n Field.RADIO_SELECT_T_SHIRT_VEST_SIZE,\n Field.IRON_ON_TEXT,\n ],\n submitButtonLabel: \"Next\",\n }),\n \"contact-details\": contactDetailsPage({\n heading: \"Personal details\",\n fields: [\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.EMAIL_ADDRESS,\n Field.PHONE_NUMBER,\n Field.DATE_OF_BIRTH,\n ],\n collapseContent: `If they opt-in to updates from us by phone we will use this phone number to contact them.\\n\\n${DOB_REASON_SUPPORTER}`,\n backLinkLabel: \"Back\",\n submitButtonLabel: \"Next\",\n }),\n address: addressPage({\n heading: \"Supporter address\",\n submitButtonLabel: \"Next\",\n backLinkLabel: \"Back\",\n collapseLabel: WHY_DO_WE_NEED_THIS_LABEL,\n collapseContent: GENERAL_REASON_SUPPORTER,\n }),\n \"join-us\": joinUsPage({\n submitButtonLabel: \"{{{submitButtonLabel}}}\",\n backLinkLabel: \"Back\",\n }),\n },\n};\n\nconst run56GivingPageFormJourney: FormJourney = {\n creatable: false,\n pages: {\n ...physicalPackBaseJourney.pages,\n ...{\n address: {\n ...physicalPackBaseJourney.pages!.address,\n ...{ submitButtonLabel: \"Next\" },\n },\n },\n ...{\n \"fundraising-target\": fundraisingTargetPage({\n submitButtonLabel: \"Next\",\n }),\n \"join-us\": joinUsPage({\n submitButtonLabel: \"{{{submitButtonLabel}}}\",\n backLinkLabel: \"Back\",\n }),\n },\n },\n};\n\nconst run56FormJourney: FormJourney = {\n name: \"Facebook Challenges without Giving page\",\n creatable: true,\n pages: {\n ...physicalPackBaseJourney.pages,\n ...{\n \"join-us\": joinUsPage({\n submitButtonAction: SubmitAction.ACTIVITY_SUBMISSION,\n submitButtonLabel: \"Place your order\",\n backLinkLabel: \"Back\",\n }),\n \"thank-you\": thankYouPage({\n fields: [Field.FACEBOOK_FUNDRAISER_CTA, Field.CALL_TO_ACTION],\n }),\n },\n },\n};\n\nconst run60FormJourney: FormJourney = {\n creatable: false,\n pages: {\n ...run56FormJourney.pages,\n ...{\n \"thank-you\": {\n ...run56FormJourney.pages[\"thank-you\"],\n ...{ fields: [Field.RUN_60_CTA] },\n },\n },\n },\n};\n\nconst su2cFbFormJourney: FormJourney = {\n creatable: false,\n pages: {\n ...run56FormJourney.pages,\n ...{\n \"thank-you\": {\n ...run56FormJourney.pages[\"thank-you\"],\n ...{ fields: [Field.SU_2C_FB_CTA] },\n },\n },\n },\n};\n\nconst leadGeneration1FormJourney: FormJourney = {\n name: \"Lead Generation 1\",\n creatable: true,\n pages: {\n index: introPage({\n fields: [Field.EMAIL_ADDRESS],\n collapseLabel: WHY_DO_WE_NEED_THIS_LABEL,\n collapseContent: EMAIL_PACK_REASON,\n submitButtonLabel: \"Next\",\n }),\n \"contact-details\": contactDetailsPage({\n heading: \"Contact details\",\n fields: [\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.DATE_OF_BIRTH,\n Field.PHONE_NUMBER,\n ],\n collapseContent: `${PHONE_NUMBER_REASON3}`,\n backLinkLabel: `Back`,\n }),\n address: addressPage({\n submitButtonLabel: \"Next\",\n backLinkLabel: \"Back\",\n }),\n \"join-us\": joinUsPage({\n submitButtonAction: SubmitAction.ACTIVITY_SUBMISSION,\n backLinkLabel: \"Back\",\n }),\n \"thank-you\": thankYouPage({\n fields: [Field.CALL_TO_ACTION],\n }),\n },\n};\n\n// old Lead Gen 2 journey\nconst giftsInWillsGuideFormJourney: FormJourney = {\n name: \"Gifts In Wills Guide\",\n creatable: true,\n banner: true,\n pages: {\n index: introPage({\n fields: [\n Field.GIFTS_IN_WILLS_GUIDE_IMAGE,\n Field.INFORMATION_LOOKING_FOR,\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.EMAIL_ADDRESS,\n Field.PHONE_NUMBER,\n Field.DATE_OF_BIRTH,\n Field.SUPPORT_CALL_BOX,\n ],\n collapseLabel: WHY_DO_WE_NEED_THIS_LABEL,\n collapseContent: `${EMAIL_PACK_REASON}\\n\\n${PHONE_NUMBER_REASON3}\\n\\n${DOB_REASON}`,\n submitButtonLabel: \"Next\",\n }),\n address: addressPage({\n heading: \"Your address\",\n collapseLabel: WHY_DO_WE_NEED_THIS_LABEL,\n collapseContent: GENERAL_REASON,\n submitButtonLabel: \"Next\",\n backLinkLabel: \"Back\",\n }),\n \"join-us\": joinUsPage({\n submitButtonAction: SubmitAction.ACTIVITY_SUBMISSION,\n backLinkLabel: \"Back\",\n }),\n \"thank-you\": thankYouPage({\n fields: [\n Field.RENDER_GIGW_THANK_YOU_IMAGE,\n Field.LEGACIES_DIGITAL_GUIDE_CTA,\n Field.CALL_TO_ACTION,\n Field.SECOND_CALL_TO_ACTION,\n ],\n }),\n },\n};\n\nconst vfFormJourney: FormJourney = {\n creatable: false,\n pages: {\n index: introPage({\n fields: [Field.DELIVERY_METHOD],\n submitButtonLabel: \"Next\",\n }),\n \"contact-details\": contactDetailsPage({\n heading: \"Personal details\",\n fields: [\n Field.DATE_OF_BIRTH,\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.EMAIL_ADDRESS,\n Field.PHONE_NUMBER,\n ],\n collapseContent: `${DOB_REASON}\\n\\n${EMAIL_REASON}\\n\\n${PHONE_NUMBER_REASON}`,\n backLinkLabel: `Back`,\n }),\n address: addressPage({\n collapseContent: `${GENERAL_REASON}\\n\\nIf you requested your fundraising pack by post we'll send it to this address.`,\n submitButtonLabel: \"Next\",\n backLinkLabel: \"Back\",\n }),\n \"fundraising-target\": fundraisingTargetPage({\n fields: [\n Field.RESTRICTION,\n Field.FUNDRAISING_PAGE,\n Field.FUNDRAISING_TARGET,\n ],\n submitButtonLabel: \"Next\",\n backLinkLabel: \"Back\",\n }),\n \"more-about-your-fundraising\": moreAboutYourFundraisingPage(),\n \"join-us\": joinUsPage({\n backLinkLabel: \"Back\",\n }),\n },\n};\n\nconst vfContactCentreFormJourney: FormJourney = {\n name: \"Volunteer Fundraising without a giving page\",\n creatable: true,\n pages: {\n ...vfFormJourney.pages,\n ...{\n \"join-us\": joinUsPage({\n submitButtonAction: SubmitAction.ACTIVITY_SUBMISSION,\n backLinkLabel: \"Back\",\n }),\n \"thank-you\": thankYouPage({\n fields: [Field.LEGACIES_DIGITAL_GUIDE_CTA],\n }),\n },\n },\n};\n\nconst vfFundregFormJourney: FormJourney = {\n creatable: true,\n name: \"Volunteer Fundraising with a giving page\",\n pages: {\n index: introPage({\n fields: [Field.RENDER_IMAGE, Field.EMAIL_ADDRESS],\n submitButtonLabel: \"Next\",\n }),\n \"contact-details\": contactDetailsPage({\n heading: \"About you\",\n fields: [\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.PHONE_NUMBER,\n Field.DATE_OF_BIRTH,\n ],\n collapseContent: `${PHONE_NUMBER_REASON}\\n\\n${DOB_REASON}`,\n backLinkLabel: `Back`,\n }),\n address: addressPage({\n submitButtonLabel: \"Next\",\n }),\n \"fundraising-target\": fundraisingTargetPage({\n fields: [\n Field.RESTRICTION,\n Field.FUNDRAISING_PAGE,\n Field.FUNDRAISING_TARGET,\n Field.ACTIVITY_TYPE,\n Field.ACTIVITY_MONTH,\n Field.MORE_INFO,\n ],\n submitButtonLabel: \"Next\",\n }),\n \"more-about-your-fundraising\": moreAboutYourFundraisingPage({\n heading: \"Your fundraising pack\",\n fields: [Field.DELIVERY_METHOD_2],\n }),\n \"join-us\": joinUsPage({\n submitButtonLabel: \"{{{submitButtonLabel}}}\",\n backLinkLabel: \"Back\",\n }),\n },\n};\n\nconst sportsFormExternalUserJourney: FormJourney = {\n name: \"Sports Form Journey with T-Shirts and Vests\",\n creatable: true,\n pages: {\n ...tShirtVestBaseJourney.pages,\n ...{\n index: introPage({\n ...tShirtVestBaseJourney.pages?.index,\n fields: [\n Field.DYNAMIC_EVENT_NAME,\n Field.HAVE_ENTERED_EVENT,\n Field.FUNDRAISING_TARGET,\n Field.T_SHIRT_OR_VEST,\n Field.MALE_FEMALE_STYLES,\n Field.RADIO_SELECT_T_SHIRT_VEST_SIZE,\n Field.IRON_ON_TEXT,\n ],\n }),\n },\n },\n};\n\nconst sportsFormContactCenterJourney: FormJourney = {\n name: \"Sports Form Journey with T-Shirts and Vests (Contact Center)\",\n creatable: true,\n pages: {\n ...tShirtVestBaseContactCenterJourney.pages,\n ...{\n \"thank-you\": thankYouPage({\n fields: [Field.SPORTS_FORMS_CTA],\n }),\n },\n },\n};\n\nconst sportsFormPromoterJourney: FormJourney = {\n name: \"Sports Form Journey with T-Shirts and Vests (Promoter)\",\n creatable: true,\n pages: {\n ...tShirtVestBaseContactCenterJourney.pages,\n index: introPage({\n ...tShirtVestBaseContactCenterJourney.pages?.index,\n fields: [\n Field.EVENT_LOOKUP,\n Field.DYNAMIC_EVENT_NAME,\n Field.HAVE_ENTERED_EVENT,\n Field.FUNDRAISING_TARGET,\n Field.T_SHIRT_OR_VEST,\n Field.MALE_FEMALE_STYLES,\n Field.RADIO_SELECT_T_SHIRT_VEST_SIZE,\n Field.IRON_ON_TEXT,\n ],\n }),\n },\n};\n\nconst sfChallengesFormJourney: FormJourney = {\n name: \"Social Fundraising Challenges with a Giving Page\",\n creatable: true,\n pages: {\n ...run56GivingPageFormJourney.pages,\n index: introPage({\n fields: [Field.MERCHANDISE_TYPE, Field.T_SHIRT_SIZE],\n submitButtonLabel: \"Next\",\n }),\n },\n};\n\nconst sportsFormWithoutGivingPage = {\n name: \"Sports Form Journey with T-shirts and Vests Without a Giving Page\",\n creatable: true,\n pages: {\n ...tShirtVestBaseJourney.pages,\n index: introPage({\n ...tShirtVestBaseJourney.pages?.index,\n fields: [\n Field.DYNAMIC_EVENT_NAME,\n Field.HAVE_ENTERED_EVENT,\n Field.T_SHIRT_OR_VEST,\n Field.MALE_FEMALE_STYLES,\n Field.RADIO_SELECT_T_SHIRT_VEST_SIZE,\n Field.IRON_ON_TEXT,\n ],\n }),\n \"join-us\": joinUsPage({\n submitButtonAction: SubmitAction.ACTIVITY_SUBMISSION,\n submitButtonLabel: \"Place your order\",\n backLinkLabel: \"Back\",\n }),\n \"thank-you\": thankYouPage({\n fields: [Field.CALL_TO_ACTION],\n }),\n },\n};\n\nconst diyFormJourney: FormJourney = {\n creatable: false,\n pages: {\n index: {\n ...introPage({\n fields: [\n Field.FIRST_NAME,\n Field.LAST_NAME,\n Field.PHONE_NUMBER,\n Field.EMAIL_ADDRESS,\n Field.DATE_OF_BIRTH,\n ],\n secondaryFields: [Field.ADDRESS],\n collapseLabel: WHY_DO_WE_NEED_THIS_LABEL,\n collapseContent: GENERAL_REASON,\n heading: \"Your details\",\n secondaryHeading: \"Your address\",\n submitButtonAction: SubmitAction.NEXT,\n submitButtonLabel: \"Next\",\n }),\n },\n \"fundraising-target\": fundraisingTargetPage(),\n },\n};\n\nconst DIYParkRunner: FormJourney = {\n name: \"DIY Park Runner\",\n creatable: true,\n pages: {\n ...diyFormJourney.pages,\n \"fundraising-target\": fundraisingTargetPage({\n fields: [\n Field.FUNDRAISING_PAGE,\n Field.ACTIVITY_TYPE,\n Field.ACTIVITY_MONTH,\n Field.FUNDRAISING_TARGET,\n Field.RESTRICTION,\n Field.MORE_INFO,\n ],\n heading: \"Your fundraising details\",\n }),\n \"more-about-your-fundraising\": moreAboutYourFundraisingPage({\n heading: \"Your fundraising pack\",\n fields: [Field.DELIVERY_METHOD_2, Field.RENDER_IMAGE_PARK_RUNNER],\n }),\n \"join-us\": joinUsPage(),\n },\n};\n\nconst DIYCouchTo5KJogger: FormJourney = {\n name: \"DIY Couch to 5k Jogger\",\n creatable: true,\n pages: {\n ...diyFormJourney.pages,\n \"fundraising-target\": fundraisingTargetPage({\n fields: [\n Field.FUNDRAISING_PAGE,\n Field.RESTRICTION,\n Field.DELIVERY_METHOD_2,\n Field.RENDER_IMAGE_DIY_5K_JOGGER,\n ],\n heading: \"Your fundraising pack\",\n }),\n \"join-us\": joinUsPage(),\n },\n};\n\n/* EXPORTS */\nexport const formJourneys: { [journey: string]: FormJourney } = {\n cruk: crukFormJourney,\n \"race-for-life-at-home\": crukFormJourney,\n \"stand-up-to-cancer\": crukFormJourney,\n \"always-on\": {\n ...crukFormJourney,\n creatable: false,\n },\n \"always-on-2\": alwaysOn2FormJourney,\n \"general-fundraising-2\": generalFundraisingFormJourney,\n \"general-fundraising-pack-option\": generalFundraisingPackOptionFormJourney,\n \"sf-challenges\": sfChallengesFormJourney,\n celebration: celebrationFormJourney,\n organisation: organisationFormJourney,\n \"run-56\": run56FormJourney,\n \"run-56-GivingPage\": {\n ...run56GivingPageFormJourney,\n name: \"Facebook Challenges with Giving page\",\n creatable: true,\n },\n dryathlon: run56GivingPageFormJourney,\n \"run-60\": run60FormJourney,\n \"su2c-fb\": su2cFbFormJourney,\n \"sports-form\": sportsFormExternalUserJourney,\n \"sports-form-without-giving-page\": sportsFormWithoutGivingPage,\n \"sports-forms-contact-centre\": sportsFormContactCenterJourney,\n \"sports-form-promoter\": sportsFormPromoterJourney,\n \"lead-generation-1\": leadGeneration1FormJourney,\n \"gifts-in-wills-guide\": giftsInWillsGuideFormJourney,\n vf: vfFormJourney,\n \"vf-fundreg\": vfFundregFormJourney,\n \"vf-contact-centre\": vfContactCentreFormJourney,\n \"diy-park-runner\": DIYParkRunner,\n \"diy-couch-to-5k-jogger\": DIYCouchTo5KJogger,\n};\n\n/*\n * Retrieve the raw form journey with placeholders.\n */\nexport function getFormJourneyConfig(journey: string): FormJourney {\n return formJourneys[journey];\n}\n\n/*\n * Returns true if the journey is valid.\n */\nexport function hasFormJourneyConfig(journey: string): boolean {\n return formJourneys[journey] !== undefined;\n}\n"],"sourceRoot":""}