{"version":3,"sources":["../src/index.ts","../src/components/hvs-funnel-overlay/hvs-funnel-overlay.tsx","../src/components/hvs-funnel-overlay-social-login.tsx","../src/lib/constants/constants.ts","../src/lib/icons/icons.tsx","../src/lib/hooks/use-session-storage.ts"],"sourcesContent":["import r2wc from \"@r2wc/react-to-web-component\";\nimport { HvsFunnelOverlay } from \"./components/hvs-funnel-overlay/hvs-funnel-overlay\";\n\nconst HvsFunnelOverlayComponent = r2wc(HvsFunnelOverlay, {\n  props: {\n    randomKey: \"string\",\n    subdomain: \"string\",\n    addressToken: \"string\",\n    callbackUrl: \"string\",\n    type: \"string\",\n    defaultOpen: \"boolean\",\n    toAgentId: \"number\",\n    toTeamId: \"number\",\n    agentBrandedPage: \"boolean\",\n    monthlyValuationAddress: \"string\",\n    monthlyValuationSource: \"string\",\n    percyValuationHigh: \"string\",\n    delay: \"number\",\n  },\n});\n\nif (customElements) {\n  customElements.define(\"hvs-funnel-overlay\", HvsFunnelOverlayComponent);\n}\n","\"use client\";\nimport * as React from \"react\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useForm } from \"react-hook-form\";\nimport * as z from \"zod\";\n\nimport {\n  Alert,\n  AlertTitle,\n  AlertDescription,\n  Button,\n  Checkbox,\n  cn,\n  Dialog,\n  DialogContent,\n  DialogHeader,\n  DialogTitle,\n  Form,\n  FormControl,\n  FormField,\n  FormItem,\n  FormLabel,\n  FormMessage,\n  Input,\n  Spinner,\n} from \"@percy.ai/ui\";\nimport HvsFunnelOverlaySocialLogin from \"../hvs-funnel-overlay-social-login\";\nimport { Constants, getFormStrings } from \"@/lib/constants/constants\";\nimport { Info } from \"@/lib/icons/icons\";\nimport useSessionStorage from \"@/lib/hooks/use-session-storage\";\n\nexport interface HvsFunnelOverlayProps {\n  randomKey: string;\n  callbackUrl: string;\n  subdomain?: string;\n  addressToken: string;\n  monthlyValuationAddress?: string;\n  monthlyValuationSource?: string;\n  percyValuationHigh?: string;\n  type?: \"inquiry\" | \"claim\";\n  defaultOpen?: boolean;\n  toAgentId?: string;\n  toTeamId?: string;\n  agentBrandedPage?: boolean;\n  delay?: number;\n}\n\nexport function getCookie(name: string): string | undefined {\n  const value = `; ${document.cookie}`;\n  const parts = value.split(`; ${name}=`);\n  if (parts.length === 2) return parts.pop()?.split(\";\").shift();\n  return undefined;\n}\n\nexport function getAgentBrandedPage(value: boolean): number {\n  if (value) {\n    return 1;\n  }\n  return 0;\n}\n\nconst FormSchema = z.object({\n  firstName: z.string().min(2, {\n    message: Constants.FIRST_NAME_VALIDATION_MESSAGE,\n  }),\n  lastName: z.string().min(2, {\n    message: Constants.LAST_NAME_VALIDATION_MESSAGE,\n  }),\n  monthly: z.boolean().optional(),\n  phoneNumber: z\n    .string()\n    .regex(\n      /^(?:\\+1\\s?)?(\\(?\\d{3}\\)?[-.\\s]?)?\\d{3}[-.\\s]?\\d{4}$/,\n      Constants.PHONE_NUMBER_VALIDATION_MESSAGE\n    )\n    .optional(),\n  email: z.string().email({\n    message: Constants.EMAIL_VALIDATION_MESSAGE,\n  }),\n});\n\nexport function HvsFunnelOverlay({\n  randomKey,\n  subdomain = \"findbuyers\",\n  addressToken,\n  callbackUrl,\n  defaultOpen = false,\n  agentBrandedPage,\n  toAgentId,\n  toTeamId,\n  monthlyValuationAddress,\n  monthlyValuationSource,\n  percyValuationHigh,\n  type = \"inquiry\",\n  delay = 5000,\n}: HvsFunnelOverlayProps) {\n  const [isOpen, setIsOpen] = React.useState(defaultOpen);\n  const [isLoading, setIsLoading] = React.useState(false);\n  const [addressTokenCookie, setAddressTokenCookie] = React.useState<\n    string | undefined\n  >(undefined);\n\n  const [subscribeMonthlyReport, setSubscribeMonthlyReport] = React.useState<\n    boolean | \"indeterminate\"\n  >(true);\n  const [addressTokenList, addAddressToken] = useSessionStorage(\n    \"addressTokenList\",\n    \"\"\n  );\n\n  React.useEffect(() => {\n    const showModalCookie = getCookie(\"address_token\");\n    setAddressTokenCookie(showModalCookie);\n  }, [isOpen]);\n\n  const addressTokenCookieRef = React.useRef(addressTokenCookie);\n  const addressTokenListRef = React.useRef(addressTokenList);\n  const addAddressTokenRef = React.useRef(addAddressToken);\n\n  React.useEffect(() => { addressTokenCookieRef.current = addressTokenCookie; }, [addressTokenCookie]);\n  React.useEffect(() => { addressTokenListRef.current = addressTokenList; }, [addressTokenList]);\n  React.useEffect(() => { addAddressTokenRef.current = addAddressToken; }, [addAddressToken]);\n\n  React.useEffect(() => {\n    if (type !== \"inquiry\") return;\n\n    const timer = setTimeout(() => {\n      if (addressTokenListRef.current.includes(addressToken)) return;\n\n      const cookie = getCookie(\"address_token\");\n      if (cookie && cookie === addressToken) {\n        addAddressTokenRef.current(addressToken);\n      } else {\n        setIsOpen(true);\n      }\n    }, delay);\n\n    return () => clearTimeout(timer);\n  }, [type, addressToken, delay]);\n\n  React.useEffect(() => {\n    if (isOpen) {\n      document.body.style.overflow = \"hidden\";\n    } else {\n      document.body.style.overflow = \"\";\n    }\n    return () => {\n      document.body.style.overflow = \"\";\n    };\n  }, [isOpen]);\n\n  const form = useForm<z.infer<typeof FormSchema>>({\n    resolver: zodResolver(FormSchema),\n    defaultValues: {\n      firstName: \"\",\n      lastName: \"\",\n      email: \"\",\n      phoneNumber: \"\",\n      monthly: true,\n    },\n  });\n\n  async function claimOwnership(data: z.infer<typeof FormSchema>) {\n    const formData = new FormData();\n    formData.append(\"random_key\", randomKey ?? \"\");\n    formData.append(\"firstname\", data.firstName);\n    formData.append(\"lastname\", data.lastName);\n    formData.append(\"email\", data.email);\n\n    try {\n      setIsLoading(true);\n      const response = await fetch(`/findbuyers/email_login`, {\n        method: \"POST\",\n        body: formData,\n      });\n      if (response.ok) {\n        window.location.href = callbackUrl;\n      }\n    } catch (error) {\n      console.error(error);\n    }\n  }\n\n  async function createInquiry(data: z.infer<typeof FormSchema>) {\n    const formData = new FormData();\n    formData.append(\"random_key\", randomKey ?? \"\");\n    formData.append(\"firstname\", data.firstName);\n    formData.append(\"lastname\", data.lastName);\n    formData.append(\"tel\", data?.phoneNumber || \"\");\n    formData.append(\"email\", data.email);\n    formData.append(\"monthly_valuation_address\", monthlyValuationAddress || \"\");\n    formData.append(\"monthly_valuation_source\", monthlyValuationSource || \"\");\n    formData.append(\"percy_valuation_high\", percyValuationHigh || \"\");\n    formData.append(\n      \"agent_branded_page\",\n      `${getAgentBrandedPage(agentBrandedPage ?? false)}`\n    );\n    formData.append(\"to_agent_id\", toAgentId ?? \"\");\n    formData.append(\"to_team_id\", toTeamId ?? \"\");\n    formData.append(\"subscribe\", subscribeMonthlyReport ? \"1\" : \"0\");\n\n    try {\n      setIsLoading(true);\n      const response = await fetch(\n        `/findbuyers/create_funnel_conversion_form`,\n        {\n          method: \"POST\",\n          body: formData,\n        }\n      );\n      if (true) {\n        setIsOpen(false);\n      }\n    } catch (error) {\n      setIsOpen(true);\n      console.error(error);\n    } finally {\n      setIsLoading(false);\n    }\n  }\n\n  function onSubmit(data: z.infer<typeof FormSchema>) {\n    if (type === \"inquiry\") {\n      createInquiry(data);\n    } else {\n      claimOwnership(data);\n    }\n  }\n\n  function maskPhoneNumber(phoneNumber?: string) {\n    if (!phoneNumber) return \"\";\n    // Remove all non-numeric characters\n    const cleaned = (\"\" + phoneNumber).replace(/\\D/g, \"\");\n\n    // Format the cleaned number using regex\n    const maskedPhoneNumber = cleaned.replace(\n      /(\\d{0,3})(\\d{0,3})(\\d{0,4})/,\n      function (_, p1, p2, p3) {\n        let result = \"\";\n        if (p1) result = `(${p1}`;\n        if (p1.length === 3) result += \") \";\n        if (p2) result += p2;\n        if (p2.length === 3) result += \"-\";\n        if (p3) result += p3;\n        return result;\n      }\n    );\n\n    return maskedPhoneNumber;\n  }\n\n  function renderForm() {\n    return (\n      <Form {...form}>\n        <form\n          onSubmit={form.handleSubmit(onSubmit)}\n          className=\"w-full space-y-6\"\n        >\n          <div className=\"flex flex-col gap-4 lg:flex-row\">\n            <FormField\n              control={form.control}\n              name=\"firstName\"\n              render={({ field }) => (\n                <FormItem className=\"w-full\">\n                  <FormLabel>{Constants.FIRST_NAME_LABEL}</FormLabel>\n                  <FormControl>\n                    <Input {...field} />\n                  </FormControl>\n                  <FormMessage />\n                </FormItem>\n              )}\n            />\n            <FormField\n              control={form.control}\n              name=\"lastName\"\n              render={({ field }) => (\n                <FormItem className=\"w-full\">\n                  <FormLabel>{Constants.LAST_NAME_LABEL}</FormLabel>\n                  <FormControl>\n                    <Input {...field} />\n                  </FormControl>\n                  <FormMessage />\n                </FormItem>\n              )}\n            />\n          </div>\n          <FormField\n            control={form.control}\n            name=\"phoneNumber\"\n            render={({ field: { value, ...field } }) => (\n              <FormItem>\n                <FormLabel>{Constants.PHONE_NUMBER_LABEL}</FormLabel>\n                <FormControl>\n                  <Input\n                    {...field}\n                    value={value ? maskPhoneNumber(value) : \"\"}\n                  />\n                </FormControl>\n                <FormMessage />\n              </FormItem>\n            )}\n          />\n\n          <FormField\n            control={form.control}\n            name=\"email\"\n            render={({ field }) => (\n              <FormItem>\n                <FormLabel>{getFormStrings(type).emailLabel}</FormLabel>\n                <FormControl>\n                  <Input {...field} />\n                </FormControl>\n                <FormMessage />\n              </FormItem>\n            )}\n          />\n\n          <Button type=\"submit\">\n            {isLoading && <Spinner className=\"mr-2 h-4 w-4\" />}\n            {Constants.BUTTON_LABEL}\n          </Button>\n\n          <div className=\"relative\">\n            <div className=\"absolute inset-0 flex items-center\">\n              <span className=\"w-full border-t\" />\n            </div>\n            <div className=\"relative flex justify-center text-xs uppercase\">\n              <span className=\"bg-background text-muted-foreground px-2\">\n                {Constants.SOCIAL_SECTION_TITLE}\n              </span>\n            </div>\n          </div>\n\n          <HvsFunnelOverlaySocialLogin\n            randomKey={randomKey}\n            subdomain={subdomain}\n            callbackUrl={callbackUrl}\n            subscribe={subscribeMonthlyReport}\n            type={type}\n          />\n\n          {type === \"inquiry\" && (\n            <>\n              <FormField\n                control={form.control}\n                name=\"monthly\"\n                render={({ field }) => (\n                  <FormItem>\n                    <FormControl>\n                      <div className=\"flex flex-row  items-center space-x-2 \">\n                        <Checkbox\n                          checked={field.value}\n                          onCheckedChange={(value) => {\n                            field.onChange(value);\n                            setSubscribeMonthlyReport(value);\n                          }}\n                        />\n                        <FormLabel\n                          className={cn(\"text-sm font-normal leading-5\")}\n                        >\n                          {Constants.SUBSCRIBE_MONTHLY_REPORT}\n                        </FormLabel>\n                      </div>\n                    </FormControl>\n                  </FormItem>\n                )}\n              />\n\n              <Alert variant=\"default\">\n                <Info className=\"h-4 w-4\" />\n                <AlertTitle className=\"mb-3\">\n                  {Constants.BANNER_TITLE}\n                </AlertTitle>\n                <AlertDescription className=\"text-sm text-gray-700 \">\n                  {Constants.BANNER_DESCRIPTION}\n                </AlertDescription>\n              </Alert>\n            </>\n          )}\n        </form>\n      </Form>\n    );\n  }\n\n  return type === \"inquiry\" ? (\n    <Dialog open={isOpen}>\n      <DialogContent hideClose>\n        <DialogHeader>\n          <DialogTitle>{getFormStrings(type).dialogTitle}</DialogTitle>\n        </DialogHeader>\n        {renderForm()}\n      </DialogContent>\n    </Dialog>\n  ) : (\n    <div className={cn(\"flex flex-col gap-2\")}>\n      <header>\n        <h2 className={cn(\"text-lg font-semibold leading-none tracking-tight\")}>\n          {getFormStrings(type).dialogTitle}\n        </h2>\n      </header>\n      {renderForm()}\n    </div>\n  );\n}\n","\"use client\";\nimport * as React from \"react\";\n\ndeclare global {\n  interface Window {\n    _oneall: any[];\n  }\n}\n\ninterface HvsFunnelOverlaySocialLoginProps {\n  subdomain: string;\n  callbackUrl: string;\n  randomKey: string;\n  type: \"inquiry\" | \"claim\";\n  subscribe?: boolean | \"indeterminate\";\n}\n\nfunction loadScript(oneAllScript: string): HTMLScriptElement {\n  const script = document.createElement(\"script\");\n  script.id = \"oneall-script\";\n  script.type = \"text/javascript\";\n  script.async = true;\n  script.src = oneAllScript;\n  const s = document.getElementsByTagName(\"script\")[0];\n  s.parentNode?.insertBefore(script, s);\n\n  return script;\n}\n\nconst HvsFunnelOverlaySocialLogin: React.FC<\n  HvsFunnelOverlaySocialLoginProps\n> = ({ subdomain, callbackUrl, type, subscribe, randomKey }) => {\n  //TODO: Improve this logic, the script should be loaded only once\n  const oneAllScript = `https://${subdomain}.api.oneall.com/socialize/library.js`;\n  const formatedCallback = `${callbackUrl}&subscribe=${\n    type === \"inquiry\" ? (subscribe ? \"1\" : \"0\") : \"1\"\n  }&type=${type}&random_key=${randomKey}`;\n\n  React.useEffect(() => {\n    const script = loadScript(oneAllScript);\n    script.onload = () => {\n      if (!window._oneall) {\n        window._oneall = [];\n      }\n\n      const _oneall = window._oneall;\n\n      _oneall.push([\n        \"social_login\",\n        \"set_providers\",\n        [\"google\", \"linkedin\", \"facebook\"],\n      ]);\n      _oneall.push([\"social_login\", \"set_popup_usage\", \"never\"]);\n      _oneall.push([\n        \"social_login\",\n        \"set_callback_uri\",\n        type === \"inquiry\" ? formatedCallback : callbackUrl,\n      ]);\n\n      _oneall.push([\"social_login\", \"do_render_ui\", \"social_login_container\"]);\n      _oneall.push([\n        \"social_login\",\n        \"do_render_ui\",\n        \"social_login_container_claim\",\n      ]);\n    };\n\n    return () => {\n      if (script && script.parentNode) {\n        script.parentNode.removeChild(script);\n      }\n    };\n  }, [formatedCallback, callbackUrl, type, subscribe, oneAllScript]);\n\n  return type === \"inquiry\" ? (\n    <div id=\"social_login_container\"></div>\n  ) : (\n    <div id=\"social_login_container_claim\"></div>\n  );\n};\n\nexport default HvsFunnelOverlaySocialLogin;\n","export interface FormStrings {\n  dialogTitle: string;\n  emailLabel: string;\n  googleLabel: string;\n  appleLabel: string;\n  linkedInLabel: string;\n}\n\nexport class Constants {\n  //Validation Messages\n  static FIRST_NAME_VALIDATION_MESSAGE =\n    \"First name must be at least 2 characters.\";\n  static LAST_NAME_VALIDATION_MESSAGE =\n    \"Last name must be at least 2 characters.\";\n  static PHONE_NUMBER_VALIDATION_MESSAGE = \"Invalid phone number.\";\n  static EMAIL_VALIDATION_MESSAGE = \"Invalid email address.\";\n\n  //Titles\n  static DIALOG_INQUIRY_TITLE = \"Once more step to view your full report\";\n  static DIALOG_CLAIM_TITLE = \"Claim Ownership\";\n  static SOCIAL_SECTION_TITLE = \"Or Continue with\";\n\n  //Form Labels\n  static FIRST_NAME_LABEL = \"First Name *\";\n  static LAST_NAME_LABEL = \"Last Name *\";\n  static PHONE_NUMBER_LABEL = \"Phone Number *\";\n  static CLAIM_EMAIL_LABEL = \"Claim ownership with your email *\";\n  static EMAIL_LABEL = \"Claim report with your email *\";\n\n  //Other Labels\n  static BUTTON_LABEL = \"Claim with email\";\n  static SUBSCRIBE_MONTHLY_REPORT = \"Receive monthly property updates\";\n\n  //Social Buttons\n  static APPLE_CLAIM = \"Claim with Apple\";\n  static GOOGLE_CLAIM = \"Claim with Google\";\n  static LINKEDIN_CLAIM = \"Claim with LinkedIn\";\n\n  static APPLE_LOGIN = \"Login with Apple\";\n  static GOOGLE_LOGIN = \"Login with Google\";\n  static LINKEDIN_LOGIN = \"Login with LinkedIn\";\n\n  //Banner Labels\n  static BANNER_TITLE = \"Why are we asking for this?\";\n  static BANNER_DESCRIPTION =\n    \"To ensure the security of your information, we use this data to confirm that you are a human user.\";\n}\n\nexport function getFormStrings(type: \"inquiry\" | \"claim\"): FormStrings {\n  return {\n    dialogTitle:\n      type === \"inquiry\"\n        ? Constants.DIALOG_INQUIRY_TITLE\n        : Constants.DIALOG_CLAIM_TITLE,\n    emailLabel:\n      type === \"inquiry\" ? Constants.EMAIL_LABEL : Constants.CLAIM_EMAIL_LABEL,\n    googleLabel:\n      type === \"inquiry\" ? Constants.GOOGLE_LOGIN : Constants.GOOGLE_CLAIM,\n    appleLabel:\n      type === \"inquiry\" ? Constants.APPLE_LOGIN : Constants.APPLE_CLAIM,\n    linkedInLabel:\n      type === \"inquiry\" ? Constants.LINKEDIN_LOGIN : Constants.LINKEDIN_CLAIM,\n  };\n}\n","import React from \"react\";\n\nexport const GoogleIcon = (props: React.SVGProps<SVGSVGElement>) => (\n  <svg width=\"24\" height=\"24\" viewBox=\"0 0 512 512\" {...props}>\n    <path\n      fill=\"#fbbb00\"\n      d=\"M113.47 309.408 95.648 375.94l-65.139 1.378C11.042 341.211 0 299.9 0 256c0-42.451 10.324-82.483 28.624-117.732h.014L86.63 148.9l25.404 57.644c-5.317 15.501-8.215 32.141-8.215 49.456.002 18.792 3.406 36.797 9.651 53.408z\"\n    />\n    <path\n      fill=\"#518ef8\"\n      d=\"M507.527 208.176C510.467 223.662 512 239.655 512 256c0 18.328-1.927 36.206-5.598 53.451-12.462 58.683-45.025 109.925-90.134 146.187l-.014-.014-73.044-3.727-10.338-64.535c29.932-17.554 53.324-45.025 65.646-77.911h-136.89V208.176h245.899z\"\n    />\n    <path\n      fill=\"#28b446\"\n      d=\"m416.253 455.624.014.014C372.396 490.901 316.666 512 256 512c-97.491 0-182.252-54.491-225.491-134.681l82.961-67.91c21.619 57.698 77.278 98.771 142.53 98.771 28.047 0 54.323-7.582 76.87-20.818l83.383 68.262z\"\n    />\n    <path\n      fill=\"#f14336\"\n      d=\"m419.404 58.936-82.933 67.896C313.136 112.246 285.552 103.82 256 103.82c-66.729 0-123.429 42.957-143.965 102.724l-83.397-68.276h-.014C71.23 56.123 157.06 0 256 0c62.115 0 119.068 22.126 163.404 58.936z\"\n    />\n  </svg>\n);\n\nexport const LinkedinIcon = (props: React.SVGProps<SVGSVGElement>) => (\n  <svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width={72}\n    height={72}\n    viewBox=\"0 0 72 72\"\n    {...props}\n  >\n    <g fill=\"none\" fillRule=\"evenodd\">\n      <path\n        fill=\"#007EBB\"\n        d=\"M8 72h56a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v56a8 8 0 0 0 8 8Z\"\n      />\n      <path\n        fill=\"#FFF\"\n        d=\"M62 62H51.316V43.802c0-4.99-1.896-7.777-5.845-7.777-4.296 0-6.54 2.901-6.54 7.777V62H28.632V27.333H38.93v4.67s3.096-5.729 10.453-5.729c7.353 0 12.617 4.49 12.617 13.777V62ZM16.35 22.794c-3.508 0-6.35-2.864-6.35-6.397C10 12.864 12.842 10 16.35 10c3.507 0 6.347 2.864 6.347 6.397 0 3.533-2.84 6.397-6.348 6.397ZM11.032 62h10.736V27.333H11.033V62Z\"\n      />\n    </g>\n  </svg>\n);\n\nexport const AppleIcon = (props: React.SVGProps<SVGSVGElement>) => (\n  <svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"512\"\n    height=\"630\"\n    viewBox=\"0 0 256 315\"\n    {...props}\n  >\n    <path d=\"M213.803 167.03c.442 47.58 41.74 63.413 42.197 63.615c-.35 1.116-6.599 22.563-21.757 44.716c-13.104 19.153-26.705 38.235-48.13 38.63c-21.05.388-27.82-12.483-51.888-12.483c-24.061 0-31.582 12.088-51.51 12.871c-20.68.783-36.428-20.71-49.64-39.793c-27-39.033-47.633-110.3-19.928-158.406c13.763-23.89 38.36-39.017 65.056-39.405c20.307-.387 39.475 13.662 51.889 13.662c12.406 0 35.699-16.895 60.186-14.414c10.25.427 39.026 4.14 57.503 31.186c-1.49.923-34.335 20.044-33.978 59.822M174.24 50.199c10.98-13.29 18.369-31.79 16.353-50.199c-15.826.636-34.962 10.546-46.314 23.828c-10.173 11.763-19.082 30.589-16.678 48.633c17.64 1.365 35.66-8.964 46.64-22.262\" />\n  </svg>\n);\n\nexport const Info = (props: React.SVGProps<SVGSVGElement>) => (\n  <svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    width=\"24\"\n    height=\"24\"\n    viewBox=\"0 0 24 24\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    strokeWidth=\"2\"\n    strokeLinecap=\"round\"\n    strokeLinejoin=\"round\"\n    {...props}\n  >\n    <circle cx=\"12\" cy=\"12\" r=\"10\" />\n    <path d=\"M12 16v-4\" />\n    <path d=\"M12 8h.01\" />\n  </svg>\n);\n","import * as React from \"react\";\n\nfunction useSessionStorage(key: string, initialValue: string) {\n  const [storedValue, setStoredValue] = React.useState<string>(() => {\n    try {\n      const item = sessionStorage.getItem(key);\n      return item ? item : initialValue;\n    } catch (error) {\n      console.error(error);\n      return initialValue;\n    }\n  });\n\n  const setValue = (value: string) => {\n    try {\n      const updatedValue = storedValue ? `${storedValue},${value}` : value;\n      setStoredValue(updatedValue);\n      sessionStorage.setItem(key, updatedValue);\n    } catch (error) {\n      console.error(error);\n    }\n  };\n\n  return [storedValue, setValue] as const;\n}\n\nexport default useSessionStorage;\n"],"mappings":"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","names":["import_react_to_web_component","React","import_zod","import_react_hook_form","z","import_ui","React","loadScript","oneAllScript","script","s","HvsFunnelOverlaySocialLogin","subdomain","callbackUrl","type","subscribe","randomKey","formatedCallback","_oneall","hvs_funnel_overlay_social_login_default","Constants","getFormStrings","type","import_react","Info","props","React","React","useSessionStorage","key","initialValue","storedValue","setStoredValue","item","error","value","updatedValue","use_session_storage_default","getCookie","name","parts","getAgentBrandedPage","value","FormSchema","Constants","HvsFunnelOverlay","randomKey","subdomain","addressToken","callbackUrl","defaultOpen","agentBrandedPage","toAgentId","toTeamId","monthlyValuationAddress","monthlyValuationSource","percyValuationHigh","type","delay","isOpen","setIsOpen","isLoading","setIsLoading","addressTokenCookie","setAddressTokenCookie","subscribeMonthlyReport","setSubscribeMonthlyReport","addressTokenList","addAddressToken","use_session_storage_default","showModalCookie","addressTokenCookieRef","addressTokenListRef","addAddressTokenRef","timer","cookie","form","claimOwnership","data","formData","error","createInquiry","response","onSubmit","maskPhoneNumber","phoneNumber","_","p1","p2","p3","result","renderForm","field","getFormStrings","hvs_funnel_overlay_social_login_default","Info","HvsFunnelOverlayComponent","r2wc","HvsFunnelOverlay"]}