{"version":3,"file":"index-9814532e.js","sources":["../../../../src/scripts/react-components/territory-manager-listing/card.tsx","../../../../src/scripts/react-components/territory-manager-listing/index.tsx"],"sourcesContent":["import React from 'react';\nimport { formatPhoneNumber } from '../../helpers/transform';\n\ntype TerritoryManagerCardProps = {\n  name: string;\n  title: string;\n  email: string;\n  phone: string;\n  image: string;\n};\n\nfunction TerritoryManagerCard({\n  name,\n  title,\n  email,\n  phone,\n  image\n}: TerritoryManagerCardProps) {\n  return (\n    <article className=\"territory-manager-card\">\n      <picture className=\"territory-manager-card__picture\">\n        <img src={`${image}?width=150`} alt={name}  />\n      </picture>\n      <div className=\"territory-manager-card__content\">\n        <h3 className=\"territory-manager-card__name\">{name}</h3>\n        {title && <p className=\"territory-manager-card__title\">{title}</p>}\n        {email && (\n          <a href={`mailto:${email}`} className=\"link--inline link--icon-left\">\n            <span className=\"sr-only\">Email:</span>\n            {email}\n            <svg role=\"presentation\">\n              <use xlinkHref=\"#red-email-icon\"></use>\n            </svg>\n          </a>\n        )}\n        {phone && (\n          <a href={`tel:${phone}`} className=\"link--inline link--icon-left\">\n            <span className=\"sr-only\">Phone Number:</span>\n            {formatPhoneNumber(phone)}\n            <svg role=\"presentation\">\n              <use xlinkHref=\"#red-phone-icon\"></use>\n            </svg>\n          </a>\n        )}\n      </div>\n    </article>\n  );\n}\n\nexport default TerritoryManagerCard;\n","import React, { Fragment, useEffect, useRef, useState } from 'react';\nimport ToggleSwitch from '../toggle-switch';\nimport ZipForm from '../zip-form';\nimport TerritoryManagerCard from './card';\nimport Loader from '../listing-states/loader';\nimport { GeolocationType } from '../../helpers/global-storage';\nimport {\n  getUrlParamValue,\n  setUrlParamValue,\n  setUrlParams,\n  updateEndpointWithQueryString\n} from '../../helpers/queryString';\nimport {\n  getLocationByIpAddress,\n  getZipAndCountryFromUrl,\n  getGeolocationDataFromBrowserAndGoogle,\n  updateGeolocationDataProperties,\n  getStoredGeolocationCountryAndZip\n} from '../../helpers/geolocation';\nimport { useFetch } from '../../hooks/useFetch';\nimport { TerritoryManagersResponse } from './response';\nimport { ExtendedWindowType } from '../../helpers/global-types';\n\ntype SwitchProps = {\n  field: string;\n  values: Array<{ value: string; label: string; default: boolean }>;\n};\n\ntype CommercialArrayType = {\n  heading: string;\n  copy: string;\n  titles: string;\n  noResultsMessage: string;\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  tenant: string;\n  sharedKey: string;\n  endpoint: string;\n  token: string;\n  defaultImages: string | { [key: string]: string };\n  loadingText: string;\n  commercialArray: string;\n  residentialArray: string;\n};\n\nconst RESIDENTIAL_VALUE = 'R';\nconst COMMERCIAL_VALUE = 'C';\n\nfunction TerritoryManagerListing({\n  heading,\n  switchData,\n  country,\n  zipInvalidMessage,\n  zipPlaceholders,\n  zipRegex,\n  tenant,\n  endpoint,\n  defaultImages,\n  loadingText,\n  commercialArray,\n  residentialArray\n}: TerritoryManagerLookupProps) {\n  //Define constants from props\n  const switchDataObj: SwitchProps =\n    typeof switchData === 'string' ? JSON.parse(switchData) : switchData;\n\n  const [switchDefaultValue, setSwitchDefaultValue] = useState(\n    switchDataObj.values.find(val => val.default)?.value || ''\n  );\n  const defaultImagesObj =\n    typeof defaultImages === 'string'\n      ? JSON.parse(defaultImages)\n      : defaultImages;\n  const typeFromUrl = getUrlParamValue('BusinessAreas');\n\n  const regex = typeof zipRegex === 'string' ? JSON.parse(zipRegex) : zipRegex;\n  const placeholders =\n    typeof zipPlaceholders === 'string'\n      ? JSON.parse(zipPlaceholders)\n      : zipPlaceholders;\n\n  const commercialArrayObj = JSON.parse(commercialArray) as CommercialArrayType;\n  const residentialArrayObj = JSON.parse(\n    residentialArray\n  ) as CommercialArrayType;\n\n  //Define states\n  const defaultCardsRef = useRef<\n    TerritoryManagersResponse['territoryManagers']\n  >([]);\n  const [type, setType] = useState(typeFromUrl || switchDefaultValue);\n  const [locationData, setLocationData] = useState<GeolocationType | null>(\n    null\n  );\n  const [endpointUrl, setEndpointUrl] = useState('');\n  const [cards, setCards] = useState<\n    TerritoryManagersResponse['territoryManagers']\n  >([]);\n  const [showLoader, setShowLoader] = useState(false);\n\n  //get data from endpoint\n  const { data, error } = useFetch<TerritoryManagersResponse>(endpointUrl);\n\n  //Define functions\n\n  const parseCountry = (country: string) => {\n    if (country.toUpperCase() === 'US') {\n      return 'USA';\n    }\n\n    if (country.toUpperCase() === 'CA') {\n      return 'CAN';\n    }\n\n    return country;\n  };\n\n  const countryToCode = (country: string) => {\n    if (country.toUpperCase() === 'USA') {\n      return 'US';\n    }\n\n    if (country.toUpperCase() === 'CAN') {\n      return 'CA';\n    }\n\n    return country;\n  };\n\n  const getTerritoryManagerLocationData = async () => {\n    const dataFromUrl = getZipAndCountryFromUrl();\n\n    if (dataFromUrl) {\n      return dataFromUrl;\n    }\n\n    const storedData = getStoredGeolocationCountryAndZip();\n\n    if (storedData) {\n      return storedData;\n    }\n\n    const maxmindData = await getLocationByIpAddress();\n\n    if (maxmindData) {\n      return maxmindData;\n    }\n\n    const browserData = await getGeolocationDataFromBrowserAndGoogle();\n\n    if (browserData) {\n      return browserData;\n    }\n\n    return null;\n  };\n\n  const initListing = async () => {\n    const location: GeolocationType | null =\n      await getTerritoryManagerLocationData();\n\n    if (location) {\n      const newCountry = parseCountry(location.country);\n      setLocationData({\n        zip: location.zip,\n        country: newCountry\n      });\n      (window as ExtendedWindowType).dataLayer.push({\n        event: 'zip_code',\n        event_action: 'zip code automatically detected',\n        event_category: 'geo info',\n        event_attributes: {\n          zip_code: location.zip,\n          zip_code_country: location.country.toLowerCase()\n        }\n      });\n    } else {\n      const newCountry = parseCountry(country);\n\n      setLocationData({\n        zip: '',\n        country: newCountry\n      });\n    }\n  };\n\n  const updateEndpoint = () => {\n    let queryUrl = updateEndpointWithQueryString(endpoint);\n    queryUrl = `${queryUrl}&Tenant=${tenant}`;\n    setEndpointUrl(queryUrl);\n  };\n\n  const updateToCommercial = (e: CustomEvent) => {\n    if (e.detail) {\n      setSwitchDefaultValue(switchDataObj.values[1].value);\n      setType(switchDataObj.values[1].value);\n    } else {\n      setSwitchDefaultValue(switchDataObj.values[0].value);\n      setType(switchDataObj.values[0].value);\n    }\n  };\n\n  //Define effects\n\n  useEffect(() => {\n    window.addEventListener('territoryChange', e =>\n      updateToCommercial(e as CustomEvent)\n    );\n    initListing();\n\n    return () => {\n      window.removeEventListener('territoryChange', e =>\n        updateToCommercial(e as CustomEvent)\n      );\n    };\n  }, []);\n\n  useEffect(() => {\n    setCards([]);\n\n    if (data) {\n      data.territoryManagers.sort((a, b) => {\n        const nameA = a.name.toUpperCase();\n        const nameB = b.name.toUpperCase();\n\n        if (nameA < nameB) {\n          return -1;\n        }\n\n        if (nameA > nameB) {\n          return 1;\n        }\n\n        return 0;\n      });\n\n      setCards(data.territoryManagers);\n    }\n\n    if (!data && !error && endpointUrl) {\n      setShowLoader(true);\n    } else {\n      setShowLoader(false);\n    }\n  }, [data, error]);\n\n  useEffect(() => {\n    if (locationData) {\n      setUrlParams({\n        PostalCode: locationData.zip.replace(/\\s/g, ''),\n        CountryCode: locationData.country,\n        BusinessAreas: type\n      });\n    }\n\n    if (locationData?.zip && locationData.country && type) {\n      updateEndpoint();\n    }\n  }, [locationData]);\n\n  //Define listeners\n  const handleSwitchValueChange = (value: string) => {\n    setCards([]);\n    setType(value);\n\n    if (locationData?.zip && locationData.country && value) {\n      setUrlParams({\n        PostalCode: locationData.zip.replace(/\\s/g, ''),\n        CountryCode: locationData.country,\n        BusinessAreas: value\n      });\n\n      updateEndpoint();\n    } else {\n      setUrlParamValue('BusinessAreas', value);\n    }\n  };\n\n  const handleClear = () => {\n    setLocationData({\n      zip: '',\n      country: parseCountry(country)\n    });\n  };\n\n  const handleSubmit = (zip: string, country: string) => {\n    if (zip && country) {\n      setUrlParams({\n        PostalCode: zip.replace(/\\s/g, ''),\n        CountryCode: parseCountry(country)\n      });\n\n      updateGeolocationDataProperties({\n        zip,\n        country: countryToCode(country).toLowerCase()\n      });\n    }\n\n    setLocationData({\n      zip,\n      country: parseCountry(country)\n    });\n\n    updateEndpoint();\n  };\n\n  const renderCardsSections = (arrayObj: CommercialArrayType) => {\n    defaultCardsRef.current = cards;\n\n    let filteredCards = cards,\n      isDefault = false;\n    const sectionsLength = arrayObj.length;\n\n    return arrayObj.map((item, index) => {\n      if (index === sectionsLength - 1 && !item.titles) {\n        isDefault = true;\n        filteredCards = defaultCardsRef.current;\n      } else {\n        const titles = item.titles.split('|');\n        filteredCards = cards.filter(card => {\n          if (titles.includes(card.title)) {\n            defaultCardsRef.current = defaultCardsRef.current.filter(\n              defaultCard => defaultCard !== card\n            );\n\n            return true;\n          }\n\n          return false;\n        });\n      }\n\n      if (filteredCards.length < 1 && isDefault && sectionsLength > 1) {\n        return null;\n      }\n\n      return (\n        <Fragment key={`${item.heading}-${index}`}>\n          {item.heading && (\n            <h3 className=\"territory-manager-listing__subheading\">\n              {item.heading}\n            </h3>\n          )}\n          {item.copy && (\n            <div\n              className=\"territory-manager-listing__description rtf\"\n              dangerouslySetInnerHTML={{\n                __html: item.copy\n              }}\n            />\n          )}\n          {filteredCards.length > 0 ? (\n            <ul className=\"territory-manager-listing__list\">\n              {filteredCards.map((card, index) => (\n                <li key={index} className=\"territory-manager-list-item\">\n                  <TerritoryManagerCard\n                    name={card.name}\n                    title={card.title}\n                    email={card.email}\n                    phone={card.mobilePhoneNumber || card.businessPhoneNumber}\n                    image={card.profilePhotoUrl || defaultImagesObj[type]}\n                  />\n                </li>\n              ))}\n            </ul>\n          ) : (\n            <>\n              {item.noResultsMessage && (\n                <div className=\"row territory-manager-listing__validation-error-wrapper\">\n                  <div className=\"zip-form__error-message territory-manager-listing__error-message\">\n                    <p className=\"error-message__error \">\n                      {item.noResultsMessage}\n                    </p>\n                  </div>\n                </div>\n              )}\n            </>\n          )}\n        </Fragment>\n      );\n    });\n  };\n\n  return (\n    <div className=\"territory-manager-listing container\">\n      <h2 className=\"territory-manager-listing__heading\">{heading}</h2>\n      <div className=\"territory-manager-listing__wrapper row\">\n        <div className=\"territory-manager-listing__switch\">\n          <ToggleSwitch\n            values={switchDataObj.values}\n            onValueChange={handleSwitchValueChange}\n            defaultValue={type || switchDefaultValue}\n          />\n        </div>\n        <div className=\"territory-manager-listing__form\">\n          {locationData && (\n            <ZipForm\n              defaultCountryValue={\n                locationData?.country.toLowerCase() || country || 'us'\n              }\n              invalidZipMessage={zipInvalidMessage}\n              onSubmit={handleSubmit}\n              zipPlaceholders={placeholders}\n              zipRegex={regex}\n              whiteBox={true}\n              onClear={handleClear}\n              defaultZipValue={locationData.zip}\n              alternativeOptions={true}\n            />\n          )}\n        </div>\n      </div>\n      {showLoader && <Loader loaderText={loadingText} />}\n      {type === RESIDENTIAL_VALUE && (\n        <div className=\"territory-manager-listing__wrapper--commercial\">\n          {renderCardsSections(residentialArrayObj)}\n        </div>\n      )}\n      {type === COMMERCIAL_VALUE && (\n        <div className=\"territory-manager-listing__wrapper--commercial\">\n          {renderCardsSections(commercialArrayObj)}\n        </div>\n      )}\n    </div>\n  );\n}\n\nexport default TerritoryManagerListing;\n"],"names":["TerritoryManagerCard","name","title","email","phone","image","React","formatPhoneNumber","RESIDENTIAL_VALUE","COMMERCIAL_VALUE","TerritoryManagerListing","heading","switchData","country","zipInvalidMessage","zipPlaceholders","zipRegex","tenant","endpoint","defaultImages","loadingText","commercialArray","residentialArray","switchDataObj","switchDefaultValue","setSwitchDefaultValue","useState","_a","val","defaultImagesObj","typeFromUrl","getUrlParamValue","regex","placeholders","commercialArrayObj","residentialArrayObj","defaultCardsRef","useRef","type","setType","locationData","setLocationData","endpointUrl","setEndpointUrl","cards","setCards","showLoader","setShowLoader","data","error","useFetch","parseCountry","countryToCode","getTerritoryManagerLocationData","dataFromUrl","getZipAndCountryFromUrl","storedData","getStoredGeolocationCountryAndZip","maxmindData","getLocationByIpAddress","browserData","getGeolocationDataFromBrowserAndGoogle","initListing","location","newCountry","updateEndpoint","queryUrl","updateEndpointWithQueryString","updateToCommercial","useEffect","a","b","nameA","nameB","setUrlParams","handleSwitchValueChange","value","setUrlParamValue","handleClear","handleSubmit","zip","updateGeolocationDataProperties","renderCardsSections","arrayObj","filteredCards","isDefault","sectionsLength","item","index","titles","card","defaultCard","Fragment","ToggleSwitch","ZipForm","Loader"],"mappings":"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"}