{"version":3,"file":"app.6046.ea710d952ad4f765e1c9.js","mappings":"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","sources":["webpack://iabbb-monorepo/./packages/shared/components/Cards/CardContactBbb/analytics.ts","webpack://iabbb-monorepo/./packages/shared/containers/Header/FindYourBbbTypeahead/selectors.ts","webpack://iabbb-monorepo/./packages/shared/containers/Header/FindYourBbbTypeahead/Typeahead/styles/index.js","webpack://iabbb-monorepo/./packages/shared/containers/Header/FindYourBbbTypeahead/Typeahead/Suggestion.tsx","webpack://iabbb-monorepo/./packages/shared/containers/Header/FindYourBbbTypeahead/Typeahead/FindYourBbbTypeahead.tsx","webpack://iabbb-monorepo/./packages/shared/components/Cards/CardContactBbb/index.tsx","webpack://iabbb-monorepo/./packages/shared/components/Cards/CardContactBbb/actions.tsx"],"sourcesContent":["import aaDirectCall from '@iabbb/utils/analytics/adobe/directCall';\r\n\r\nexport const BBB_SEARCH = 'bbb_search';\r\nexport const EMAIL_CLICK = 'email_click';\r\nexport const PHONE_CLICK = 'phone_click';\r\n\r\nconst trackBbbSearch = ({ name, location }: { name: string; location: string }) => {\r\n aaDirectCall({\r\n name,\r\n dataLayerProperties: { title: location },\r\n });\r\n};\r\n\r\nexport { trackBbbSearch };\r\n","import { createSelector } from 'reselect';\r\n\r\nimport { DEFAULT_BBB_ID } from '@iabbb/utils/bbbInfo/constants';\r\nimport getIn from '@iabbb/utils/object/getIn';\r\nimport createSelectors from '@iabbb/shared/components/Typeahead/factories/LocationTypeahead/createSelectors';\r\nimport runtimeEnv from '@iabbb/utils/runtimeEnv';\r\n\r\nimport { TYPEAHEAD_STATE_PATH } from './constants';\r\n\r\nconst {\r\n getTypeahead,\r\n getInput,\r\n getIsFetching,\r\n getResultsWithCurrentLocation,\r\n getTypeaheadCultureId,\r\n getPlaceholder,\r\n getSelected,\r\n} = createSelectors({ typeaheadStatePath: TYPEAHEAD_STATE_PATH });\r\n\r\nexport {\r\n getTypeahead,\r\n getPlaceholder,\r\n getResultsWithCurrentLocation,\r\n getInput,\r\n getIsFetching,\r\n getTypeaheadCultureId,\r\n getSelected,\r\n};\r\n\r\nconst selectBaseUrl = () => runtimeEnv.NEXT_PUBLIC_BASE_URL;\r\nconst selectFindYourBbbTypeaheadSelectedBbbInfo = (state: Record) =>\r\n getIn(state, [...TYPEAHEAD_STATE_PATH, 'selected', 'bbbInfo']);\r\nconst selectFindYourBbbTypeaheadSelectedBbbId = (state: Record) =>\r\n getIn(state, [...TYPEAHEAD_STATE_PATH, 'selected', 'bbbInfo', 'bbbId']);\r\n\r\nconst getBbbName = () =>\r\n createSelector([selectFindYourBbbTypeaheadSelectedBbbInfo], (bbbInfo) =>\r\n bbbInfo?.bbbId !== DEFAULT_BBB_ID ? bbbInfo.bbbName : '',\r\n );\r\n\r\nconst getHasFindYourBbbSelected = () =>\r\n createSelector([selectFindYourBbbTypeaheadSelectedBbbId], (bbbId) => !!(bbbId && bbbId !== DEFAULT_BBB_ID));\r\n\r\nconst getLinkTagline = () =>\r\n createSelector([selectFindYourBbbTypeaheadSelectedBbbId], (bbbId) =>\r\n bbbId !== DEFAULT_BBB_ID ? 'My BBB' : null,\r\n );\r\n\r\nconst getBbbUrl = () =>\r\n createSelector([selectFindYourBbbTypeaheadSelectedBbbInfo, selectBaseUrl], (bbbInfo, baseUrl) =>\r\n bbbInfo && getIn(bbbInfo, ['urls', 'bbbUrl']) ? getIn(bbbInfo, ['urls', 'bbbUrl']) : baseUrl,\r\n );\r\n\r\nexport { getBbbName, getBbbUrl, getHasFindYourBbbSelected, getLinkTagline };\r\n","import styled from '@emotion/styled';\r\n\r\nimport Typeahead from '@iabbb/shared/components/Typeahead/Provider/styles';\r\n\r\nconst Styles = styled(Typeahead)`\r\n display: flex;\r\n flex-grow: 1;\r\n\r\n input {\r\n background: transparent;\r\n border: 0;\r\n font: inherit;\r\n }\r\n`;\r\n\r\nStyles.Clear = Typeahead.Clear;\r\nStyles.Container = Typeahead.Container;\r\nStyles.Input = Typeahead.Input;\r\nStyles.Suggestions = Typeahead.Suggestions;\r\n\r\nStyles.Suggestions.Li = styled(Typeahead.Suggestions.Li)`\r\n ${({ isActive }) =>\r\n isActive &&\r\n `\r\n background-color: var(--bds-color-blue-medium-87);\r\n `}\r\n`;\r\n\r\nStyles.Suggestions.Ul = Typeahead.Suggestions.Ul;\r\nStyles.Suggestions.SectionTitle = Typeahead.Suggestions.SectionTitle;\r\n\r\nexport default Styles;\r\n","import Suggestion from '@iabbb/shared/components/Typeahead/Suggestion/styles';\r\nimport TypeaheadHighlighter from '@iabbb/shared/components/Typeahead/Highlighter';\r\nimport getIn from '@iabbb/utils/object/getIn';\r\nimport clsx from 'clsx';\r\n\r\ninterface SuggestionComponentProps {\r\n suggestion: any;\r\n query: string;\r\n}\r\n\r\n/*\r\n Note: this class name is tied to a particular Adobe Analytics event for updating the BBB in the header menu.\r\n Avoid using this elsewhere unless you restructure it to allow for flexible class names.\r\n*/\r\nfunction SuggestionComponent({ suggestion = {}, query }: SuggestionComponentProps) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {getIn(suggestion, ['bbbInfo', 'bbbName'])}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default SuggestionComponent;\r\n","import clsx from 'clsx';\r\nimport React, { useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport InputGroup from '@iabbb/shared/components/General/InputGroup';\r\nimport Typeahead from '@iabbb/shared/components/Typeahead/Provider';\r\nimport TypeaheadAutocomplete from '@iabbb/shared/components/Typeahead/Provider/Autocomplete';\r\nimport TypeaheadClear from '@iabbb/shared/components/Typeahead/Provider/Clear';\r\nimport TypeaheadLabel from '@iabbb/shared/components/Typeahead/Provider/Label';\r\nimport TypeaheadCountryCombobox from '@iabbb/shared/components/Typeahead/CountryCombobox';\r\n\r\nimport {\r\n getInput,\r\n getIsFetching,\r\n getPlaceholder,\r\n getResultsWithCurrentLocation,\r\n getTypeaheadCultureId,\r\n getSelected,\r\n} from '@iabbb/shared/containers/Header/FindYourBbbTypeahead/selectors';\r\nimport {\r\n clearFindYourBbbTypeahead,\r\n fetchAndUpdateFindYourBbbTypeaheadResults,\r\n setFindYourBbbTypeaheadInput,\r\n setFindYourBbbTypeaheadSelected,\r\n setFindYourBbbTypeaheadCultureId,\r\n clearFindYourBbbTypeaheadResultsIfNotEmpty,\r\n setFindYourBbbLocateBbbOnMapAndUser,\r\n} from '@iabbb/shared/containers/Header/FindYourBbbTypeahead/actions';\r\nimport getIn from '@iabbb/utils/object/getIn';\r\nimport validator from '@iabbb/utils/validators/validator';\r\nimport isNotFalsyOrEmpty from '@iabbb/utils/validators/isNotFalsyOrEmptyValidator';\r\n\r\nimport DefaultStyled from './styles';\r\nimport Suggestion from './Suggestion';\r\n\r\nconst inputSelector = getInput();\r\nconst isFetchingSelector = getIsFetching();\r\nconst placeholderSelector = getPlaceholder();\r\nconst resultsSelector = getResultsWithCurrentLocation();\r\nconst typeaheadCultureIdSelector = getTypeaheadCultureId();\r\nconst selectedSelector = getSelected();\r\n\r\ninterface FindYourBbbTypeaheadSuggestionProps {\r\n displayText: string;\r\n currentLocation: unknown;\r\n bbbIds: string[];\r\n}\r\n\r\ninterface FindYourBbbTypeaheadComponentProps {\r\n name?: string;\r\n styled?: React.CSSProperties;\r\n}\r\n\r\nfunction FindYourBbbTypeaheadComponent({\r\n name = 'findYourBbbTypeaheadInput',\r\n styled = DefaultStyled,\r\n}: FindYourBbbTypeaheadComponentProps) {\r\n // selectors\r\n const input = useSelector(inputSelector);\r\n const isFetching = useSelector(isFetchingSelector);\r\n const placeholder = useSelector(placeholderSelector);\r\n const results = useSelector(resultsSelector);\r\n const typeaheadCultureId: string = useSelector(typeaheadCultureIdSelector);\r\n const selected = useSelector(selectedSelector);\r\n const userPhysicalLocation = useSelector((state: Record) =>\r\n getIn(state, ['user', 'physicalLocation']),\r\n );\r\n\r\n // actions\r\n const dispatch = useDispatch();\r\n\r\n const clear = useCallback(() => dispatch(clearFindYourBbbTypeahead() as never), [dispatch]);\r\n const clearFindYourBbbTypeaheadResultsIfNotEmptyConnect = useCallback(\r\n () => dispatch(clearFindYourBbbTypeaheadResultsIfNotEmpty() as never),\r\n [dispatch],\r\n );\r\n const fetchAndUpdateResults = useCallback(\r\n (data) => dispatch(fetchAndUpdateFindYourBbbTypeaheadResults(data) as never),\r\n [dispatch],\r\n );\r\n const setFindYourBbbLocateBbbOnMapAndUserConnect = useCallback(\r\n (data) => dispatch(setFindYourBbbLocateBbbOnMapAndUser(data) as never),\r\n [dispatch],\r\n );\r\n const setFindYourBbbTypeaheadCultureIdConnect = useCallback(\r\n (_cultureId) => dispatch(setFindYourBbbTypeaheadCultureId(_cultureId) as never),\r\n [dispatch],\r\n );\r\n const setSelected = useCallback((data) => dispatch(setFindYourBbbTypeaheadSelected(data) as never), [dispatch]);\r\n\r\n const setInput = useCallback(\r\n (_input: string) => dispatch(setFindYourBbbTypeaheadInput(_input) as never),\r\n [dispatch],\r\n );\r\n\r\n const onItemSelected = (item: FindYourBbbTypeaheadSuggestionProps | null) => {\r\n if (item?.displayText) {\r\n if (item.currentLocation) {\r\n const [userCity, userState] = userPhysicalLocation.split(', ');\r\n setSelected({});\r\n setInput(`${userCity}, ${userState}`);\r\n } else if (validator(isNotFalsyOrEmpty)(item.bbbIds, getIn(item, ['bbbInfo', 'bbbName']))) {\r\n setFindYourBbbLocateBbbOnMapAndUserConnect(item);\r\n }\r\n }\r\n };\r\n\r\n const onChangeCountrySelectRenderInputComponent = (cultureId: string) => {\r\n setFindYourBbbTypeaheadCultureIdConnect(cultureId);\r\n clearFindYourBbbTypeaheadResultsIfNotEmptyConnect();\r\n };\r\n\r\n const getSuggestionValue = (suggestion: FindYourBbbTypeaheadSuggestionProps) => suggestion.displayText;\r\n\r\n const renderSuggestion = (suggestion: FindYourBbbTypeaheadSuggestionProps, { query }: { query: string }) => {\r\n const props = {\r\n suggestion,\r\n query,\r\n };\r\n\r\n return ;\r\n };\r\n\r\n const typeaheadProps = {\r\n fetchAndUpdateResults,\r\n getSuggestionValue,\r\n inputProps: {\r\n name,\r\n placeholder,\r\n value: input,\r\n },\r\n isFetching,\r\n onClickClear: clear,\r\n onItemSelected,\r\n // renderInputComponent, - not found\r\n renderSuggestion,\r\n selected,\r\n setInput,\r\n setSelected: setFindYourBbbTypeaheadSelected,\r\n shouldRenderSuggestions: () => true,\r\n styled,\r\n suggestions: results,\r\n };\r\n\r\n return (\r\n \r\n Your location\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst FindYourBbbTypeahead = React.memo(FindYourBbbTypeaheadComponent);\r\nFindYourBbbTypeahead.displayName = 'FindYourBbbTypeahead';\r\n\r\nexport default FindYourBbbTypeahead;\r\n","import Button from '@iabbb/bds-react/Button';\r\nimport Typography from '@iabbb/bds-react/Typography';\r\nimport IconPhone from '@iabbb/icons/Phone';\r\nimport IconSearch from '@iabbb/icons/Search';\r\nimport { tryGetBbbLocationAsync } from '@iabbb/shared/components/Cards/CardContactBbb/actions';\r\nimport { BBB_SEARCH, trackBbbSearch } from '@iabbb/shared/components/Cards/CardContactBbb/analytics';\r\nimport EmailAddress from '@iabbb/shared/components/General/EmailAddress';\r\nimport PhoneNumber from '@iabbb/shared/components/General/PhoneNumber';\r\nimport Card from '@iabbb/shared/components/UI/Card';\r\nimport { getInput } from '@iabbb/shared/containers/Header/FindYourBbbTypeahead/selectors';\r\nimport FindYourBbbTypeahead from '@iabbb/shared/containers/Header/FindYourBbbTypeahead/Typeahead';\r\nimport {\r\n getHasUserLocalBbbSelected,\r\n getUserLocationBbbContact,\r\n getUserLocationBbbCountryCode,\r\n} from '@iabbb/shared/states/User/selectors';\r\nimport { bbbCountryCodeToKey } from '@iabbb/utils/string/formatPhoneNumber';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport './styles.css';\r\n\r\ninterface CardContactBbbProps extends React.ComponentPropsWithoutRef<'div'> {\r\n analyticsEvents?: Record | null;\r\n customContactEmail?: string | null;\r\n customContactExtension?: string | null;\r\n customContactNumber?: string | null;\r\n customSchedulingURL?: string | null;\r\n formIntro?: React.ReactNode | null;\r\n showFormIfDefaultBbb?: boolean;\r\n typeaheadProps?: Record;\r\n}\r\n\r\nexport function CardContactBbb({\r\n analyticsEvents = null,\r\n children = null,\r\n className,\r\n formIntro = null,\r\n showFormIfDefaultBbb = false,\r\n\r\n typeaheadProps = {},\r\n customContactEmail,\r\n customContactNumber,\r\n customContactExtension,\r\n customSchedulingURL,\r\n ...props\r\n}: CardContactBbbProps) {\r\n const dispatch = useDispatch();\r\n\r\n const bbbContact = useSelector(getUserLocationBbbContact()) || null;\r\n const bbbCountryCode = useSelector(getUserLocationBbbCountryCode()) || 0;\r\n const hasUserLocalBbbSelected = useSelector(getHasUserLocalBbbSelected());\r\n const typeaheadInput = useSelector(getInput()) || '';\r\n\r\n const email = customContactEmail ?? bbbContact?.email;\r\n const phone = customContactNumber ?? bbbContact?.phoneNumber;\r\n const emailPr = bbbContact?.emailPr;\r\n const phoneNumberPr = bbbContact?.phoneNumberPr;\r\n const countryCode = bbbCountryCodeToKey(bbbCountryCode as number);\r\n\r\n const onSubmit = (e: { preventDefault: () => void }) => {\r\n if (analyticsEvents?.[BBB_SEARCH]) {\r\n trackBbbSearch({\r\n location: typeaheadInput,\r\n name: analyticsEvents[BBB_SEARCH],\r\n });\r\n }\r\n\r\n e.preventDefault();\r\n\r\n // @ts-expect-error error caused by dispatch not recognizing thunks\r\n dispatch(tryGetBbbLocationAsync());\r\n };\r\n\r\n const showForm = !hasUserLocalBbbSelected && showFormIfDefaultBbb;\r\n\r\n return (\r\n \r\n \r\n Still Need Assistance?\r\n \r\n \r\n Contact Your Local BBB\r\n \r\n

\r\n Your local Better Business Bureau can assist you with finding businesses you can trust. Start With Trust®.\r\n

\r\n {children}\r\n {showForm && (\r\n <>\r\n {formIntro}\r\n
\r\n \r\n \r\n \r\n \r\n )}\r\n {(email || phone) && (\r\n
\r\n
General Inquiries:
\r\n \r\n {email && (\r\n
\r\n \r\n
\r\n )}\r\n {phone && (\r\n
\r\n \r\n \r\n {phone}\r\n \r\n
\r\n )}\r\n
\r\n \r\n )}\r\n\r\n {(emailPr || phoneNumberPr) && (\r\n
\r\n
Media Inquiries:
\r\n \r\n {emailPr && (\r\n
\r\n \r\n
\r\n )}\r\n {phoneNumberPr && (\r\n
\r\n \r\n \r\n {phoneNumberPr}\r\n \r\n
\r\n )}\r\n
\r\n \r\n )}\r\n {customSchedulingURL && (\r\n

\r\n Schedule an appointment now - {customSchedulingURL}\r\n

\r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default CardContactBbb;\r\n","import { setFindYourBbbLocateBbbOnMapAndUser } from '@iabbb/shared/containers/Header/FindYourBbbTypeahead/actions';\r\nimport { fetchSuggestBbbLocation } from '@iabbb/utils/api/SuggestApi';\r\nimport getCountryCodeFromCultureOrDefault from '@iabbb/utils/culture/getCountryCodeFromCultureOrDefault';\r\nimport getIn from '@iabbb/utils/object/getIn';\r\nimport isNotFalsyOrEmpty from '@iabbb/utils/validators/isNotFalsyOrEmptyValidator';\r\nimport validator from '@iabbb/utils/validators/validator';\r\n\r\nexport function tryGetBbbLocationAsync() {\r\n return (dispatch, getState) =>\r\n new Promise((resolve, reject) => {\r\n const state = getState();\r\n const lbTypeaheadState = getIn(state, ['header', 'findYourBbbTypeahead']);\r\n\r\n const cultureId = lbTypeaheadState.cultureId;\r\n const input = lbTypeaheadState.input;\r\n const userLocationBbbId = getIn(state, ['user', 'location', 'bbbId']);\r\n\r\n const country = getCountryCodeFromCultureOrDefault(cultureId);\r\n\r\n if (input) {\r\n // Get best match of location\r\n return fetchSuggestBbbLocation({\r\n country,\r\n input,\r\n maxMatches: 1,\r\n bbbId: userLocationBbbId,\r\n }).then((responseData) => {\r\n if (validator(isNotFalsyOrEmpty)(responseData)) {\r\n return resolve(responseData[0]);\r\n }\r\n return reject();\r\n });\r\n }\r\n return reject();\r\n })\r\n .then((location) => {\r\n dispatch(setFindYourBbbLocateBbbOnMapAndUser(location));\r\n return location;\r\n })\r\n .catch(() => {});\r\n}\r\n"],"names":["BBB_SEARCH","getTypeahead","getInput","getIsFetching","getResultsWithCurrentLocation","getTypeaheadCultureId","getPlaceholder","getSelected","createSelectors","typeaheadStatePath","TYPEAHEAD_STATE_PATH","Styles","_styled","Typeahead","target","name","styles","Clear","Container","Input","Suggestions","Li","isActive","Ul","SectionTitle","suggestion","query","_jsxs","Suggestion","className","clsx","children","_jsx","Title","TypeaheadHighlighter","text","displayText","SecondaryTitle","style","getIn","inputSelector","isFetchingSelector","placeholderSelector","resultsSelector","typeaheadCultureIdSelector","selectedSelector","FindYourBbbTypeaheadComponent","styled","DefaultStyled","input","useSelector","isFetching","placeholder","results","typeaheadCultureId","selected","userPhysicalLocation","state","dispatch","useDispatch","clear","useCallback","clearFindYourBbbTypeahead","clearFindYourBbbTypeaheadResultsIfNotEmptyConnect","clearFindYourBbbTypeaheadResultsIfNotEmpty","fetchAndUpdateResults","data","fetchAndUpdateFindYourBbbTypeaheadResults","setFindYourBbbLocateBbbOnMapAndUserConnect","setFindYourBbbLocateBbbOnMapAndUser","setFindYourBbbTypeaheadCultureIdConnect","_cultureId","setFindYourBbbTypeaheadCultureId","setSelected","setFindYourBbbTypeaheadSelected","setInput","_input","setFindYourBbbTypeaheadInput","typeaheadProps","getSuggestionValue","inputProps","value","onClickClear","onItemSelected","item","currentLocation","userCity","userState","split","validator","isNotFalsyOrEmpty","bbbIds","renderSuggestion","props","shouldRenderSuggestions","suggestions","as","InputGroup","TypeaheadLabel","TypeaheadAutocomplete","TypeaheadClear","TypeaheadCountryCombobox","setSelectedId","cultureId","selectedId","FindYourBbbTypeahead","React","displayName","analyticsEvents","formIntro","showFormIfDefaultBbb","customContactEmail","customContactNumber","customContactExtension","customSchedulingURL","bbbContact","getUserLocationBbbContact","bbbCountryCode","getUserLocationBbbCountryCode","hasUserLocalBbbSelected","getHasUserLocalBbbSelected","typeaheadInput","email","phone","phoneNumber","emailPr","phoneNumberPr","countryCode","bbbCountryCodeToKey","showForm","Card","Typography","component","variant","_Fragment","noValidate","onSubmit","e","trackBbbSearch","location","aaDirectCall","dataLayerProperties","title","preventDefault","getState","Promise","resolve","reject","lbTypeaheadState","userLocationBbbId","country","getCountryCodeFromCultureOrDefault","fetchSuggestBbbLocation","maxMatches","bbbId","then","responseData","catch","Button","type","padding","minInlineSize","IconSearch","EmailAddress","IconPhone","PhoneNumber","obfuscate","threeLetterCountryCode","format","contactExtension","undefined","showPR","href"],"sourceRoot":""}