{"version":3,"file":"static/chunks/5667.55bbac46588251ba.js","mappings":"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","sources":["webpack://_N_E/./src/components/base/v1/Final EPQ/index.js","webpack://_N_E/./src/components/shared/AddressFormBrand/index.js","webpack://_N_E/./src/components/base/v1/Final EPQ/FinalEpq.module.scss","webpack://_N_E/./src/components/shared/AddressFormBrand/AddressForm.module.scss"],"sourcesContent":["import React, { useRef } from 'react';\nimport styles from './FinalEpq.module.scss';\nimport AddressForm from '~/components/shared/AddressFormBrand';\nimport Typography from '~/components/shared/Typography';\nimport useIntersectionObserver from '~/helpers/hooks/useIntersectionObserver';\nimport { fireElementViewedEvent } from '~/helpers/utils/fireTagular';\nimport { useMonarchSlotContext } from '@redventures/cohesion-utils-react';\nimport { WhiteHughesnetLogo } from '~/components/icons';\nimport Button from '~/components/shared/Button';\nimport { useMedia } from '~/helpers/hooks';\n\nconst BASE_DATA = {\n  addressCTACopy: 'Shop plans',\n  addressLabelCopy: 'Enter your address to check available plans',\n  addressPlaceHolderCopy: 'Enter your address',\n  backgroundImage: 'final-epq-banner-hills',\n  headline: 'Find out what NEW Hughesnet plan could be right for you',\n  headlineTextColor: 'white',\n  mapPinIconColor: '#154B8E',\n  subhead:\n    'Our plans service across the nation so you can stay connected from wherever you live.',\n  subheadTextColor: 'white',\n  backgroundColor: '#005dac',\n  isEpq: true,\n  hasImage: false,\n  secondaryCTACopy: 'Learn More',\n  epqCopy: 'Shop Plans',\n};\n\nexport default function FinalEpq() {\n  const { data: monarchData } = useMonarchSlotContext();\n  const data = { ...BASE_DATA, ...monarchData };\n  const {\n    headlineTextColor,\n    subheadTextColor,\n    headline,\n    subhead,\n    backgroundImage,\n    hasImage,\n    backgroundColor,\n    isEpq,\n    epqCopy,\n    secondaryCTACopy,\n    hasMobileImage,\n    mobileBackgroundImage,\n  } = data;\n\n  //Refs used for eventing & animation\n  const finalEpqSection = useRef();\n\n  useIntersectionObserver(\n    [finalEpqSection],\n    () =>\n      fireElementViewedEvent(\n        'final epq rebrand',\n        'final epq rebrand section',\n        'final epq rebrand',\n        headline\n      ),\n    undefined,\n    { threshold: 0.75 }\n  );\n  const isMedia = useMedia();\n\n  const bgImage = backgroundImage\n    ? `/images/section/${backgroundImage}.jpg`\n    : `/images/section/final-epq-banner.jpg`;\n\n  const mobileBgImage = `/images/section/${mobileBackgroundImage}.jpg`;\n\n  const finalImage = isMedia.mobile && hasMobileImage ? mobileBgImage : bgImage;\n  const familyFieldImage =\n    backgroundImage == 'family-field' || backgroundImage == 'family-field-m';\n  const isPositionRight =\n    backgroundImage == 'final-epq-banner-hills' || familyFieldImage;\n\n  return (\n    <div\n      ref={finalEpqSection}\n      className={`${styles.container}`}\n      style={{ backgroundColor: backgroundColor }}\n    >\n      {backgroundImage !== 'none' && (\n        <img\n          className={`${styles.backgroundImage} ${\n            isPositionRight\n              ? styles.backgroundPositionRight\n              : styles.backgroundPositionCenter\n          }`}\n          src={finalImage}\n          alt=\"\"\n        />\n      )}\n      <div className={('grid-container', styles.content)}>\n        <div className={styles.headers}>\n          {hasImage && <WhiteHughesnetLogo />}\n          <Typography\n            variant=\"h1\"\n            className={`${styles.heading} ${\n              !hasImage && !familyFieldImage && styles.marginTop\n            }`}\n          >\n            <span\n              dangerouslySetInnerHTML={{ __html: headline }}\n              style={{ color: headlineTextColor }}\n            />\n          </Typography>\n          <Typography variant=\"h4\" className={styles.subheading}>\n            <span\n              dangerouslySetInnerHTML={{ __html: subhead }}\n              style={{ color: subheadTextColor }}\n            />\n          </Typography>\n        </div>\n        {isEpq ? (\n          <div className={styles.addressContainer}>\n            <AddressForm metadata={data} isFinalEpq={true} />\n          </div>\n        ) : (\n          <div className={styles.buttons}>\n            <Button\n              href=\"/order-online\"\n              tracking={{\n                position: 'ACP BANNER EPQ',\n                location: 'ACP BANNER',\n                elementType: 'BUTTON',\n                text: 'Check Availablity',\n                actionOutcome: 'Redirect to Cart',\n              }}\n              fuse\n              className={`${styles.epqBtn} ${styles.btn}`}\n            >\n              {epqCopy}\n            </Button>\n            <Button\n              href=\"/\"\n              tracking={{\n                position: 'FINAL EPQ',\n                location: 'FINAL EPQ',\n                elementType: 'BUTTON',\n                text: 'Refresh Page',\n                actionOutcome: 'Redirect back to LP',\n              }}\n              className={`${styles.callNowCta} ${styles.btn}`}\n            >\n              {secondaryCTACopy}\n            </Button>\n          </div>\n        )}\n      </div>\n    </div>\n  );\n}\n","import React, { useState, useEffect, useCallback } from 'react';\nimport styles from './AddressForm.module.scss';\nimport Button from '@components/shared/Button';\nimport { SMARTY_STREETS } from '@constants/smartyStreets';\nimport { ERRORS } from '@constants/errors';\nimport SuggestionItems from '@components/shared/AddressForm/SuggestionList';\nimport Typography from '@components/shared/Typography';\nimport { noticeError, addPageAction } from '@helpers/utils/newRelic';\nimport { MapPin } from '@components/icons/MapPin';\nimport { useMedia } from '@helpers/hooks';\nimport {\n  fetchAddressSuggestions,\n  handleSuggestionClick,\n} from '@helpers/utils/smartyStreets';\nimport {\n  linkedToOrderOnline,\n  passedThroughToProductSelection,\n} from '@constants/newRelicActions';\nimport { createKeyboardNavigationHandler } from '@helpers/utils/keyboardNavigation';\nimport { setTimedCookie } from '@helpers/utils/setCookie';\n\nexport default function AddressForm({\n  componentLocation,\n  metadata = {},\n  isHero = false,\n  isNav = false,\n  isModal = false,\n  isUppercase = true,\n}) {\n  const {\n    mapPinIconColor,\n    addressPlaceHolderCopy,\n    addressCTACopy,\n    addressLabelCopy,\n    addressLabelColor,\n    mobileAddressCTACopy,\n  } = metadata;\n  const isMedia = useMedia();\n  const [zipCode, setZipCode] = useState('');\n  const [address, setAddress] = useState('');\n  const [finalAddress, setFinalAddress] = useState({});\n  const [showNoApartmentSuggestions, setShowNoApartmentSuggestions] =\n    useState(false);\n  const [suggestions, setSuggestions] = useState([]);\n  const [disableButton, setDisableButton] = useState(false);\n  const [showSuggestions, setShowSuggestions] = useState(false);\n  const [activeIdx, setActiveIdx] = useState(0);\n  const location = componentLocation ? componentLocation : 'Homepage';\n  const position = isHero\n    ? 'Hero'\n    : isNav\n    ? 'Nav'\n    : isModal\n    ? 'Modal'\n    : 'FinalEpq';\n\n  const { API_KEY } = SMARTY_STREETS;\n\n  const checkFormButton = useCallback(() => {\n    if (address && zipCode) {\n      setDisableButton(false);\n    } else {\n      setDisableButton(true);\n    }\n  });\n\n  useEffect(() => {\n    checkFormButton();\n  }, [zipCode, address, checkFormButton]);\n\n  const onFormSubmit = async (event) => {\n    event.preventDefault();\n    if (finalAddress) {\n      const userData = {\n        street_line: finalAddress.street_line,\n        city: finalAddress.city,\n        state: finalAddress.state,\n        zip: finalAddress.zipcode,\n        isUnit: finalAddress.entries > 0,\n        unitValue: finalAddress.secondary,\n      };\n      setTimedCookie('address', JSON.stringify(userData), 30);\n      addPageAction(passedThroughToProductSelection);\n\n      // Tagular track form submitted\n      window.tagular('beam', 'FormSubmitted', {\n        '@type': 'redventures.usertracking.v3.FormSubmitted',\n        formContext: {\n          formType: 'Cart CTA',\n          formName: `${position}`,\n          formId: 'Homepage',\n        },\n      });\n      window.location.href = '/order-online/product-selection/';\n    } else {\n      // Navigate to order online page\n      addPageAction(linkedToOrderOnline);\n      window.location.href = '/order-online/';\n    }\n  };\n\n  /**\n   * Fetch suggestions from Smarty Streets API\n   */\n  const fetchSuggestions = async (query) => {\n    setShowNoApartmentSuggestions(false);\n\n    const addressSuggestions = await fetchAddressSuggestions(query);\n\n    if (addressSuggestions) {\n      setSuggestions(addressSuggestions);\n      return addressSuggestions;\n    } else {\n      setSuggestions([]);\n      return [];\n    }\n  };\n\n  const onAddressChange = async (value) => {\n    setAddress(value);\n    if (!value) {\n      setDisableButton(false);\n      setAddress('');\n      setZipCode('');\n      setSuggestions([]);\n      setShowSuggestions(false);\n      setActiveIdx(0);\n    } else {\n      const searchQuery = `?auth-id=${API_KEY}&search=${value}&prefer_geolocation=city`;\n\n      try {\n        fetchSuggestions(searchQuery);\n\n        if (suggestions) {\n          const uniqueSet = new Set();\n          const uniqueAddress = [];\n\n          suggestions.map((item) => {\n            if (!uniqueSet.has(item.street_line)) {\n              uniqueSet.add(item.street_line);\n              uniqueAddress.push(item);\n            }\n            return null;\n          });\n          setSuggestions(uniqueAddress);\n          setShowSuggestions(true);\n          setActiveIdx(0);\n        } else {\n          setShowSuggestions(false);\n        }\n      } catch (error) {\n        noticeError(error, {\n          type: ERRORS.SMARTY_STREETS.type,\n          message: ERRORS.SMARTY_STREETS.message,\n        });\n      }\n    }\n  };\n\n  /**\n   * Handle suggestion click\n   * @param {Object} item - The suggestion item\n   */\n  const onSuggestionClick = async (item) => {\n    const tagularObj = {\n      position: 'ADDRESS AUTOFILL',\n      htmlId: '',\n      elementType: 'DROP DOWN',\n      text: 'Used Suggestion',\n      actionOutcome: 'Internallink',\n    };\n\n    await handleSuggestionClick(\n      item,\n      API_KEY,\n      location,\n      fetchSuggestions,\n      setAddress,\n      setFinalAddress,\n      setZipCode,\n      setSuggestions,\n      setShowSuggestions,\n      setShowNoApartmentSuggestions,\n      checkFormButton,\n      tagularObj\n    );\n  };\n\n  /**\n   * Handle keyboard navigation\n   */\n  const handleAddressKeyDown = createKeyboardNavigationHandler({\n    onEscape: () => {\n      setShowSuggestions(false);\n    },\n    onArrowDown: () => {\n      if (activeIdx >= suggestions.length) {\n        setActiveIdx(0);\n      } else {\n        setActiveIdx(activeIdx + 1);\n      }\n    },\n    onArrowUp: () => {\n      if (activeIdx > 0) {\n        setActiveIdx(activeIdx - 1);\n      }\n    },\n    onEnter: () => {\n      const address = suggestions[activeIdx];\n      onSuggestionClick(address);\n    },\n    afterKeyHandler: () => {\n      checkFormButton();\n    },\n  });\n\n  const onInputClick = () => {\n    // handle address input field on click (means form started)\n    window.tagular('beam', 'FormStarted', {\n      '@type': 'redventures.usertracking.v3.FormStarted',\n      formContext: {\n        formType: 'ADDRESS CHECK FORM',\n        formName: `ADDRESS INPUT FIELD ${location}`,\n        formId: '',\n      },\n    });\n  };\n\n  const onSuggestionKeyDown = (event, suggestion) => {\n    if (event.keyCode === 13) {\n      event.preventDefault();\n      onSuggestionClick(suggestion);\n    }\n  };\n\n  const onCloseClick = () => {\n    // Tagular track 'close suggestions' button clicked\n    window.tagular('beam', 'ElementClicked', {\n      '@type': 'redventures.usertracking.v3.ElementClicked',\n      webElement: {\n        location: location,\n        position: 'ADDRESS AUTOFILL',\n        htmlId: '',\n        elementType: 'DROP DOWN',\n        text: 'Closed suggestions',\n      },\n      actionOutcome: '',\n    });\n\n    setShowSuggestions(false);\n    setSuggestions([]);\n  };\n\n  return (\n    <form\n      onSubmit={onFormSubmit}\n      autoComplete=\"off\"\n      className={styles.addressForm}\n    >\n      <div\n        className={\n          isHero\n            ? ''\n            : isNav\n            ? styles.isNavContainer\n            : isModal\n            ? styles.isModalContainer\n            : styles.nonHeroContainer\n        }\n      >\n        <Typography\n          variant=\"h2smaller\"\n          className={`${styles.addressHeadline} ${\n            !isNav && styles.heroAddressHeadline\n          }`}\n        >\n          <span style={{ color: addressLabelColor }}>\n            {addressLabelCopy || 'Find special offers in your area'}\n          </span>\n        </Typography>\n        <fieldset\n          className={`${styles.fieldset} ${\n            isNav\n              ? styles.isNavFieldSet\n              : !isHero && !isNav\n              ? styles.nonHeroFieldset\n              : ''\n          }`}\n        >\n          <div\n            className={`${styles.inputWrapper} ${\n              isNav\n                ? styles.isNavInputWrapper\n                : !isHero && !isNav\n                ? styles.nonHeroInputWrapper\n                : ''\n            }`}\n          >\n            <div className={styles.mapPin}>\n              <MapPin color={mapPinIconColor} />\n            </div>\n            <input\n              value={address}\n              onChange={(e) => onAddressChange(e.target.value)}\n              name=\"address\"\n              className={`${styles.textInput} ${styles.textInputColor}`}\n              onKeyDown={(e) => handleAddressKeyDown(e)}\n              onClick={onInputClick}\n              placeholder={addressPlaceHolderCopy || 'Enter your address'}\n              data-private=\"lipsum\"\n            />\n            {showSuggestions && (\n              <div className={styles.suggestionsList}>\n                <ul className={styles.suggestionsListItems}>\n                  <SuggestionItems\n                    items={suggestions}\n                    onSuggestionClick={onSuggestionClick}\n                    activeIdx={activeIdx}\n                    handleKeyDown={onSuggestionKeyDown}\n                  />\n                </ul>\n                {showNoApartmentSuggestions && (\n                  <div\n                    className={styles.suggestionListNoApartments}\n                    onClick={() => {\n                      setAddress('');\n                      setShowNoApartmentSuggestions(false);\n                      onCloseClick();\n                    }}\n                  >\n                    <Typography variant=\"p1\">\n                      Sorry, no secondary apartment suggestions found for this\n                      address.\n                    </Typography>\n                  </div>\n                )}\n                <div\n                  className={styles.suggestionsListClose}\n                  onClick={onCloseClick}\n                >\n                  <Typography\n                    variant=\"p1\"\n                    className={styles.suggestionsListCloseCopy}\n                  >\n                    Close address suggestions\n                  </Typography>\n                </div>\n              </div>\n            )}\n          </div>\n          <Button\n            isDisabled={address !== '' && disableButton}\n            className={`${styles.btn} ${\n              isNav\n                ? styles.isNavBtn\n                : !isHero && !isNav\n                ? styles.nonHeroBtn\n                : ''\n            } ${isUppercase && styles.uppercaseBtn}`}\n          >\n            {isNav && isMedia.mobile ? mobileAddressCTACopy : addressCTACopy}\n          </Button>\n        </fieldset>\n      </div>\n    </form>\n  );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tippy-touch\":\"FinalEpq_tippy-touch__1rY17\",\"tooltip-btn\":\"FinalEpq_tooltip-btn__kIcZr\",\"tooltip-icon\":\"FinalEpq_tooltip-icon__8LC2H\",\"tooltip-content--legal\":\"FinalEpq_tooltip-content--legal__rCttz\",\"tippy-box\":\"FinalEpq_tippy-box__iAOpu\",\"tippy-arrow\":\"FinalEpq_tippy-arrow__WhVfl\",\"custom-dots\":\"FinalEpq_custom-dots__nfU5G\",\"custom-dot\":\"FinalEpq_custom-dot__Y1DeD\",\"slick-active\":\"FinalEpq_slick-active__gyX8t\",\"container\":\"FinalEpq_container__WQCdK\",\"headers\":\"FinalEpq_headers__SSv8a\",\"heading\":\"FinalEpq_heading__n8JsQ\",\"subheading\":\"FinalEpq_subheading__ftW1R\",\"content\":\"FinalEpq_content__xlFWb\",\"addressContainer\":\"FinalEpq_addressContainer__VJJVI\",\"addressLabel\":\"FinalEpq_addressLabel___W7_T\",\"marginTop\":\"FinalEpq_marginTop__MTaMy\",\"backgroundImage\":\"FinalEpq_backgroundImage__VtnQV\",\"backgroundPositionCenter\":\"FinalEpq_backgroundPositionCenter__pQgeD\",\"backgroundPositionRight\":\"FinalEpq_backgroundPositionRight__1Dm1m\",\"buttons\":\"FinalEpq_buttons__ledmL\",\"btn\":\"FinalEpq_btn__x7ud6\",\"epqBtn\":\"FinalEpq_epqBtn__ks7DS\",\"callNowCta\":\"FinalEpq_callNowCta__ZMFku\",\"ring\":\"FinalEpq_ring__wyMGF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tippy-touch\":\"AddressForm_tippy-touch____VER\",\"tooltip-btn\":\"AddressForm_tooltip-btn__glljL\",\"tooltip-icon\":\"AddressForm_tooltip-icon__nD_rf\",\"tooltip-content--legal\":\"AddressForm_tooltip-content--legal__9RhOm\",\"tippy-box\":\"AddressForm_tippy-box__Qeao_\",\"tippy-arrow\":\"AddressForm_tippy-arrow__o6gQQ\",\"custom-dots\":\"AddressForm_custom-dots__AgyN2\",\"custom-dot\":\"AddressForm_custom-dot__drBXp\",\"slick-active\":\"AddressForm_slick-active__mPp8V\",\"addressForm\":\"AddressForm_addressForm__Wvgg2\",\"addressHeadline\":\"AddressForm_addressHeadline__kLBlf\",\"heroAddressHeadline\":\"AddressForm_heroAddressHeadline__XWZzV\",\"fieldset\":\"AddressForm_fieldset__2N3jc\",\"isNavFieldSet\":\"AddressForm_isNavFieldSet__xWd0N\",\"nonHeroFieldset\":\"AddressForm_nonHeroFieldset__BnKk7\",\"inputWrapper\":\"AddressForm_inputWrapper__e_h18\",\"isNavInputWrapper\":\"AddressForm_isNavInputWrapper__RCY0q\",\"nonHeroInputWrapper\":\"AddressForm_nonHeroInputWrapper__FDvLy\",\"mapPin\":\"AddressForm_mapPin__D9Hhk\",\"textInput\":\"AddressForm_textInput__CGu_j\",\"textInputColor\":\"AddressForm_textInputColor__QmKBL\",\"btn\":\"AddressForm_btn__GF6sD\",\"uppercaseBtn\":\"AddressForm_uppercaseBtn__LQQkU\",\"nonHeroBtn\":\"AddressForm_nonHeroBtn__7huB6\",\"isNavBtn\":\"AddressForm_isNavBtn__RgRxP\",\"suggestionsList\":\"AddressForm_suggestionsList__Cz8kL\",\"suggestionsListItems\":\"AddressForm_suggestionsListItems__R_SaO\",\"suggestionsListClose\":\"AddressForm_suggestionsListClose__RkK60\",\"suggestionListNoApartments\":\"AddressForm_suggestionListNoApartments__UWHK4\",\"suggestionsListCloseCopy\":\"AddressForm_suggestionsListCloseCopy__uwsYi\",\"isNavContainer\":\"AddressForm_isNavContainer__OUTWe\",\"nonHeroContainer\":\"AddressForm_nonHeroContainer__NBYfL\",\"isModalContainer\":\"AddressForm_isModalContainer__FRrpg\",\"ring\":\"AddressForm_ring__b8DAY\"};"],"names":["BASE_DATA","addressCTACopy","addressLabelCopy","addressPlaceHolderCopy","backgroundImage","headline","headlineTextColor","mapPinIconColor","subhead","subheadTextColor","backgroundColor","isEpq","hasImage","secondaryCTACopy","epqCopy","FinalEpq","data","monarchData","useMonarchSlotContext","hasMobileImage","mobileBackgroundImage","finalEpqSection","useRef","useIntersectionObserver","fireElementViewedEvent","undefined","threshold","finalImage","isMedia","useMedia","mobile","concat","familyFieldImage","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","div","ref","className","styles","style","jsx","img","isPositionRight","src","alt","WhiteHughesnetLogo","Typography","variant","span","dangerouslySetInnerHTML","__html","color","AddressForm","metadata","isFinalEpq","Button","href","tracking","position","location","elementType","text","actionOutcome","fuse","param","componentLocation","isHero","isNav","isModal","isUppercase","addressLabelColor","mobileAddressCTACopy","zipCode","setZipCode","useState","address","setAddress","finalAddress","setFinalAddress","showNoApartmentSuggestions","setShowNoApartmentSuggestions","suggestions","setSuggestions","disableButton","setDisableButton","showSuggestions","setShowSuggestions","activeIdx","setActiveIdx","API_KEY","SMARTY_STREETS","checkFormButton","useCallback","useEffect","onFormSubmit","event","preventDefault","userData","street_line","city","state","zip","zipcode","isUnit","entries","unitValue","secondary","setTimedCookie","JSON","stringify","addPageAction","passedThroughToProductSelection","window","tagular","formContext","formType","formName","formId","linkedToOrderOnline","fetchSuggestions","query","addressSuggestions","fetchAddressSuggestions","onAddressChange","value","searchQuery","uniqueSet","Set","uniqueAddress","map","has","item","add","push","error","noticeError","type","ERRORS","message","onSuggestionClick","handleSuggestionClick","htmlId","handleAddressKeyDown","createKeyboardNavigationHandler","onEscape","onArrowDown","length","onArrowUp","onEnter","afterKeyHandler","onCloseClick","webElement","form","onSubmit","autoComplete","fieldset","MapPin","input","onChange","e","target","name","onKeyDown","onClick","placeholder","data-private","ul","SuggestionItems","items","handleKeyDown","suggestion","keyCode","isDisabled","module","exports"],"sourceRoot":""}