{"version":3,"file":"territory-manager-lookup-99b72832.js","sources":["../../../../src/scripts/react-components/territory-manager-lookup.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport ToggleSwitch from './toggle-switch';\nimport ZipForm from './zip-form';\nimport { GeolocationType } from '../helpers/global-storage';\nimport {\n COUNTRY_VALUES,\n getGeolocationDataFromBrowserAndGoogle,\n updateGeolocationDataProperties\n} from '../helpers/geolocation';\n\nimport { getStoredGeolocationData } from '../helpers/geolocation';\n\ntype SwitchProps = {\n field: string;\n values: Array<{ value: string; label: string; default: boolean }>;\n};\n\ntype TerritoryManagerLookupProps = {\n heading: string;\n introText: string;\n country: string;\n zipPlaceholders: string | { [key: string]: string };\n zipRegex: string | { [key: string]: string };\n switchData: string | SwitchProps;\n zipInvalidMessage: string;\n redirectUrl: string;\n};\n\nconst URL_PLACEHOLDERS = Object.freeze({\n zipCode: '{{zipCode}}',\n country: '{{country}}',\n type: '{{type}}'\n});\n\nfunction TerritoryManagerLookup({\n heading,\n introText,\n switchData,\n country,\n zipInvalidMessage,\n zipPlaceholders,\n zipRegex,\n redirectUrl\n}: TerritoryManagerLookupProps) {\n const switchDataObj: SwitchProps =\n typeof switchData === 'string' ? JSON.parse(switchData) : switchData;\n\n const switchDefaultValue =\n switchDataObj.values.find(val => val.default)?.value || '';\n\n const regex = typeof zipRegex === 'string' ? JSON.parse(zipRegex) : zipRegex;\n const [errorMessage, setErrorMessage] = useState('');\n const [type, setType] = useState(switchDefaultValue);\n const [ready, setReady] = useState(false);\n const [locationData, setLocationData] = useState(\n null\n );\n\n const placeholders =\n typeof zipPlaceholders === 'string'\n ? JSON.parse(zipPlaceholders)\n : zipPlaceholders;\n\n const handleSwitchValueChange = (value: string) => {\n setType(value);\n };\n\n const handleSumit = (zip: string, country: string) => {\n updateGeolocationDataProperties({\n zip,\n country: country.toLowerCase()\n });\n\n const url = redirectUrl\n .replace(URL_PLACEHOLDERS.zipCode, zip)\n .replace(URL_PLACEHOLDERS.country, country)\n .replace(URL_PLACEHOLDERS.type, type);\n window.location.href = url;\n };\n\n const handleError = (error: string) => {\n setErrorMessage(error);\n };\n\n const handleInput = () => {\n setErrorMessage('');\n };\n\n const handleClear = () => {\n setErrorMessage('');\n };\n\n /* \n 1. Check if there is a location in local storage or cookies\n 1.1. Location object: \n {\n \"country\": \"US\",\n \"zip\": \"02145\",\n \"metro\"?: \"Boston\"\n }\n 2. Try to get the location from browser\n 3. Use default country and zip palceholder\n */\n\n const fillLocationData = async () => {\n const location = getStoredGeolocationData();\n\n if (location) {\n setLocationData(location);\n setReady(true);\n } else {\n try {\n const data = await getGeolocationDataFromBrowserAndGoogle();\n\n if (data) {\n setLocationData(data);\n }\n } catch (error) {\n console.error('error', error);\n }\n setReady(true);\n }\n };\n\n useEffect(() => {\n fillLocationData();\n }, []);\n\n return (\n
\n

{heading}

\n {introText && (\n

{introText}

\n )}\n
\n
\n \n
\n
\n {ready && (\n \n )}\n {!ready && (\n \n )}\n
\n
\n {errorMessage && (\n
\n
\n

{errorMessage}

\n
\n
\n )}\n
\n );\n}\n\nexport default TerritoryManagerLookup;\n"],"names":["URL_PLACEHOLDERS","TerritoryManagerLookup","heading","introText","switchData","country","zipInvalidMessage","zipPlaceholders","zipRegex","redirectUrl","switchDataObj","switchDefaultValue","_a","val","regex","errorMessage","setErrorMessage","useState","type","setType","ready","setReady","locationData","setLocationData","placeholders","handleSwitchValueChange","value","handleSumit","zip","updateGeolocationDataProperties","url","handleError","error","handleInput","handleClear","fillLocationData","location","getStoredGeolocationData","data","getGeolocationDataFromBrowserAndGoogle","useEffect","React","ToggleSwitch","ZipForm","COUNTRY_VALUES"],"mappings":"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"}