{"version":3,"sources":["webpack:///./presentation/components/Shortcode/Alt.tsx","webpack:///./presentation/components/Shortcode/Bold.tsx","webpack:///./presentation/components/Shortcode/Italic.tsx","webpack:///./presentation/components/Shortcode/Link.tsx","webpack:///./presentation/components/Shortcode/Text.tsx","webpack:///src/presentation/components/Shortcode/Tooltip.tsx","webpack:///./presentation/components/Shortcode/PendingShortcode.tsx","webpack:///./presentation/components/Shortcode/Shortcode.tsx","webpack:///./presentation/components/Shortcode/index.ts","webpack:///./domain/constants/alignment.ts","webpack:///src/presentation/components/ribbons/domain-search-input/components/DomainSearchActionButton.tsx","webpack:///./presentation/components/ribbons/domain-search-input/components/SearchInput.tsx","webpack:///src/presentation/components/ribbons/domain-search-input/components/stylesheets/SearchInput.stylesheet.ts","webpack:///./presentation/components/ribbons/domain-search-input/components/DomainSearchTypeLockup.tsx","webpack:///./presentation/components/ribbons/domain-search-input/components/DomainSearchInput.tsx","webpack:///src/presentation/components/ribbons/domain-search-input/components/DomainSearchInput.stylesheet.ts","webpack:///./presentation/components/ribbons/domain-search-input/models/useDomainSearchInput.ts","webpack:///./presentation/components/ribbons/domain-search-input/components/sticky-checkout/StickyCheckoutContainer.tsx","webpack:///./presentation/components/ribbons/domain-search-input/ConnectedSearchInput.tsx"],"names":["getColor","theme","against","Against","LIGHT","NEUTRAL","palette","primary","DARK","tertiary","Alt","RecursiveShortcode","elements","rest","useTheme","style","color","displayName","Bold","fontWeight","fontStyle","Link","contentType","attributes","isExternalRoute","route","useIsExternalRoute","goto","href","id","analyticskey","size","TextButtonSize","INHERIT","rel","target","newTab","formatText","text","newline","values","formattedText","replace","_","match","replaceValues","split","join","escapeShortCodes","string","reduce","prev","cur","i","nl2br","Text","ReactTooltip","lazy","TooltipShortcode","isMinLg","useBreakpoints","eventToggle","undefined","padding","cssTheme","CallToAction","fallback","tagName","useDefaultStyles","content","maxWidth","randomWidth","Math","floor","random","PendingShortcode","code","display","width","lines","Glyph","Sup","List","OrderedList","ListItem","TickListItem","ProductPrice","PhoneNumber","map","element","index","Shortcode","JSON","stringify","props","String","getAgainst","type","name","glyph","Italic","Tooltip","ShortcodeWrapper","Alignment","className","disableCtaButtons","useDSTContext","isMinSm","ariaProps","label","ButtonSize","kind","ButtonKind","block","disabled","SearchInput","prefix","placeholder","tld","ariaHidden","value","onChange","onBlur","useField","inputProps","action","suffix","renderText","isString","isObject","DomainSearchTypeLockup","precursor","title","subtitle","hBaseline","data","isError","isLoading","useGetSuggestions","hideLockup","errorTitle","useMessage","errorSubtitle","eyebrow","heading","subheading","FadeInOut","transitionKey","component","depth","DomainSearchInput","isSticky","colorway","search","design","collapsePadding","top","bottom","alignment","STARTING","classNames","cx","root","dstSubmitCTA","getClassNames","rowAlign","Justify","FLEX_START","CENTER","rootWrapper","vblock","justify","xs","md","lg","searchInputWrapper","useDomainSearchInput","analytics","redirect","destination","ref","useRef","basketCount","useBasketCount","entry","useIntersectionObserver","isIntersecting","boundingClientRect","y","refetch","history","useHistory","updateQueryParam","useUpdateQueryParam","domainName","setQuery","useDSTActionContext","tldSuffix","models","operations","onSubmit","push","domainSearchTerm","bodyTop","document","body","getBoundingClientRect","dstTop","current","window","scrollTo","scrollCallback","setTimeout","searchTerm","endsWith","payload","param","dispatchGAEvent","hitType","eventCategory","eventAction","eventLabel","updateSearch","StickyMobile","StickyDesktop","StickyCheckoutContainer","isMinMd","ConnectedDomainSearchInput","layout","loading","initialValues","initialTouched","Ribbon","Type","DOMAIN_SEARCH_START","flush","method","errorBoundary","visibilitySet"],"mappings":"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","file":"pex-static/163/30.c8998640d6f29105ff41.chunk.js","sourcesContent":["import React from 'react';\nimport { Theme, useTheme, Colorway as Against } from '@uds/theme-utils';\n\nimport { RecursiveShortcodeProps } from './Shortcode';\n\nconst getColor = (theme: Theme, against: Against | undefined) => {\n switch (against) {\n case Against.LIGHT:\n return theme.palette.primary;\n case Against.NEUTRAL:\n return theme.palette.primary;\n case Against.DARK:\n return theme.palette.tertiary;\n default:\n return 'inherit';\n }\n};\nconst Alt = ({ RecursiveShortcode, elements, against, ...rest }: RecursiveShortcodeProps) => {\n const { theme } = useTheme();\n return (\n \n {RecursiveShortcode ? : null}\n \n );\n};\n\nAlt.displayName = 'Alt';\n\nexport default Alt;\n","import React from 'react';\n\nimport { RecursiveShortcodeProps } from './Shortcode';\n\nconst Bold = ({ elements, RecursiveShortcode, ...rest }: RecursiveShortcodeProps) => (\n \n {RecursiveShortcode ? : null}\n \n);\n\nBold.displayName = 'Bold';\n\nexport default Bold;\n","import React from 'react';\n\nimport { RecursiveShortcodeProps } from './Shortcode';\n\nconst Bold = ({ elements, RecursiveShortcode, ...rest }: RecursiveShortcodeProps) => (\n \n {RecursiveShortcode ? : null}\n \n);\n\nBold.displayName = 'Bold';\n\nexport default Bold;\n","import React from 'react';\nimport { ReactRouterTextButton } from '@uds/react-router-adapter';\nimport { Size as TextButtonSize } from '@uds/text-button';\nimport { useIsExternalRoute } from 'domain/selectors/common';\n\nimport { RecursiveShortcodeProps } from './Shortcode';\n\nconst Link = ({ RecursiveShortcode, elements, contentType, attributes, against, ...rest }: RecursiveShortcodeProps) => {\n const [isExternalRoute, route] = useIsExternalRoute(attributes?.goto);\n return (\n \n {/* @ts-ignore: error when upgrading to @ux/config */}\n \n \n );\n};\n\nLink.displayName = 'Link';\n\nexport default Link;\n","import React, { Fragment } from 'react';\n\nconst escapeShortCodes = (text: string) => {\n if (typeof text !== 'string') {\n return null;\n }\n const replaceA = (text ?? '').split('[!').join('[');\n const replaceB = replaceA.split('!/]').join('/]');\n const replaceC = replaceB.split('[/!').join('[/');\n return replaceC;\n // using split/join because for some reason replaceAll fails for backstop\n // tests but not for backstop storybook?\n // if anyone can tell me why, I'd appreciate it.\n // return (text ?? '').replaceAll('[!', '[').replaceAll('!/]', '/]')\n // .replaceAll('[/!', '[/');\n};\n\nconst replaceValues = (text: string, values?: Record) => {\n if (values == null) {\n return text;\n }\n return text.replace(/{(?[^{]*)}/g, (_, match) => {\n return values[match];\n });\n};\n\nconst nl2br = (string: string) =>\n (string ?? '')\n .split('\\n')\n // @ts-ignore typescript cant figure typing out\n // eslint-disable-next-line react/no-array-index-key\n .reduce((prev, cur, i) => [prev,
, cur]);\n\nconst formatText = (text: string, newline: boolean | Element | undefined, values?: Record) => {\n const formattedText = replaceValues(escapeShortCodes(text) ?? '', values);\n if (newline === false) {\n return formattedText;\n }\n return nl2br(formattedText);\n};\n\ninterface OuterProps {\n text?: string | undefined;\n nl2br?: boolean | Element;\n values?: Record;\n}\nconst Text = ({ text, nl2br, values }: OuterProps) => {formatText(text ?? '', nl2br, values)};\n\nText.displayName = 'Text';\n\nexport default Text;\n","import React, { lazy, Suspense } from 'react';\nimport TextButton, { Size as TextButtonSize } from '@uds/text-button';\nimport { cssTheme } from '@uds/theme-utils';\nimport { useBreakpoints } from '@uds/responsive';\n\nimport { RecursiveShortcodeProps } from './Shortcode';\n\n/*\n React-Tooltip is a heavy dependency therefore we asynchronously load it in\n and gracefully decorate the functionality in once it has loaded\n*/\nconst ReactTooltip = lazy(\n () =>\n import(\n /* webpackChunkName: \"react-tooltip-lite\" */\n 'react-tooltip-lite'\n ),\n);\n\nconst TooltipShortcode = ({ RecursiveShortcode, attributes, elements }: RecursiveShortcodeProps) => {\n const { isMinLg } = useBreakpoints();\n const eventToggle = isMinLg ? undefined : 'onClick';\n const padding = cssTheme.gu2;\n const CallToAction = {attributes?.label};\n\n return (\n \n {/* @ts-ignore children doesnt exist */}\n \n {/* @ts-ignore: error when upgrading to @ux/config */}\n \n \n }\n >\n {CallToAction}\n \n \n );\n};\n\nTooltipShortcode.displayName = 'TooltipShortcode';\n\nexport default TooltipShortcode;\n","import React from 'react';\nimport { Shimmer } from '@uds/penders';\n\nimport { ShortcodeProps } from './';\n\nexport interface OuterProps {\n code?: ShortcodeProps;\n}\n\n// random % width for shimmer betwen 50% and 95%\nconst randomWidth = () => Math.floor(Math.random() * (95 - 50) + 50);\n\nconst PendingShortcode = ({ code }: OuterProps) => (\n \n \n \n);\n\nPendingShortcode.displayName = 'PendingShortcode';\n\nexport default PendingShortcode;\n","import React, { Suspense, lazy, ReactNode } from 'react';\nimport { getAgainst } from 'presentation/utils/colorway';\nimport { Layout } from 'domain/constants/layout';\n/*\n These shortcodes should not be lazy loaded in as they are already in the\n main bundle and it causes a unnecessary shimmer which makes the page feel\n less responsive\n*/\nimport { Colorway as Against } from '@uds/theme-utils';\nimport { IconName } from '@uds/glyphs';\n\nimport Alt from './Alt';\nimport Bold from './Bold';\nimport Italic from './Italic';\nimport Link from './Link';\nimport Text from './Text';\nimport Tooltip from './Tooltip';\nimport PendingShortcode from './PendingShortcode';\n\nimport { ShortcodeProps } from '.';\n\nconst Glyph = lazy(\n () =>\n import(\n /* webpackChunkName: \"shortcode-glyph\" */\n './Glyph'\n ),\n);\n\nconst Sup = lazy(\n () =>\n import(\n /* webpackChunkName: \"shortcode-sup\" */\n './Sup'\n ),\n);\n\nconst List = lazy(\n () =>\n import(\n /* webpackChunkName: \"shortcode-list\" */\n './List'\n ),\n);\n\nconst OrderedList = lazy(\n () =>\n import(\n /* webpackChunkName: \"shortcode-ordered-list\" */\n './OrderedList'\n ),\n);\n\nconst ListItem = lazy(\n () =>\n import(\n /* webpackChunkName: \"shortcode-list-item\" */\n './ListItem'\n ),\n);\n\nconst TickListItem = lazy(\n () =>\n import(\n /* webpackChunkName: \"shortcode-tick-list-item\" */\n './TickListItem'\n ),\n);\n\nconst ProductPrice = lazy(\n () =>\n import(\n /* webpackChunkName: \"shortcode-product-price\" */\n './ProductPrice'\n ),\n);\n\nconst PhoneNumber = lazy(\n () =>\n import(\n /* webpackChunkName: \"shortcode-phone-number\" */\n './PhoneNumber'\n ),\n);\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ndeclare const i: number;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ndeclare const element: ShortcodeProps;\n\nexport interface ShortcodeAttributesProps {\n glyph: string;\n use?: number;\n number?: number;\n RecursiveShortcode: (props: RecursiveShortcodeProps) => JSX.Element;\n analyticskey?: string;\n goto?: string;\n label?: ReactNode;\n icon: IconName;\n prices?: Array<{\n gross: number;\n net: number;\n raw: number;\n tax: number;\n }>;\n inctax?: string;\n style?: string;\n rel?: string;\n newTab?: string;\n}\nexport interface RecursiveShortcodeProps {\n elements?: Array;\n RecursiveShortcode?: (props: RecursiveShortcodeProps) => JSX.Element;\n type?: string;\n name?: string;\n layout?: Layout;\n against?: Against;\n attributes?: ShortcodeAttributesProps | undefined;\n nl2br?: boolean;\n rest?: {\n [key: string]: any;\n };\n [key: string]: any;\n}\n\nconst RecursiveShortcode = ({ elements = [], ...rest }: RecursiveShortcodeProps) => (\n <>\n {elements.map((element, index) => (\n // Temporarily allow index as key waiting for BE to add ids\n // eslint-disable-next-line react/no-array-index-key\n \n ))}\n \n);\n\nexport interface ShortcodeOuterProps {\n against?: Against;\n code: RecursiveShortcodeProps;\n type?: string;\n name?: string;\n values?: Record;\n}\n\nconst Shortcode = ({ code, ...rest }: RecursiveShortcodeProps) => {\n let props = {\n ...rest,\n } as RecursiveShortcodeProps;\n if (typeof code === 'string' || code instanceof String) {\n props.code = code;\n } else {\n props = {\n ...props,\n ...code,\n };\n }\n\n props.against = getAgainst(props.against);\n props.RecursiveShortcode = RecursiveShortcode;\n props.attributes = props?.attributes ?? ({} as ShortcodeAttributesProps);\n\n const { type, name, values } = props;\n if (typeof props.code === 'string') {\n return ;\n }\n if (props.type === 'text') {\n return ;\n }\n if (type === 'element') {\n switch (name) {\n case 'list':\n if (props?.attributes?.style === 'number') {\n return ;\n }\n return ;\n case 'li':\n if (props?.attributes?.style === 'glyph') {\n return ;\n }\n return ;\n case 'i':\n return ;\n case 'b':\n return ;\n case 'alt':\n return ;\n case 'sup':\n return ;\n case 'glyph':\n return ;\n case 'tel':\n return ;\n case 'link':\n return ;\n case 'productprice':\n return ;\n case 'tooltip':\n return ;\n case 'root':\n return ;\n default:\n return null;\n }\n }\n return null;\n};\n\nconst ShortcodeWrapper = (props: RecursiveShortcodeProps) => (\n }>\n \n \n);\n\nShortcodeWrapper.displayName = 'Shortcode';\n\nexport default ShortcodeWrapper;\n","import Shortcode, { RecursiveShortcodeProps } from './Shortcode';\n\n// TODO: help.. please.\nexport type ShortcodeProps = RecursiveShortcodeProps;\n\nexport default Shortcode;\n","export enum Alignment {\n STARTING = 'STARTING',\n CENTER = 'CENTER',\n}\n\nexport default null;\n","import Button, { Kind as ButtonKind, Size as ButtonSize } from '@uds/button';\nimport { cssTheme } from '@uds/theme-utils';\nimport { Glyph, IconName } from '@uds/glyphs';\nimport { useDSTContext } from 'presentation/components/pages/CMPage/DSTContext';\nimport { useBreakpoints } from '@uds/responsive';\n\ntype Props = {\n glyph?: IconName;\n disabled: boolean;\n label: string | undefined;\n className: string;\n};\n\nconst DomainSearchActionButton = ({ glyph, disabled, label, className }: Readonly) => {\n const { disableCtaButtons } = useDSTContext();\n const { isMinSm } = useBreakpoints();\n const ariaProps = {\n 'aria-label': isMinSm ? undefined : label,\n };\n\n return (\n }\n disabled={disableCtaButtons || disabled}\n className={className}\n >\n {isMinSm ? label : undefined}\n \n );\n};\n\nexport default DomainSearchActionButton;\n","import { SearchInput as UDSSearchInput } from '@uds/input';\nimport { useField } from 'formik';\nimport { FormattedMessage } from 'react-intl';\nimport { InclusivelyHidden } from '@uds/inclusively-hidden';\nimport { ReactNode } from 'react';\nimport { IconName } from '@uds/glyphs';\n\nimport DomainSearchActionButton from './DomainSearchActionButton';\nimport { dstSubmitCTA } from './stylesheets/SearchInput.stylesheet';\n\nexport interface SearchInputProps {\n placeholder: string | undefined;\n disabled?: boolean;\n prefix?: ReactNode;\n tld?: string;\n glyph?: IconName;\n label?: string;\n ariaHidden: boolean;\n}\n\nconst inputName = 'domainSearchTerm';\n\nconst SearchInput = ({\n disabled = false,\n prefix,\n placeholder,\n tld,\n glyph,\n label,\n ariaHidden,\n}: Readonly) => {\n const [{ value, onChange, onBlur, name }] = useField(inputName);\n const ariaProps = {\n 'aria-hidden': ariaHidden,\n };\n return (\n <>\n \n \n \n }\n prefix={prefix}\n suffix={tld}\n />\n \n );\n};\n\nexport default SearchInput;\n","import { css } from 'linaria';\nimport { cssTheme } from '@uds/theme-utils';\n\nexport const dstSubmitCTA = css`\n background-color: ${cssTheme.palette.cta};\n color: ${cssTheme.palette.ctaContrast};\n`;\n","import { Typelockup, Heading05, Heading02, Heading04 } from '@uds/typography';\nimport { useMessage } from '@uds/message';\nimport { isObject } from '@ux/js';\nimport useGetSuggestions from 'domain/selectors/dst/useGetSuggestions';\nimport FadeInOut from 'presentation/components/common/FadeInOut';\nimport Shortcode from 'presentation/components/Shortcode';\n\nexport type Props = {\n className: string | undefined;\n title: string | undefined;\n precursor: string | undefined;\n subtitle: string | undefined;\n hBaseline?: number;\n};\n\nconst isString = (value: unknown): value is string => {\n return typeof value === 'string' || value instanceof String;\n};\n\nconst renderText = (text: string | undefined | null) => {\n if (text == null) {\n return null;\n }\n if (isString(text)) {\n return text;\n }\n if (isObject(text)) {\n return ;\n }\n return null;\n};\n\nconst DomainSearchTypeLockup = ({ className, precursor, title, subtitle, hBaseline = 1 }: Readonly) => {\n const { data, isError, isLoading } = useGetSuggestions();\n const hideLockup = (data != null && isError === false) || isLoading;\n const errorTitle = useMessage({ id: 'usf.domainSearch.error.heading' });\n const errorSubtitle = useMessage({ id: 'usf.domainSearch.error.subheading' });\n const eyebrow = isError ? null : precursor;\n const heading = isError ? errorTitle : title;\n const subheading = isError ? errorSubtitle : subtitle;\n\n return (\n \n {hideLockup ? (\n
\n ) : (\n
\n {renderText(eyebrow)}}\n heading={{renderText(heading)}}\n subheading={{renderText(subheading)}}\n />\n
\n )}\n \n );\n};\n\nexport default DomainSearchTypeLockup;\n","import { Container, Row, Column, Justify } from '@uds/grid';\nimport Colorway from '@uds/colorway';\nimport { Alignment } from 'domain/constants/alignment';\n\nimport { getClassNames } from './DomainSearchInput.stylesheet';\nimport DomainSearchTypeLockup from './DomainSearchTypeLockup';\nimport SearchInput from './SearchInput';\nimport {\n SearchInputConfigProps,\n DomainSearchTextProps,\n DomainSearchDesignProps,\n SearchInputCTAProps,\n} from '../models/types';\n\nexport interface DomainSearchInputProps extends SearchInputConfigProps {\n text: DomainSearchTextProps;\n design: DomainSearchDesignProps;\n search: SearchInputCTAProps;\n isSticky: boolean;\n hBaseline?: number;\n}\n\nconst DomainSearchInput = ({\n isSticky,\n colorway,\n disabled = false,\n prefix,\n search,\n text,\n design = {\n collapsePadding: {\n top: false,\n bottom: false,\n },\n alignment: Alignment.STARTING,\n },\n hBaseline,\n}: DomainSearchInputProps) => {\n const classNames = getClassNames({ design });\n const { precursor, title, subtitle } = text;\n const rowAlign = design?.alignment === 'start' ? Justify.FLEX_START : Justify.CENTER;\n return (\n
\n
\n \n \n \n \n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default DomainSearchInput;\n","import { css, cx } from 'linaria';\nimport { cssTheme } from '@uds/theme-utils';\n\nimport { DomainSearchDesignProps } from '../models/types';\n\nconst root = css`\n width: 100%;\n margin: 0;\n transition: margin-top 500ms cubic-bezier(0.17, 0.04, 0.03, 0.94);\n margin-top: ${cssTheme.gu4};\n margin-bottom: ${cssTheme.gu4};\n\n ${cssTheme.breakpoints.sm} {\n margin-top: ${cssTheme.gu5};\n margin-bottom: ${cssTheme.gu5};\n }\n\n ${cssTheme.breakpoints.lg} {\n margin-top: ${cssTheme.gu6};\n margin-bottom: ${cssTheme.gu6};\n }\n`;\n\nconst content = css`\n display: flex;\n flex-direction: column;\n padding: ${cssTheme.gu3};\n\n ${cssTheme.breakpoints.lg} {\n padding: ${cssTheme.gu4};\n }\n`;\n\nconst collapsePaddingTop = css`\n margin-top: 0;\n`;\n\nconst collapsePaddingBottom = css`\n margin-bottom: 0;\n`;\n\nconst text = css`\n margin-bottom: ${cssTheme.gu3};\n`;\n\nconst alignmentStarting = css`\n display: flex;\n flex-direction: column;\n align-items: start;\n`;\n\nconst alignmentCenter = css`\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n`;\n\nconst searchInputWrapper = css`\n padding-top: 0;\n`;\n\nconst rootWrapper = css`\n position: relative;\n margin-top: 0;\n`;\n\nconst dstSubmitCTA = css`\n background-color: ${cssTheme.palette.cta};\n color: ${cssTheme.palette.ctaContrast};\n`;\n\nexport const getClassNames = ({ design }: { design: DomainSearchDesignProps }) => ({\n text: cx(text, design?.alignment === 'start' ? alignmentStarting : alignmentCenter),\n root: cx(\n root,\n design?.collapsePadding?.top === true && collapsePaddingTop,\n design?.collapsePadding?.bottom === true && collapsePaddingBottom,\n ),\n rootWrapper,\n content,\n searchInputWrapper,\n dstSubmitCTA,\n});\n","import { UseModel } from 'core';\nimport useGetSuggestions from 'domain/selectors/dst/useGetSuggestions';\nimport { useDSTContext, useDSTActionContext } from 'presentation/components/pages/CMPage/DSTContext';\nimport { dispatchGAEvent } from '@uds/tagmg';\nimport { useHistory } from 'react-router';\nimport { MutableRefObject, RefObject, useRef } from 'react';\nimport useIntersectionObserver from 'presentation/hooks/useIntersectionObserver';\nimport { useUpdateQueryParam } from 'domain/selectors/common';\nimport { useBasketCount } from '@uds/bookends';\n\nimport { DomainSearchFormValues } from './types';\n\ntype Model = {\n domainName: string;\n isError: boolean;\n isSticky: boolean;\n ref: RefObject;\n basketCount: number;\n};\ntype Operations = {\n onSubmit: (values: DomainSearchFormValues) => void;\n};\ntype UseDomainSearchInput = UseModel;\n\ntype Props = {\n analytics: string | undefined;\n redirect: boolean;\n destination: string;\n tld?: string;\n};\n\nconst scrollCallback = (ref: MutableRefObject, redirect: boolean) => {\n if (!redirect) {\n const bodyTop = document.body.getBoundingClientRect().top;\n const dstTop = ref.current?.getBoundingClientRect().top;\n if (dstTop) {\n window.scrollTo({ top: dstTop - bodyTop });\n }\n }\n};\n\nexport default function useDomainSearchInput({ analytics, redirect, destination, tld }: Props): UseDomainSearchInput {\n const ref = useRef(null);\n const { data: basketCount } = useBasketCount();\n const entry = useIntersectionObserver(ref, {});\n const isSticky =\n entry != null &&\n !entry.isIntersecting && // It is not in the viewport\n entry.boundingClientRect.y < 0 && // we actually scrolled passed it\n redirect !== true; // we are on DST 2.0 page\n\n const { refetch, isError } = useGetSuggestions();\n const history = useHistory();\n const updateQueryParam = useUpdateQueryParam();\n\n const { domainName } = useDSTContext();\n const setQuery = useDSTActionContext();\n\n const tldSuffix = tld ?? '';\n\n const updateSearch = (values: DomainSearchFormValues) => {\n // Do not append more than once the tld suffix\n const searchTerm = values.domainSearchTerm.endsWith(tldSuffix + tldSuffix)\n ? values.domainSearchTerm\n : values.domainSearchTerm + tldSuffix;\n setQuery({ type: 'SET_QUERY', payload: { domainName: searchTerm } });\n updateQueryParam({ param: 'domain', value: searchTerm });\n\n dispatchGAEvent({\n hitType: 'event',\n eventCategory: 'USF Interaction',\n eventAction: 'form submit',\n eventLabel: analytics ?? 'DST v.2.0 Search Submit',\n });\n };\n\n const onSubmit = (values: DomainSearchFormValues) => {\n if (redirect) {\n history.push(`${destination}?domain=${values.domainSearchTerm + tldSuffix}`);\n return;\n }\n if (values.domainSearchTerm === domainName && isError) {\n // This will allow the user to refetch when we have an error\n refetch();\n } else {\n scrollCallback(ref, redirect);\n // trick code into waiting for the scroll before triggering the search.\n // Apparently its not instant enough otherwise.\n setTimeout(() => updateSearch(values), 0);\n }\n };\n return {\n models: {\n isError,\n domainName,\n isSticky,\n ref,\n basketCount,\n },\n operations: {\n onSubmit,\n },\n };\n}\n","import { useBreakpoints } from '@uds/responsive';\nimport { Suspense, lazy } from 'react';\n\nimport { StickyCheckoutProps } from './components/types';\n\nconst StickyMobile = lazy(() => import('./components/StickyCheckout.mobile'));\nconst StickyDesktop = lazy(() => import('./components/StickyCheckout.desktop'));\n\ninterface Props extends StickyCheckoutProps {}\n\nexport default function StickyCheckoutContainer(props: Readonly): JSX.Element {\n const { isMinMd } = useBreakpoints();\n return (\n }>\n {isMinMd ? : }\n \n );\n}\n","import { RibbonProps, Type } from 'domain/constants/ribbons';\nimport { Formik, Form } from 'formik';\nimport { ComponentType } from 'react';\nimport visibilitySet from 'presentation/hocs/visibilitySet';\nimport errorBoundary from 'presentation/hocs/errorBoundary';\n\nimport DomainSearchInput from './components/DomainSearchInput';\nimport { DomainSearchDesignProps, DomainSearchTextProps, SearchInputCTAProps } from './models/types';\nimport Ribbon from '../Ribbon';\nimport useDomainSearchInput from './models/useDomainSearchInput';\nimport StickyCheckoutBar from './components/sticky-checkout';\n\ninterface OuterProps extends RibbonProps {\n text: DomainSearchTextProps;\n design: DomainSearchDesignProps;\n search: SearchInputCTAProps;\n}\n\nconst ConnectedDomainSearchInput = ({\n id,\n name,\n colorway,\n design,\n text,\n layout,\n loading,\n search,\n hBaseline,\n}: OuterProps) => {\n const {\n models: { domainName, ref, isSticky, basketCount },\n operations: { onSubmit },\n } = useDomainSearchInput({\n analytics: search?.analytics,\n redirect: search?.redirect,\n destination: search?.destination,\n tld: search?.tld,\n });\n\n return (\n <>\n {/* When redirect is set to true, we are not on DST, and the input should not be sticky */}\n \n <>\n \n \n
\n \n \n \n
\n \n \n \n \n \n );\n};\n\nConnectedDomainSearchInput.displayName = 'DomainSearchInput';\n\nexport default errorBoundary(visibilitySet(ConnectedDomainSearchInput)) as ComponentType;\n"],"sourceRoot":""}