{"version":3,"file":"static/js/5210.33e5006d.chunk.js","mappings":"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","sources":["components/AriaLetter.tsx","components/BadgeWithIcon.tsx","components/SvgIcons/ContinueWithoutLoggingInIcon.tsx","components/CoverageSelector/CoverageSelectorAlert.tsx","components/CoverageSelector/components/PlanTypeDescription.tsx","components/CoverageSelector/components/PlanTypeStep.tsx","components/CoverageSelector/components/PlanTypeStepActions.tsx","components/CoverageSelector/components/ZipcodeAndCoverageYearStep.tsx","components/CoverageSelector/components/ZipcodeAndCoverageYearStepActions.tsx","components/CoverageSelector/CoverageSelectorV2.tsx","components/CoverageSelector/components/MedigapHelpDrawerContents.tsx","components/CoverageSelector/components/PlanTypeSubHeader.tsx","components/CoverageSelector/constants.ts","components/HelpDrawers/PlanTypeHelpDrawer.tsx","components/MedicareGovAnchor.tsx","components/TooltipWithClose.tsx","helpers/coverageSelectorHelpers.ts","helpers/query-hooks/useCounties.ts"],"sourcesContent":["import type { FC } from \"react\";\n\nconst ariaLetterMap: Record<string, string | undefined> = {\n  c: \"Cee\",\n  d: \"Dee\",\n};\n\ninterface AriaLetterProps {\n  children: string;\n  className?: string;\n}\n\n/** C and D have an unfortunate tendency to be mispronounced by aria.\n * This is a quick wrapper which allows screen readers to correctly read those letters.\n * @warning this may not be needed. Confirm with accessibility if this is still required.\n * If not, please deprecate this component. */\nexport const AriaLetter: FC<AriaLetterProps> = ({ children, className }) => {\n  const ariaLabel = ariaLetterMap[children.toLowerCase()];\n  return ariaLabel ? (\n    <span aria-label={ariaLabel} className={className}>\n      {children}\n    </span>\n  ) : (\n    <>{children}</>\n  );\n};\n","import { Badge as OriginalBadge } from \"@cmsgov/ds-medicare-gov\";\nimport classNames from \"classnames\";\nimport uniqueId from \"lodash.uniqueid\";\nimport {\n  cloneElement,\n  type FC,\n  type ComponentPropsWithoutRef,\n  type ReactElement,\n} from \"react\";\n\nexport const baseBadgeClassName = \"mct-c-badge\";\nenum IconPlacements {\n  left = \"left\",\n  right = \"right\",\n}\n\ninterface ExtendedBadgeProps {\n  iconPlacement?: keyof typeof IconPlacements;\n  /**\n   * `theme` prop overrides `variation`, similar to `weight` prop for an `Alert`\n   * @see https://design.cms.gov/components/alert/\n   */\n  theme?: \"white\" | \"primary-alt-lightest\";\n  /**\n   * BadgeWithIcon will create a unique `id` for the `svgIcon`, or the `SvgIcon`\n   * component from the DS will assign one.\n   * If you intend to have more than one badge on a page, ensure that `id`s on\n   * any of the generated SVG's children elements will also be unique for each instance.\n   * Recommend, e.g., using `lodash.uniqueId`\n   */\n  svgIcon: ReactElement;\n}\n\ninterface BadgeProps\n  extends ComponentPropsWithoutRef<typeof OriginalBadge>,\n    ExtendedBadgeProps {}\n\nconst ChildrenWithIcon = ({\n  svgIcon,\n  children,\n  iconPlacement,\n  idSuffix,\n}: ExtendedBadgeProps &\n  Pick<BadgeProps, \"children\"> & { idSuffix?: string }) => {\n  const iconClassName = `${baseBadgeClassName}__icon`;\n  const className = classNames(\n    `${iconClassName} ${iconClassName}--${iconPlacement}`\n  );\n  const iconRight = iconPlacement === IconPlacements.right;\n  const newId = svgIcon.props.id\n    ? `${svgIcon.props.id}-${idSuffix}`\n    : undefined;\n  const icon = cloneElement(svgIcon, {\n    className,\n    \"aria-hidden\": true, // Badge provides content, icon is decoration\n    width: \"18px\",\n    height: \"18px\",\n    id: newId,\n  });\n  return (\n    <>\n      {!iconRight && icon}\n      <span className=\"mct-c-badge__content\">{children}</span>\n      {iconRight && icon}\n    </>\n  );\n};\n\n/**\n * `BadeWithIcon` extends the CMSDS / MGov DS `Badge` Component\n * - Takes an optional `SvgIcon` Component as a prop\n *     - `SvgIcon` wraps any valid SVG inner content to ensure an accessible SVG is output\n * - Can position the icon on either side of `Badge` content\n * - Adds an optional `theme` prop, modeled on that available on the `Alert` component,\n *   to render a badge with custom background and content color (relies on CSS)\n * - Badge `id` will also get a unique suffix and pass to the `svgIcon`\n * @see https://github.cms.gov/pages/MedicareGov/mgov-design-system/components/badge\n * @see https://design.cms.gov/components/icon\n */\nexport const BadgeWithIcon: FC<BadgeProps> = ({\n  svgIcon,\n  iconPlacement = IconPlacements.left,\n  children,\n  className,\n  variation,\n  theme,\n  id,\n  ...props\n}: BadgeProps) => {\n  const combinedClassNames = classNames(className, \"mct-c-badge\", {\n    [`ds-c-badge--${variation} mct-c-badge--${variation}`]: !!variation,\n    [`mct-c-badge--${theme}`]: !!theme,\n  });\n  const idSuffix = uniqueId();\n  const newId = id ? `${id}-${idSuffix}` : undefined;\n  return (\n    <OriginalBadge\n      className={combinedClassNames}\n      data-testid={baseBadgeClassName}\n      id={newId}\n      {...props}\n    >\n      <ChildrenWithIcon {...{ svgIcon, iconPlacement, idSuffix }}>\n        {children}\n      </ChildrenWithIcon>\n    </OriginalBadge>\n  );\n};\n","import { SvgIcon } from \"@cmsgov/ds-medicare-gov\";\n\nexport const ContinueWithoutLoggingInIcon = (\n  <SvgIcon title=\"Icons/Find plans\" viewBox=\"0 0 16 18\" id=\"Icons/Find-plans\">\n    <path d=\"M12.1785714,5.625 L12.1785714,4.5 C12.1785714,2.01867187 10.1919074,0 7.75,0 C5.30805804,0 3.32142857,2.01867187 3.32142857,4.5 L3.32142857,5.625 L0,5.625 L0,15.1875 C0,16.7408086 1.23920424,18 2.76785714,18 L12.7321429,18 C14.2607958,18 15.5,16.7408086 15.5,15.1875 L15.5,5.625 L12.1785714,5.625 Z M5.53571429,4.5 C5.53571429,3.25933594 6.52902902,2.25 7.75,2.25 C8.97097098,2.25 9.96428571,3.25933594 9.96428571,4.5 L9.96428571,5.625 L5.53571429,5.625 L5.53571429,4.5 Z M11.0714286,8.71875 C10.6128292,8.71875 10.2410714,8.34099609 10.2410714,7.875 C10.2410714,7.40900391 10.6128292,7.03125 11.0714286,7.03125 C11.5300279,7.03125 11.9017857,7.40900391 11.9017857,7.875 C11.9017857,8.34099609 11.5300279,8.71875 11.0714286,8.71875 Z M4.42857143,8.71875 C3.9699721,8.71875 3.59821429,8.34099609 3.59821429,7.875 C3.59821429,7.40900391 3.9699721,7.03125 4.42857143,7.03125 C4.88717076,7.03125 5.25892857,7.40900391 5.25892857,7.875 C5.25892857,8.34099609 4.88717076,8.71875 4.42857143,8.71875 Z\"></path>\n  </SvgIcon>\n);\n","import { Alert } from \"@cmsgov/ds-medicare-gov\";\nimport { useTranslate } from \"../../helpers/intlHooks\";\nimport type { CoverageSelectorErrorState } from \"../../@types\";\nimport type { FC } from \"react\";\n\nexport const CoverageSelectorAlert: FC<{\n  errorState: {\n    zipcode?: CoverageSelectorErrorState;\n    planType?: CoverageSelectorErrorState;\n    counties?: CoverageSelectorErrorState;\n  };\n}> = ({ errorState }) => {\n  const t = useTranslate();\n  return (\n    <>\n      {(errorState.planType || errorState.zipcode || errorState.counties) && (\n        <div data-testid=\"alert\" className=\"ds-u-margin-bottom--2\">\n          <Alert\n            heading={t(\"coverage_selector.alert.heading\")}\n            variation=\"error\"\n            className=\"mct-c-coverage-selector-v2__alert\"\n          >\n            <span>{t(\"coverage_selector.alert.message\")}</span>\n          </Alert>\n        </div>\n      )}\n    </>\n  );\n};\n","import type { FC, PropsWithChildren } from \"react\";\nimport { planTypePhraseMap } from \"../constants\";\nimport { FormattedMessage } from \"react-intl\";\nimport { sendTooltipEvent } from \"../../../helpers/analyticsHelpers\";\nimport { TooltipWithClose } from \"../../TooltipWithClose\";\nimport {\n  HelpDrawerToggle,\n  InfoCircleOutlineIcon,\n} from \"@cmsgov/ds-medicare-gov\";\nimport type { CoverageSelectorCoverageType } from \"../../../@types\";\nimport { sendHelpDrawerOpenAnalyticsEvent } from \"../../../app/contexts/Analytics/events\";\nimport {\n  type TranslationKey,\n  useTypedTranslate,\n} from \"../../../helpers/intlHooks\";\n\ntype PlanTypeDescriptionProps = PropsWithChildren<{\n  coverageType: CoverageSelectorCoverageType;\n  newToMedicare?: boolean;\n  showDrawer?: () => void;\n  helpDrawerOpen?: boolean;\n  setActiveTooltip: (coverageType: CoverageSelectorCoverageType) => void;\n}>;\n\n/** These phrase keys are in use here. Logged here for easy searching:\n * coverage_selector.help_drawer.medigap.body\n * coverage_selector.help_drawer.part_c.body\n * coverage_selector.help_drawer.part_d.body\n * coverage_selector.new_to_medicare.medigap.body\n * coverage_selector.new_to_medicare.medigap.warning\n * coverage_selector.new_to_medicare.part_c.body\n * coverage_selector.new_to_medicare.part_c.warning\n * coverage_selector.new_to_medicare.part_d.body\n * coverage_selector.new_to_medicare.part_d.warning\n */\n\n/** description of plans to use with PlanTypeStep */\nexport const PlanTypeDescription: FC<PlanTypeDescriptionProps> = ({\n  coverageType,\n  newToMedicare,\n  showDrawer,\n  helpDrawerOpen,\n  setActiveTooltip,\n}) => {\n  const t = useTypedTranslate();\n  const phraseSelector2 = newToMedicare ? \"new_to_medicare\" : \"help_drawer\";\n  const phraseSelector3: \"part_c\" | \"part_d\" | \"medigap\" =\n    planTypePhraseMap[coverageType as keyof typeof planTypePhraseMap];\n  const initialPhraseDescriptionKey =\n    `coverage_selector.${phraseSelector2}.${phraseSelector3}.body` as TranslationKey;\n  const phraseWarningKey = `coverage_selector.new_to_medicare.${phraseSelector3}.warning`;\n\n  const phraseDescriptionKey = (() => {\n    switch (initialPhraseDescriptionKey) {\n      // These strings have been updated for 2024\n      case \"coverage_selector.help_drawer.medigap.body\":\n      case \"coverage_selector.help_drawer.part_c.body\":\n      case \"coverage_selector.new_to_medicare.part_c.body\":\n      case \"coverage_selector.new_to_medicare.part_d.body\":\n      case \"coverage_selector.new_to_medicare.medigap.body\":\n        return `${initialPhraseDescriptionKey}.2024` as TranslationKey;\n      default:\n        return initialPhraseDescriptionKey;\n    }\n  })();\n\n  const toggleTextKey = \"coverage_selector.new_to_medicare.medigap.when\";\n\n  function showHelpDrawer() {\n    sendHelpDrawerOpenAnalyticsEvent({\n      text: t(toggleTextKey),\n      heading: t(toggleTextKey),\n    });\n    if (showDrawer) showDrawer();\n  }\n\n  /** sets parent z-index to 1 so as to have proper tooltips, without overlap. */\n  function activateTooltip() {\n    setActiveTooltip(coverageType);\n    sendTooltipEvent({\n      text: t(\"cw.info.om\"),\n    });\n  }\n\n  return (\n    <>\n      <div className=\"ds-u-margin-top--0 mct-c-coverage-selector-v2__plantype_description\">\n        <FormattedMessage\n          id={phraseDescriptionKey}\n          values={{\n            originalMedicare: (\n              <TooltipWithClose\n                title={t(\"ntm.original_medicare.tooltip\")}\n                onOpen={activateTooltip}\n                className=\"ds-c-tooltip__trigger-link\"\n                component=\"a\"\n              >\n                {t(\"cw.info.om\")}\n              </TooltipWithClose>\n            ),\n            when: (\n              <HelpDrawerToggle\n                showDrawer={showHelpDrawer}\n                helpDrawerOpen={!!helpDrawerOpen}\n              >\n                <span className=\"ds-u-margin-right--1\">{t(toggleTextKey)}</span>\n                <InfoCircleOutlineIcon />\n              </HelpDrawerToggle>\n            ),\n          }}\n        />\n      </div>\n\n      {newToMedicare && (\n        <div className=\"ds-u-font-weight--bold ds-u-margin-top--1 ds-u-margin-bottom--2\">\n          <FormattedMessage\n            id={phraseWarningKey}\n            values={{\n              and: (\n                // This is <strong> because we have a stray CSS rule that takes away font-weight for spans.\n                // The --bold class will keep the font-weight consistent.\n                <strong className=\"ds-u-text-decoration--underline ds-u-font-weight--bold\">\n                  {t(\"and\")}\n                </strong>\n              ),\n              or: (\n                <strong className=\"ds-u-text-decoration--underline ds-u-font-weight--bold\">\n                  {t(\"or\")}\n                </strong>\n              ),\n            }}\n          />\n        </div>\n      )}\n    </>\n  );\n};\n","import { ChoiceList } from \"@cmsgov/ds-medicare-gov\";\nimport { type FC, type SyntheticEvent, useState } from \"react\";\nimport { FormattedMessage } from \"react-intl\";\nimport { Link } from \"react-router-dom\";\nimport { AnalyticsActionType } from \"../../../app/contexts/Analytics/types\";\nimport { routes } from \"../../../app/routes\";\nimport { useTranslate } from \"../../../helpers/intlHooks\";\nimport { MctHelpDrawer } from \"../../HelpDrawerWrapper\";\nimport { choiceIdMap } from \"../constants\";\nimport { PlanTypeSubHeader } from \"./PlanTypeSubHeader\";\nimport { AriaLetter } from \"../../AriaLetter\";\nimport { PlanTypeDescription } from \"./PlanTypeDescription\";\nimport { MedigapHelpDrawerContents } from \"./MedigapHelpDrawerContents\";\nimport {\n  CoverageSelectorCoverageType,\n  type CoverageSelectorErrorState,\n  type SharedCoverageSelectorProps,\n} from \"../../../@types\";\nimport { PlanTypeHelpDrawer } from \"../../HelpDrawers/PlanTypeHelpDrawer\";\nimport { useAppContext } from \"../../../helpers/context-hooks/useAppContext\";\n\ninterface PlanTypeStepProps extends SharedCoverageSelectorProps {\n  planTypeErrorState?: CoverageSelectorErrorState;\n  onPlanTypeChange: (value: CoverageSelectorCoverageType) => void;\n  /** if `true`, will provide more prominent headers. */\n  isSinglePage?: boolean;\n  selectedPlanType?: CoverageSelectorCoverageType;\n}\n\nexport const PlanTypeStep: FC<PlanTypeStepProps> = ({\n  showDescription,\n  planTypeErrorState,\n  onPlanTypeChange,\n  newToMedicare,\n  isSinglePage,\n  selectedPlanType,\n}) => {\n  const t = useTranslate();\n  const { dispatch } = useAppContext();\n\n  const needHelpText = newToMedicare\n    ? t(\"coverage_selector.ntm.help_link_text\")\n    : t(\"coverage_selector.help_drawer.help_link_text\");\n  const needHelpLinkUrl = routes.coverageWizard.options;\n  const [showFindPlansNowHelpDrawer, setShowFindPlansNowHelpDrawer] =\n    useState(false);\n\n  const [activeTooltip, setActiveTooltip] =\n    useState<CoverageSelectorCoverageType>();\n\n  // * Constants\n\n  /**\n   * on single page, we will scroll up to the top, so we don't need to show the error on bottom.\n   * when there is no description, we also do not need to show the error on bottom, because there is less screen real estate used.\n   */\n  const showErrorOnTop = isSinglePage || !showDescription;\n\n  // * Functions\n\n  function toggleFindPlansNowHelpDrawer() {\n    setShowFindPlansNowHelpDrawer(x => !x);\n  }\n\n  /** adds an 'active' class that is triggered by the tooltip opening.\n   * This prevents weird overlapping issues by adding in a z-index where we need it.\n   */\n  function getChoiceContainerClassName(\n    coverageType: CoverageSelectorCoverageType\n  ) {\n    if (coverageType === activeTooltip) {\n      return \"mct-c-coverage-selector-v2__plan-type-choice-container mct-c-coverage-selector-v2__plan-type-choice-container--active\";\n    }\n    return \"mct-c-coverage-selector-v2__plan-type-choice-container\";\n  }\n\n  return (\n    <div\n      className=\"mct-c-coverage-selector-v2__plantype\"\n      data-testid=\"plan-type-section\"\n    >\n      <ChoiceList\n        className=\"ds-u-margin-top--0\"\n        choices={[\n          // * Medicare Advantage Plan (Part C)\n          {\n            className: getChoiceContainerClassName(\n              CoverageSelectorCoverageType.MAPD\n            ),\n            label: (\n              <span\n                data-testid={choiceIdMap[CoverageSelectorCoverageType.MAPD]}\n              >\n                <PlanTypeSubHeader\n                  showDescription={showDescription}\n                  isSinglePage={isSinglePage}\n                >\n                  <FormattedMessage\n                    id=\"coverage_selector.plan_types.part_c.heading\"\n                    values={{\n                      message: (\n                        <AriaLetter className=\"mct-c-coverage-selector-v2__plan-type-sub-heading-aria\">\n                          C\n                        </AriaLetter>\n                      ),\n                    }}\n                  />\n                </PlanTypeSubHeader>\n                {showDescription && (\n                  <PlanTypeDescription\n                    coverageType={CoverageSelectorCoverageType.MAPD}\n                    newToMedicare={newToMedicare}\n                    setActiveTooltip={setActiveTooltip}\n                  />\n                )}\n              </span>\n            ),\n            value: CoverageSelectorCoverageType.MAPD,\n            id: choiceIdMap[CoverageSelectorCoverageType.MAPD],\n            checked: selectedPlanType === CoverageSelectorCoverageType.MAPD,\n          },\n          // * Medicare drug plan (Part D)\n          {\n            className: getChoiceContainerClassName(\n              CoverageSelectorCoverageType.PDP\n            ),\n            label: (\n              <span data-testid={choiceIdMap[CoverageSelectorCoverageType.PDP]}>\n                <PlanTypeSubHeader\n                  showDescription={showDescription}\n                  isSinglePage={isSinglePage}\n                >\n                  <FormattedMessage\n                    id=\"coverage_selector.plan_types.part_d.heading\"\n                    values={{\n                      message: (\n                        <AriaLetter className=\"mct-c-coverage-selector-v2__plan-type-sub-heading-aria\">\n                          D\n                        </AriaLetter>\n                      ),\n                    }}\n                  />\n                </PlanTypeSubHeader>\n                {showDescription && (\n                  <PlanTypeDescription\n                    coverageType={CoverageSelectorCoverageType.PDP}\n                    newToMedicare={newToMedicare}\n                    setActiveTooltip={setActiveTooltip}\n                  />\n                )}\n              </span>\n            ),\n            value: CoverageSelectorCoverageType.PDP,\n            id: choiceIdMap[CoverageSelectorCoverageType.PDP],\n            checked: selectedPlanType === CoverageSelectorCoverageType.PDP,\n          },\n          // * Medigap policy\n          {\n            className: getChoiceContainerClassName(\n              CoverageSelectorCoverageType.MedigapPolicy\n            ),\n            label: (\n              <span\n                data-testid={\n                  choiceIdMap[CoverageSelectorCoverageType.MedigapPolicy]\n                }\n              >\n                <PlanTypeSubHeader\n                  showDescription={showDescription}\n                  isSinglePage={isSinglePage}\n                >\n                  {t(\"coverage_selector.plan_types.medigap.heading\")}\n                </PlanTypeSubHeader>\n                {showDescription && (\n                  <PlanTypeDescription\n                    coverageType={CoverageSelectorCoverageType.MedigapPolicy}\n                    newToMedicare={newToMedicare}\n                    helpDrawerOpen={showFindPlansNowHelpDrawer}\n                    showDrawer={toggleFindPlansNowHelpDrawer}\n                    setActiveTooltip={setActiveTooltip}\n                  />\n                )}\n              </span>\n            ),\n            value: CoverageSelectorCoverageType.MedigapPolicy,\n            id: choiceIdMap[CoverageSelectorCoverageType.MedigapPolicy],\n            checked:\n              selectedPlanType === CoverageSelectorCoverageType.MedigapPolicy,\n          },\n        ]}\n        errorMessage={planTypeErrorState?.message}\n        errorMessageClassName=\"mct-c-coverage-selector-v2__plantype-error-message\"\n        errorPlacement={showErrorOnTop ? \"top\" : \"bottom\"}\n        label={\n          // * Next, select the type of plan you want:\n          isSinglePage ? (\n            <h2 className=\"ds-h3 ds-u-margin-top--5\">\n              {t(\"coverage_selector.plan_type.heading\")}\n            </h2>\n          ) : (\n            <h2 className=\"ds-text-heading--md ds-u-measure--narrow ds-u-margin-bottom--2\">\n              {t(\"coverage_selector.plan_type.heading\")}\n            </h2>\n          )\n        }\n        name=\"coverage-selector-select-plan-type\"\n        onChange={(e: SyntheticEvent<HTMLInputElement>) => {\n          onPlanTypeChange(\n            e.currentTarget.value as CoverageSelectorCoverageType\n          );\n        }}\n        type=\"radio\"\n      />\n      {showDescription ? (\n        <Link\n          className=\"ds-u-margin-y--1 ds-u-display--block\"\n          to={needHelpLinkUrl}\n          onClick={() => {\n            dispatch({\n              type: AnalyticsActionType.SEND_INTERNAL_LINK_CLICKED_EVENT,\n              settings: {\n                linkText: needHelpText,\n                linkUrl: needHelpLinkUrl,\n              },\n            });\n          }}\n        >\n          {needHelpText}\n        </Link>\n      ) : (\n        <span\n          className=\"ds-text-body--md ds-u-margin-y--1 ds-u-display--block\"\n          data-testid=\"need-help-text\"\n        >\n          <PlanTypeHelpDrawer newToMedicare={newToMedicare} />\n        </span>\n      )}\n      {showFindPlansNowHelpDrawer && (\n        <MctHelpDrawer\n          closeDrawer={toggleFindPlansNowHelpDrawer}\n          large\n          drawerTitle={t(\"coverage_selector.new_to_medicare.medigap.when\")}\n        >\n          <MedigapHelpDrawerContents />\n        </MctHelpDrawer>\n      )}\n    </div>\n  );\n};\n","import { Button } from \"@cmsgov/ds-medicare-gov\";\nimport {\n  AnalyticsActionType,\n  AnalyticsButtonStyle,\n  AnalyticsButtonType,\n} from \"../../../app/contexts/Analytics/types\";\nimport { useTranslate } from \"../../../helpers/intlHooks\";\nimport { useAppContext } from \"../../../helpers/context-hooks/useAppContext\";\nimport type { FC } from \"react\";\n\ninterface PlanTypePageActionsProps {\n  findPlansButtonText: string;\n  handleGoBack?: () => void;\n}\n\nexport const PlanTypeStepActions: FC<PlanTypePageActionsProps> = ({\n  findPlansButtonText,\n  handleGoBack,\n}) => {\n  const { dispatch } = useAppContext();\n  const t = useTranslate();\n  const goBackText = t(\"coverage_selector.go_back\");\n  return (\n    <>\n      <Button\n        variation=\"solid\"\n        className=\"mct-c-coverage-selector-v2__start-button\"\n        data-testid=\"start-button\"\n        type=\"submit\"\n      >\n        {findPlansButtonText}\n      </Button>\n      {handleGoBack && (\n        <Button\n          variation=\"ghost\"\n          className=\"mct-c-coverage-selector-v2__go-back-button\"\n          type=\"button\"\n          onClick={() => {\n            handleGoBack();\n            dispatch({\n              type: AnalyticsActionType.SEND_BUTTON_ENGAGEMENT_EVENT,\n              settings: {\n                button: {\n                  buttonStyle: AnalyticsButtonStyle.TRANSPARENT,\n                  buttonType: AnalyticsButtonType.BUTTON,\n                  text: goBackText,\n                },\n              },\n            });\n          }}\n        >\n          {goBackText}\n        </Button>\n      )}\n    </>\n  );\n};\n","import { Choice, InlineError, TextField } from \"@cmsgov/ds-medicare-gov\";\nimport classNames from \"classnames\";\nimport type { ChangeEvent, FC } from \"react\";\nimport type { CoverageSelectorErrorState } from \"../../../@types\";\nimport { useCounties } from \"../../../helpers/query-hooks/useCounties\";\nimport { useTranslate } from \"../../../helpers/intlHooks\";\nimport {\n  useCurrentPlanYear,\n  useYearPart,\n} from \"../../../helpers/yearFlagHelpers\";\n\nexport type ZipcodeAndCoverageYearStepProps = {\n  countiesErrorState?: CoverageSelectorErrorState;\n  currentFips: string | undefined;\n  initialFips: string | undefined;\n  onCountyChange: (county: string) => void;\n  onCoverageYearChange: (selectedYear: string) => void;\n  onZipcodeChange: (zipcodeInput: string) => void;\n  selectedCoverageYear?: number;\n  selectedZipcode?: string;\n  zipcode?: string;\n  zipcodeErrorState?: CoverageSelectorErrorState;\n  /** if `true`, will provide more prominent headers. */\n  isSinglePage?: boolean;\n};\n\nexport const ZipcodeAndCoverageYearStep: FC<\n  ZipcodeAndCoverageYearStepProps\n> = ({\n  countiesErrorState,\n  currentFips,\n  initialFips,\n  isSinglePage,\n  onCountyChange,\n  onCoverageYearChange,\n  onZipcodeChange,\n  selectedCoverageYear,\n  zipcode,\n  zipcodeErrorState,\n}) => {\n  // * Hooks\n  const t = useTranslate();\n  const mctCurrentPlanYear = useCurrentPlanYear();\n  const { isOpenEnrollmentNextYearOnly, isPublicPreview, isOpenEnrollment } =\n    useYearPart();\n\n  // * Queries\n  const { counties, isFetching } = useCounties(zipcode);\n\n  // * Constants\n  const nextPlanYear = mctCurrentPlanYear + 1;\n  const showCoverageYearSelector =\n    isPublicPreview || isOpenEnrollment || isOpenEnrollmentNextYearOnly;\n\n  return (\n    <div>\n      {showCoverageYearSelector && (\n        <div\n          data-testid=\"coverage-year-section\"\n          className=\"ds-u-margin-bottom--2\"\n        >\n          {isSinglePage ? (\n            <h2 className=\"ds-h3 ds-u-margin-bottom--2\">\n              {t(\"coverage_selector.oe.ntm.zipcode.heading\")}\n            </h2>\n          ) : (\n            <h2 className=\"ds-text-heading--md ds-u-measure--narrow ds-u-leading--lead\">\n              {t(\"coverage_selector.oe.zipcode.heading\")}\n            </h2>\n          )}\n          <fieldset className=\"ds-c-fieldset ds-u-margin-top--0\">\n            <legend className=\"ds-c-label\">\n              <span className=\"ds-u-text-transform--uppercase\">\n                {t(\"coverage_selector.coverage_for\")}\n              </span>\n            </legend>\n            <div className=\"mct-c-coverage-selector-v2__coverage-years\">\n              <Choice\n                type=\"radio\"\n                name=\"coverage-year\"\n                className=\"mct-c-coverage-selector-v2__coverage-year-choice--next-year\"\n                id={\"coverage-year-next-year\"}\n                value={nextPlanYear}\n                data-testid={`coverage-selector-coverage-year-${nextPlanYear}`}\n                data-cy={\"coverage-year-next-year\"}\n                checked={selectedCoverageYear === nextPlanYear}\n                onChange={(e: ChangeEvent<HTMLInputElement>) =>\n                  onCoverageYearChange(e.target.value)\n                }\n                label={nextPlanYear}\n              />\n\n              {!isOpenEnrollmentNextYearOnly && (\n                <Choice\n                  type=\"radio\"\n                  className=\"mct-c-coverage-selector-v2__coverage-year-choice--current-year\"\n                  name=\"coverage-year\"\n                  id={\"coverage-year-current-year\"}\n                  value={mctCurrentPlanYear}\n                  data-testid={`coverage-selector-coverage-year-${mctCurrentPlanYear}`}\n                  data-cy={\"coverage-year-current-year\"}\n                  checked={selectedCoverageYear === mctCurrentPlanYear}\n                  onChange={(e: ChangeEvent<HTMLInputElement>) =>\n                    onCoverageYearChange(e.target.value)\n                  }\n                  label={mctCurrentPlanYear}\n                />\n              )}\n            </div>\n          </fieldset>\n        </div>\n      )}\n      {!showCoverageYearSelector &&\n        (isSinglePage ? (\n          <h2 className=\"ds-h3 ds-u-margin-bottom--2\">\n            {t(\"coverage_selector.ooe.ntm.zipcode.heading\")}\n          </h2>\n        ) : (\n          <h2 className=\"ds-text-heading--md mct-c-coverage-selector-v2__step-heading\">\n            {t(\"coverage_selector.ooe.zipcode.heading\")}\n          </h2>\n        ))}\n      <div className=\"mct-c-coverage-selector-v2__zipcode-container\">\n        <TextField\n          label={t(\"coverage_selector.zip_code\")}\n          labelClassName=\"ds-h6\"\n          name=\"zipcode\"\n          data-testid=\"coverage-selector-zipcode\"\n          className={classNames(\"mct-c-coverage-selector-v2__zipcode\", {\n            \"mct-c-coverage-selector-v2__text-field--error\":\n              zipcodeErrorState?.error,\n          })}\n          onChange={e => onZipcodeChange(e.target.value)}\n          defaultValue={zipcode}\n          aria-required=\"true\"\n          aria-invalid={!!zipcodeErrorState?.error}\n          {...(zipcodeErrorState?.error\n            ? { \"aria-describedby\": \"zipcode-container-error\" }\n            : {})}\n        />\n      </div>\n      {zipcodeErrorState?.message && (\n        <div\n          className=\" ds-u-padding-top--1\"\n          data-testid=\"zipcodePlanTypeError\"\n        >\n          <InlineError id=\"zipcode-container-error\">\n            {t(zipcodeErrorState.message || \"\")}\n          </InlineError>\n        </div>\n      )}\n      {isFetching && <p>{t(\"app.loading\")}...</p>}\n      <>\n        {counties.length > 1 && (\n          <fieldset className=\"ds-c-fieldset ds-u-margin-top--2\">\n            <legend className=\"ds-c-label ds-u-margin-bottom--1\">\n              <span data-testid=\"select-your-county\">\n                {t(\"coverage_selector.select_your_county\")}\n              </span>\n            </legend>\n            <div className=\"mct-c-coverage-selector-v2__zip-counties\">\n              {counties.map(county => (\n                <Choice\n                  className=\"mct-c-coverage-selector-v2__county-choice\"\n                  data-testid={`coverage-selector-fips-${county.fips}`}\n                  defaultChecked={\n                    county.fips === initialFips || county.fips === currentFips\n                  }\n                  id={county.fips}\n                  key={county.fips}\n                  label={`${county.name}, ${county.state}`}\n                  name=\"county\"\n                  onChange={(e: ChangeEvent<HTMLInputElement>) => {\n                    onCountyChange(e.target.value);\n                  }}\n                  type=\"radio\"\n                  value={JSON.stringify(county)}\n                />\n              ))}\n            </div>\n          </fieldset>\n        )}\n        {countiesErrorState?.error && (\n          <div className=\"ds-u-margin-y--1\">\n            <InlineError>{t(countiesErrorState.message || \"\")}</InlineError>\n          </div>\n        )}\n      </>\n    </div>\n  );\n};\n","import { Button } from \"@cmsgov/ds-medicare-gov\";\nimport {\n  AnalyticsActionType,\n  AnalyticsButtonStyle,\n  AnalyticsButtonType,\n} from \"../../../app/contexts/Analytics/types\";\nimport { useTranslate } from \"../../../helpers/intlHooks\";\nimport { useAppContext } from \"../../../helpers/context-hooks/useAppContext\";\nimport type { FC } from \"react\";\n\ninterface ZipcodeAndCoverageYearStepActionsProps {\n  onClickContinue: () => void;\n  isInModal?: boolean;\n  handleCancel?: () => void;\n}\nexport const ZipcodeAndCoverageYearStepActions: FC<\n  ZipcodeAndCoverageYearStepActionsProps\n> = ({ handleCancel, isInModal, onClickContinue }) => {\n  const { dispatch } = useAppContext();\n  const t = useTranslate();\n  const continueButtonText = t(\"coverage_selector.continue\");\n  const cancelButtonText = t(\"coverage_selector.cancel\");\n  return (\n    <>\n      <Button\n        variation=\"solid\"\n        className=\"mct-c-coverage-selector-v2__start-button\"\n        data-testid=\"continue-button\"\n        type=\"button\"\n        onClick={() => {\n          onClickContinue();\n          dispatch({\n            type: AnalyticsActionType.SEND_BUTTON_ENGAGEMENT_EVENT,\n            settings: {\n              button: {\n                buttonStyle: AnalyticsButtonStyle.PRIMARY,\n                buttonType: AnalyticsButtonType.BUTTON,\n                text: continueButtonText,\n              },\n            },\n          });\n        }}\n      >\n        {continueButtonText}\n      </Button>\n      {isInModal && handleCancel && (\n        <Button\n          variation=\"ghost\"\n          className=\"mct-c-coverage-selector-v2__go-back-button\"\n          type=\"button\"\n          data-testid={\"coverage-selector-cancel\"}\n          onClick={() => {\n            handleCancel();\n            dispatch({\n              type: AnalyticsActionType.SEND_BUTTON_ENGAGEMENT_EVENT,\n              settings: {\n                button: {\n                  buttonStyle: AnalyticsButtonStyle.TRANSPARENT,\n                  buttonType: AnalyticsButtonType.BUTTON,\n                  text: cancelButtonText,\n                },\n              },\n            });\n          }}\n        >\n          {cancelButtonText}\n        </Button>\n      )}\n    </>\n  );\n};\n","import {\n  useState,\n  type FormEvent,\n  useRef,\n  useCallback,\n  useMemo,\n  useEffect,\n  type FC,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { useFlags } from \"launchdarkly-react-client-sdk\";\nimport {\n  type CoverageSelectorFormValues,\n  type CoverageSelectorCoverageType,\n  CoverageSelectorErrorType,\n  isCoverageSelectorSelectedValues,\n  ActionType,\n  type SharedCoverageSelectorProps,\n  type SharedCoverageSelectorAnalyticsValues,\n} from \"../../@types\";\nimport { useTranslate } from \"../../helpers/intlHooks\";\nimport { isValidZipcode } from \"../../helpers/zipcodeHelpers\";\nimport {\n  getYearPartInfo,\n  useCurrentPlanYear,\n} from \"../../helpers/yearFlagHelpers\";\nimport {\n  AnalyticsButtonStyle,\n  AnalyticsButtonType,\n} from \"../../app/contexts/Analytics/types\";\nimport { BadgeWithIcon } from \"../BadgeWithIcon\";\nimport { ContinueWithoutLoggingInIcon } from \"../SvgIcons/ContinueWithoutLoggingInIcon\";\nimport { useHistory } from \"react-router-dom\";\nimport { useAppContext } from \"../../helpers/context-hooks/useAppContext\";\nimport { CoverageSelectorAlert } from \"./CoverageSelectorAlert\";\nimport {\n  sendCoverageSelectorAnalytics,\n  updateStates,\n  useCoverageSelectorDestinationMap,\n  useDefaultCounty,\n  useInitialFormValues,\n} from \"../../helpers/coverageSelectorHelpers\";\nimport { PlanTypeStep } from \"./components/PlanTypeStep\";\nimport { PlanTypeStepActions } from \"./components/PlanTypeStepActions\";\nimport { ZipcodeAndCoverageYearStep } from \"./components/ZipcodeAndCoverageYearStep\";\nimport { ZipcodeAndCoverageYearStepActions } from \"./components/ZipcodeAndCoverageYearStepActions\";\n\nenum ActiveStep {\n  ZIPCODE,\n  PLAN_TYPE,\n}\n\ninterface CoverageSelectorV2Props\n  extends SharedCoverageSelectorProps,\n    SharedCoverageSelectorAnalyticsValues {\n  isInModal?: boolean;\n  handleCancel?: () => void;\n  /** set to `true` if you do not want there to be multiple steps. */\n  isSinglePage?: boolean;\n  /** set to `true` to show an alert that warns the user that they are continuing without logging in. */\n  showContinueWithoutLoggingIn?: boolean;\n  /** custom logic to run when the user clicks to \"Find Plans\" */\n  onFindPlans?: () => void;\n  /** skip straight to coverage type if we already have zipcode */\n  skipZipcode?: boolean;\n  /** allows the component to have pre-selected choices. */\n  defaultFormValues?: Partial<CoverageSelectorFormValues>;\n}\n\nexport const CoverageSelectorV2: FC<CoverageSelectorV2Props> = ({\n  isInModal = false,\n  handleCancel,\n  isSinglePage,\n  showDescription,\n  newToMedicare,\n  showContinueWithoutLoggingIn,\n  onFindPlans,\n  analyticsEventAction,\n  skipZipcode,\n  defaultFormValues,\n}) => {\n  // * Hooks\n  const t = useTranslate();\n  const history = useHistory();\n  const { initialFormValues } = useInitialFormValues();\n  const destinationMap = useCoverageSelectorDestinationMap();\n  const { dispatch } = useAppContext();\n\n  // * Flags\n  const flags = useFlags();\n  const { isPublicPreview, isOpenEnrollment, isOpenEnrollmentNextYearOnly } =\n    getYearPartInfo(flags);\n  const mctCurrentPlanYear = useCurrentPlanYear();\n  const showCoverageYearSelector =\n    isPublicPreview || isOpenEnrollment || isOpenEnrollmentNextYearOnly;\n\n  // * States\n  const [showZipcodeErrors, setShowZipcodeErrors] = useState(false);\n  const [showCoverageTypeErrors, setShowCoverageTypeErrors] = useState(false);\n  const [currentFormValues, setCurrentFormValues] =\n    useState<CoverageSelectorFormValues>({\n      coverageYear: showCoverageYearSelector\n        ? mctCurrentPlanYear + 1\n        : mctCurrentPlanYear,\n      zipcode: initialFormValues?.zipcode,\n      ...defaultFormValues,\n    });\n  const [activeStep, setActiveStep] = useState<ActiveStep>(\n    skipZipcode && initialFormValues?.zipcode && initialFormValues?.fips\n      ? ActiveStep.PLAN_TYPE\n      : ActiveStep.ZIPCODE\n  );\n\n  // * Refs\n  const topOfPageRef = useRef<HTMLDivElement>(null);\n\n  // * Constants\n  const url = window.location.href.split(\"/?\")[0];\n  const destination =\n    currentFormValues.coverageType &&\n    destinationMap[currentFormValues.coverageType];\n  const linkUrl = `${url}${destination}${location.search}`;\n  const findPlansButtonText = newToMedicare\n    ? t(\"next\")\n    : t(\"coverage_selector.find_plans\");\n  const analyticsButton = useMemo(\n    () => ({\n      text: findPlansButtonText,\n      buttonStyle: AnalyticsButtonStyle.PRIMARY,\n      buttonType: AnalyticsButtonType.SUBMIT,\n    }),\n    [findPlansButtonText]\n  );\n  const hasCounty = !!currentFormValues.county;\n  const hasCoverageType = !!currentFormValues.coverageType;\n  const initialFips = initialFormValues?.fips;\n\n  // * Queries\n  const { county: defaultCounty, errorFetchingCounties } = useDefaultCounty({\n    fips: initialFips,\n    zipcode: currentFormValues.zipcode,\n  });\n\n  // * Memos\n  const zipcodeErrorState = useMemo(() => {\n    if (errorFetchingCounties)\n      // we always show an API error, even if `showZipcodeErrors` is false.\n      return {\n        error: CoverageSelectorErrorType.API,\n        message: t(\"coverage_selector.error.zip_code_not_found\"),\n      };\n    if (!showZipcodeErrors) return;\n    if (!isValidZipcode(currentFormValues.zipcode)) {\n      return {\n        error:\n          currentFormValues.zipcode?.length === 0\n            ? CoverageSelectorErrorType.MISSING\n            : CoverageSelectorErrorType.INVALID,\n        message: t(\"coverage_selector.error.zip_code\"),\n      };\n    }\n    return;\n  }, [currentFormValues.zipcode, errorFetchingCounties, showZipcodeErrors, t]);\n\n  const countiesErrorState = useMemo(() => {\n    if (!showZipcodeErrors || zipcodeErrorState || currentFormValues.county)\n      return;\n    return {\n      error: CoverageSelectorErrorType.MISSING,\n      message: t(\"coverage_selector.error.missing_county\"),\n    };\n  }, [currentFormValues.county, t, zipcodeErrorState, showZipcodeErrors]);\n\n  const planTypeErrorState = useMemo(() => {\n    if (!showCoverageTypeErrors || currentFormValues.coverageType) return;\n    return {\n      error: CoverageSelectorErrorType.MISSING,\n      message: t(\"coverage_selector.error.plan_type\"),\n    };\n  }, [showCoverageTypeErrors, currentFormValues.coverageType, t]);\n\n  const errorState = useMemo(\n    () => ({\n      zipcode: zipcodeErrorState,\n      planType: planTypeErrorState,\n      counties: countiesErrorState,\n    }),\n    [countiesErrorState, planTypeErrorState, zipcodeErrorState]\n  );\n\n  // * Functions\n  const triggerErrors = useCallback(() => {\n    if (activeStep === ActiveStep.ZIPCODE || isSinglePage) {\n      setShowZipcodeErrors(true);\n    }\n    if (activeStep === ActiveStep.PLAN_TYPE || isSinglePage) {\n      setShowCoverageTypeErrors(true);\n    }\n  }, [activeStep, isSinglePage]);\n\n  const onZipcodeChange = useCallback(\n    (zipcodeInput: string) => {\n      setShowZipcodeErrors(false);\n      setCurrentFormValues(currentFormValues => ({\n        ...currentFormValues,\n        zipcode: zipcodeInput,\n        county: undefined,\n      }));\n      if (isValidZipcode(zipcodeInput)) {\n        dispatch({\n          type: ActionType.UPDATE_ZIPCODE,\n          payload: zipcodeInput,\n        });\n      }\n    },\n    [dispatch]\n  );\n\n  const onClickContinue = useCallback(\n    (e?: FormEvent<HTMLFormElement>): void => {\n      e?.preventDefault();\n      triggerErrors();\n      if (currentFormValues.county) {\n        dispatch({\n          type: ActionType.UPDATE_FIPS,\n          payload: currentFormValues.county?.fips,\n        });\n        setActiveStep(ActiveStep.PLAN_TYPE);\n      }\n    },\n    [currentFormValues.county, dispatch, triggerErrors]\n  );\n\n  const navigateToPlans = useCallback(() => {\n    if (destination) {\n      history.push(destination);\n    }\n  }, [destination, history]);\n\n  const handleFindPlans = useCallback(() => {\n    // * Run any custom logic for this instance\n    if (onFindPlans) {\n      onFindPlans();\n    }\n    // * Update AppContext with selected values\n    if (isCoverageSelectorSelectedValues(currentFormValues)) {\n      updateStates(currentFormValues, dispatch);\n    }\n    if (currentFormValues.coverageType) {\n      sendCoverageSelectorAnalytics({\n        analyticsButton,\n        analyticsEventAction,\n        currentFormValues,\n        dispatch,\n        linkUrl,\n      });\n      navigateToPlans();\n    }\n  }, [\n    onFindPlans,\n    currentFormValues,\n    dispatch,\n    analyticsButton,\n    analyticsEventAction,\n    linkUrl,\n    navigateToPlans,\n  ]);\n\n  const onClickStart = (e: FormEvent<HTMLFormElement>): void => {\n    /** adding 16px to the top to keep the page looking a bit nice after the scroll. */\n    const buffer = 16;\n    e.preventDefault();\n    triggerErrors();\n    if (isSinglePage) {\n      if (hasCounty && hasCoverageType) {\n        handleFindPlans();\n      } else {\n        if (topOfPageRef.current) {\n          window.scrollTo({\n            top: topOfPageRef.current.offsetTop - buffer,\n            left: 0,\n            behavior: \"smooth\",\n          });\n        }\n      }\n      return;\n    }\n    if (activeStep === ActiveStep.PLAN_TYPE) {\n      if (hasCoverageType) {\n        handleFindPlans();\n      }\n    } else {\n      onClickContinue();\n    }\n  };\n\n  const goBackToZipCode = isSinglePage\n    ? undefined\n    : () => {\n        setActiveStep(ActiveStep.ZIPCODE);\n        setShowCoverageTypeErrors(false);\n        setCurrentFormValues(currentFormValues => ({\n          ...currentFormValues,\n          coverageType: undefined,\n        }));\n      };\n\n  const onPlanTypeChange = (planType: CoverageSelectorCoverageType) => {\n    setCurrentFormValues(currentFormValues => ({\n      ...currentFormValues,\n      coverageType: planType,\n    }));\n  };\n\n  // * Effects\n\n  useEffect(() => {\n    // if `defaultCounty` changes, assign it to `currentFormValues`.\n    setCurrentFormValues(currentFormValues => ({\n      ...currentFormValues,\n      county: defaultCounty,\n    }));\n  }, [defaultCounty]);\n\n  return (\n    <>\n      {activeStep === ActiveStep.ZIPCODE && showContinueWithoutLoggingIn && (\n        <BadgeWithIcon\n          svgIcon={ContinueWithoutLoggingInIcon}\n          theme=\"primary-alt-lightest\"\n          className=\"ds-u-margin-bottom--2\"\n        >\n          {t(\"landing_page.badge.continue_without_logging_in\")}\n        </BadgeWithIcon>\n      )}\n      <div\n        className={classNames(\"mct-c-coverage-selector-v2\", {\n          \"mct-c-coverage-selector-v2--in-modal\": isInModal,\n        })}\n        data-testid=\"mct-c-coverage-selector-v2\"\n        ref={topOfPageRef}\n      >\n        <form onSubmit={onClickStart}>\n          <CoverageSelectorAlert errorState={errorState} />\n          <div className=\"mct-c-coverage-selector-v2__step\">\n            {(activeStep === ActiveStep.ZIPCODE || isSinglePage) && (\n              <ZipcodeAndCoverageYearStep\n                isSinglePage={isSinglePage}\n                countiesErrorState={countiesErrorState}\n                zipcodeErrorState={zipcodeErrorState}\n                currentFips={currentFormValues.county?.fips}\n                initialFips={initialFips}\n                onCountyChange={county => {\n                  setCurrentFormValues(currentFormValues => ({\n                    ...currentFormValues,\n                    county: JSON.parse(county),\n                  }));\n                }}\n                onCoverageYearChange={coverageYear => {\n                  setCurrentFormValues(currentFormValues => ({\n                    ...currentFormValues,\n                    coverageYear: +coverageYear,\n                  }));\n                }}\n                onZipcodeChange={onZipcodeChange}\n                selectedCoverageYear={currentFormValues.coverageYear}\n                selectedZipcode={currentFormValues.zipcode}\n                zipcode={currentFormValues.zipcode}\n              />\n            )}\n            {(activeStep === ActiveStep.PLAN_TYPE || isSinglePage) && (\n              <PlanTypeStep\n                showDescription={showDescription}\n                planTypeErrorState={errorState.planType}\n                onPlanTypeChange={onPlanTypeChange}\n                newToMedicare={newToMedicare}\n                isSinglePage={isSinglePage}\n                selectedPlanType={currentFormValues.coverageType}\n              />\n            )}\n          </div>\n          {isSinglePage && <div className=\"mct-c-divider\" />}\n          <div className={isSinglePage ? \"\" : \"ds-u-padding-top--2\"}>\n            {activeStep === ActiveStep.ZIPCODE && !isSinglePage ? (\n              <ZipcodeAndCoverageYearStepActions\n                onClickContinue={onClickContinue}\n                isInModal={isInModal}\n                handleCancel={handleCancel}\n              />\n            ) : (\n              <PlanTypeStepActions\n                findPlansButtonText={findPlansButtonText}\n                handleGoBack={goBackToZipCode}\n              />\n            )}\n          </div>\n        </form>\n      </div>\n    </>\n  );\n};\n","import { FormattedMessage } from \"react-intl\";\nimport { useTranslate } from \"../../../helpers/intlHooks\";\nimport { linkToSHIPHelp } from \"../../../helpers/CONSTANTS\";\nimport { MedicareGovAnchor } from \"../../MedicareGovAnchor\";\n\n/** Help drawer with \"When should I buy Medigap?\" information? */\nexport const MedigapHelpDrawerContents = () => {\n  const t = useTranslate();\n\n  return (\n    <>\n      <p>\n        <strong>{t(\"ntm.find_plans_now.help_drawer.best_time\")}</strong>{\" \"}\n        <FormattedMessage\n          id={\"ntm.find_plans_now.help_drawer.six_month\"}\n          values={{\n            and: <span>{t(\"and\")}</span>,\n          }}\n        />\n      </p>\n      <ul>\n        <li>\n          <strong>\n            {t(\"ntm.find_plans_now.help_drawer.bullet.65_up_intro\")}\n          </strong>{\" \"}\n          {t(\"ntm.find_plans_now.help_drawer.bullet.65_up_cont\")}\n        </li>\n        <li>\n          <strong>\n            {t(\"ntm.find_plans_now.help_drawer.bullet.64_down_intro\")}{\" \"}\n          </strong>\n          <FormattedMessage\n            id={\"ntm.find_plans_now.help_drawer.bullet.64_down_cont\"}\n            values={{\n              ship: (\n                <a href={linkToSHIPHelp} target=\"_blank\" rel=\"noreferrer\">\n                  {t(\"ntm.find_plans_now.help_drawer.ship\")}\n                </a>\n              ),\n            }}\n          />\n        </li>\n      </ul>\n      <MedicareGovAnchor urlKey=\"medigap\">\n        {t(\"ntm.find_plans_now.help_drawer.learn_more_medigap\")}\n      </MedicareGovAnchor>\n    </>\n  );\n};\n","import classNames from \"classnames\";\nimport type { FC, PropsWithChildren } from \"react\";\ntype PlanTypeSubHeaderProps = PropsWithChildren<{\n  isSinglePage?: boolean;\n  showDescription?: boolean;\n}>;\n\n/** subheader to use with PlanTypeStep */\nexport const PlanTypeSubHeader: FC<PlanTypeSubHeaderProps> = ({\n  isSinglePage,\n  showDescription,\n  children,\n}) => {\n  if (!showDescription) {\n    return <span>{children}</span>;\n  }\n\n  return (\n    <strong\n      className={classNames({\n        // makes it bold\n        \".mct-c-coverage-selector-v2__plan-type-sub-heading-aria\":\n          showDescription,\n        \"ds-text-heading--lg\": isSinglePage,\n      })}\n    >\n      {children}\n    </strong>\n  );\n};\n","import { CoverageSelectorCoverageType } from \"../../@types\";\nimport { MctPlanTypeCoverageSelector } from \"../../app/contexts/Analytics/types\";\n\nexport const choiceIdMap: Record<CoverageSelectorCoverageType, string> = {\n  [CoverageSelectorCoverageType.MAPD]: \"what-coverage-mapd\",\n  [CoverageSelectorCoverageType.PDP]: \"what-coverage-pdp\",\n  [CoverageSelectorCoverageType.MedigapPolicy]: \"what-coverage-medigap\",\n  [CoverageSelectorCoverageType.learnMore]: \"learn-more\",\n};\n\nexport const planTypeGa4EventMap: Record<\n  CoverageSelectorCoverageType,\n  MctPlanTypeCoverageSelector\n> = {\n  [CoverageSelectorCoverageType.MAPD]: MctPlanTypeCoverageSelector.MAPD,\n  [CoverageSelectorCoverageType.PDP]: MctPlanTypeCoverageSelector.PDP,\n  [CoverageSelectorCoverageType.MedigapPolicy]:\n    MctPlanTypeCoverageSelector.MedigapPolicy,\n  [CoverageSelectorCoverageType.learnMore]:\n    MctPlanTypeCoverageSelector.learnMore,\n};\n\n/**\n * in Phrase, these keys are used to differentiate plan types for description text.\n */\nexport const planTypePhraseMap = {\n  [CoverageSelectorCoverageType.MAPD]: \"part_c\",\n  [CoverageSelectorCoverageType.PDP]: \"part_d\",\n  [CoverageSelectorCoverageType.MedigapPolicy]: \"medigap\",\n} as const;\n","import { Link } from \"react-router-dom\";\nimport { InfoCircleOutlineIcon } from \"@cmsgov/ds-medicare-gov\";\nimport { useTypedTranslate } from \"../../helpers/intlHooks\";\nimport { HelpDrawerWrapper } from \"../../components/HelpDrawerWrapper\";\nimport { AnalyticsActionType } from \"../../app/contexts/Analytics/types\";\nimport { routes } from \"../../app/routes\";\nimport { createSimpleHelpDrawerAnalytics } from \"../../helpers/simpleHelpDrawerAnalytics\";\nimport { useAppContext } from \"../../helpers/context-hooks/useAppContext\";\nimport type { FC } from \"react\";\n\nexport interface PlanTypeHelpDrawerProps {\n  newToMedicare?: boolean;\n}\nexport const PlanTypeHelpDrawer: FC<PlanTypeHelpDrawerProps> = ({\n  newToMedicare,\n}) => {\n  const t = useTypedTranslate();\n  const { dispatch } = useAppContext();\n  const helpDrawerToggleText = t(\"coverage_selector.help_drawer.toggle\");\n  const helpDrawerTitle = t(\"coverage_selector.help_drawer.title\");\n  const needHelpText = newToMedicare\n    ? t(\"coverage_selector.ntm.help_link_text\")\n    : t(\"coverage_selector.help_drawer.help_link_text\");\n  const needHelpLinkUrl = routes.coverageWizard.options;\n  const helperDrawerAnalytics = createSimpleHelpDrawerAnalytics({\n    toggleText: helpDrawerToggleText,\n    heading: helpDrawerTitle,\n  });\n  return (\n    <HelpDrawerWrapper\n      toggleText={\n        <>\n          <span className=\"ds-u-margin-right--1\">{helpDrawerToggleText}</span>\n          <InfoCircleOutlineIcon />\n        </>\n      }\n      toggleClassName=\"mct-c-coverage-selector-v2__help-drawer-toggle\"\n      mctAnalytics={helperDrawerAnalytics}\n      drawerTitle={helpDrawerTitle}\n    >\n      <div>\n        {/** // * Medicare Advantage Plan (Part C) */}\n        <h4 className=\"ds-u-margin-bottom--0\">\n          {t(\"coverage_selector.help_drawer.part_c.sub_heading\")}\n        </h4>\n        <p className=\"ds-u-margin-top--1\">\n          {t(\"coverage_selector.help_drawer.part_c.body.2024\")}\n        </p>\n        {/** // * Medicare drug plan (Part D) */}\n        <h4 className=\"ds-u-margin-bottom--0\">\n          {t(\"coverage_selector.help_drawer.part_d.sub_heading\")}\n        </h4>\n        <p className=\"ds-u-margin-top--1\">\n          {t(\"coverage_selector.help_drawer.part_d.body\")}\n        </p>\n        {/** // * Medigap policy */}\n        <h4 className=\"ds-u-margin-bottom--0\">\n          {t(\"coverage_selector.help_drawer.medigap.sub_heading\")}\n        </h4>\n        <p className=\"ds-u-margin-top--1\">\n          {t(\"coverage_selector.help_drawer.medigap.body.2024\")}\n        </p>\n        <Link\n          to={needHelpLinkUrl}\n          onClick={() => {\n            dispatch({\n              type: AnalyticsActionType.SEND_INTERNAL_LINK_CLICKED_EVENT,\n              settings: {\n                linkText: needHelpText,\n                linkUrl: needHelpLinkUrl,\n              },\n            });\n          }}\n        >\n          {needHelpText}\n        </Link>\n      </div>\n    </HelpDrawerWrapper>\n  );\n};\n","import type { HTMLProps, FC } from \"react\";\nimport { getLinkWithLanguage } from \"../helpers/urlHelpers\";\nimport { useAppContext } from \"../helpers/context-hooks/useAppContext\";\nimport { mGovUrls } from \"../helpers/constants/medicareGovUrls\";\n\ntype MedicareGovAnchorProps = Omit<\n  HTMLProps<HTMLAnchorElement>,\n  \"href\" | \"target\" | \"rel\"\n> & {\n  urlKey: keyof typeof mGovUrls;\n  sameTab?: boolean;\n};\n\n/** anchor tag which can tag keys from `mGovUrls` and properly route them\n * @prop sameTab  - set to `true` to open in the same tab, instead of a new tab.\n * @prop urlKey - a key for a path defined in `mGovUrls`\n * @see /src/helpers/CONSTANTS.ts\n * @example <MedicareGovAnchor urlKey=\"medigap\">\n        {t(\"ntm.find_plans_now.help_drawer.learn_more_medigap\")}\n      </MedicareGovAnchor>   \n */\nexport const MedicareGovAnchor: FC<MedicareGovAnchorProps> = ({\n  urlKey,\n  sameTab,\n  children,\n  ...props\n}) => {\n  const {\n    state: { language },\n  } = useAppContext();\n\n  const target = sameTab ? undefined : \"_blank\";\n  const rel = sameTab ? undefined : \"noopener noreferrer\";\n\n  return (\n    <a\n      href={getLinkWithLanguage(mGovUrls[urlKey], language)}\n      target={target}\n      rel={rel}\n      {...props}\n    >\n      {children}\n    </a>\n  );\n};\n","import { type ReactNode, useContext } from \"react\";\nimport { Tooltip } from \"@cmsgov/ds-medicare-gov\";\nimport type { TooltipProps } from \"@cmsgov/design-system/dist/react-components/types/Tooltip/Tooltip\";\nimport classNames from \"classnames\";\nimport { IntlContext } from \"../helpers/intlHooks\";\nimport messages from \"../translations/en-US.json\";\n\ninterface TooltipWithCloseProps extends TooltipProps {\n  /**\n   * `title` is the tooltip's content.\n   * `headerText` is an optional heading for the tooltip's content. The required\n   * `children` prop is used for the tooltip's trigger content (by default) and\n   *  also the tooltip heading, unless `headerText` is also set.\n   * If `headerText` is passed an empty string, no header will be displayed\n   */\n  headerText?: ReactNode;\n}\n\n/**\n * Customized tooltip to match previous MPF implementation but leverage core DS\n * component functionality.\n *   existing implementation\n * - Uses as a prefix for the tooltip trigger `aria-label`, in this order:\n *     - the optional `ariaLabel` prop, which is a string\n *     - the optional `headerText` prop, if it's a string\n *     - `children`, if it's a string\n * - NB: The `title` prop is for dialog **content**\n *\n * For additional prop and usage documentation:\n * @see https://github.cms.gov/pages/MedicareGov/mgov-design-system/components/tooltip/\n * @see https://design.cms.gov/components/tooltip/\n */\nexport const TooltipWithClose = ({\n  title,\n  ariaLabel,\n  headerText,\n  children,\n  className,\n  activeClassName,\n  maxWidth = \"400px\",\n  ...remainingProps\n}: TooltipWithCloseProps) => {\n  const fm = useContext(IntlContext).formatMessage;\n\n  //Get a string prefix to describe the tooltip trigger to screen readers\n  let ariaLabelPrefix = \"\";\n  if (ariaLabel) {\n    // ariaLabel` is optional and a `string`\n    ariaLabelPrefix = `${ariaLabel}: `;\n  } else if (headerText && typeof headerText === \"string\") {\n    // `headerText` is optional and a `ReactNode`\n    ariaLabelPrefix = `${headerText}: `;\n  } else if (typeof children === \"string\") {\n    // `children` is required and a `ReactNode`\n    ariaLabelPrefix = `${children}: `;\n  }\n\n  const ariaLabelContent = fm\n    ? `${ariaLabelPrefix}${fm({\n        id: \"tooltip_trigger_aria_label\",\n      })}`\n    : `${ariaLabelPrefix}${messages.tooltip_trigger_aria_label}`;\n\n  const toggleButtonClasses = \"ds-c-button ds-c-button--ghost\";\n\n  return (\n    <div\n      className={classNames(\"Tooltip Tooltip--with-close\", {\n        \"Tooltip--inline\": className?.includes(\"ds-c-tooltip__trigger-link\"),\n      })}\n    >\n      <Tooltip\n        title={\n          <div className=\"Tooltip__body\" data-testid=\"Tooltip__body\">\n            {title}\n          </div>\n        }\n        contentHeading={\n          headerText === \"\" ? (\n            <span></span>\n          ) : (\n            <h2 className=\"ds-text-heading--lg ds-u-margin-bottom--0\">\n              {headerText || children}\n            </h2>\n          )\n        }\n        closeButtonLabel={fm ? fm({ id: \"close\" }) : \"close\"}\n        showCloseButton={true}\n        dialog={true}\n        className={classNames(\n          className,\n          toggleButtonClasses,\n          \"Tooltip__trigger\"\n        )}\n        activeClassName={classNames(\n          activeClassName,\n          toggleButtonClasses,\n          \"Tooltip__trigger--open\"\n        )}\n        ariaLabel={ariaLabelContent}\n        placement=\"top-start\"\n        maxWidth={maxWidth}\n        {...remainingProps}\n      >\n        {children}\n      </Tooltip>\n    </div>\n  );\n};\n","import { type Dispatch, useMemo } from \"react\";\nimport { useLoggedIn } from \"./loginHelpers\";\nimport {\n  type Action,\n  ActionType,\n  type AppState,\n  type County,\n  CoverageSelectorCoverageType,\n  type CoverageSelectorFormValues,\n  type CoverageSelectorSelectedValues,\n  type Pharmacy,\n  type PharmacyType,\n  PlanType,\n  type PrescriptionDrug,\n  type SharedCoverageSelectorAnalyticsValues,\n} from \"../@types\";\nimport { routes } from \"../app/routes\";\nimport { hasMailOrderPharmacy } from \"../app/store/appStoreHelpers\";\nimport { useAppContext } from \"./context-hooks/useAppContext\";\nimport {\n  AnalyticsActionType,\n  type AnalyticsActions,\n  type AnalyticsButtonStyle,\n  type AnalyticsButtonType,\n  Ga4Event,\n  Ga4EventType,\n} from \"../app/contexts/Analytics/types\";\nimport { planTypeGa4EventMap } from \"../components/CoverageSelector/constants\";\nimport { useIsBEDAPDown } from \"./beneficiaryInfoHelpers\";\nimport { useCounties } from \"./query-hooks/useCounties\";\n\nexport interface LiCoverageSelectorRoutingParams {\n  pharmacies: Pharmacy[];\n  prescriptions: PrescriptionDrug[];\n  pharmacyType: PharmacyType;\n  isBEDAPDown: boolean;\n}\n\nexport interface CoverageSelectorRoutingParams {\n  isBEDAPDown: boolean;\n  isLoggedIn: boolean;\n  pharmacies: Pharmacy[];\n  prescriptions: PrescriptionDrug[];\n  pharmacyType: PharmacyType;\n  zipcode?: string;\n}\n\n/**\n * Determines some of the possible next routes from the coverage selector,\n * based on whether they're LI or anonymous, the status of BEDAP, and the current\n * status of the bene's pharmacies and prescription drugs\n */\nexport const getNextRouteFromCoverageSelector = ({\n  isBEDAPDown,\n  isLoggedIn,\n  pharmacies,\n  prescriptions,\n  pharmacyType,\n}: CoverageSelectorRoutingParams) => {\n  const hasMailOrderPharmacies = hasMailOrderPharmacy({\n    pharmacyType,\n  } as AppState);\n  const pharmacyCount = pharmacies.length + (hasMailOrderPharmacies ? 1 : 0);\n  const drugsCount = prescriptions.length;\n  const isMissingPharmsOrDrugs = pharmacyCount === 0 || drugsCount === 0;\n  const baseRoutes = isLoggedIn ? routes.summary : routes;\n  if (!isLoggedIn || isBEDAPDown) {\n    return baseRoutes.lisQuestions;\n  } else {\n    return isMissingPharmsOrDrugs\n      ? baseRoutes.drugSearchPreferences\n      : baseRoutes.searchResults;\n  }\n};\n\n/**\n * Provides a map of destination routes for a bene based on chosen coverage type\n */\nexport const getCoverageSelectorDestinationMap = ({\n  isBEDAPDown,\n  isLoggedIn,\n  pharmacies,\n  prescriptions,\n  pharmacyType,\n  zipcode,\n}: CoverageSelectorRoutingParams): Record<\n  CoverageSelectorCoverageType,\n  string | undefined\n> => {\n  const nextRouteForMaOrPdp = getNextRouteFromCoverageSelector({\n    isBEDAPDown,\n    isLoggedIn,\n    pharmacies,\n    prescriptions,\n    pharmacyType,\n  });\n\n  return {\n    [CoverageSelectorCoverageType.MAPD]: nextRouteForMaOrPdp,\n    [CoverageSelectorCoverageType.PDP]: nextRouteForMaOrPdp,\n    [CoverageSelectorCoverageType.MedigapPolicy]: zipcode\n      ? routes.medigap.plans\n      : undefined,\n    [CoverageSelectorCoverageType.learnMore]: routes.coverageWizard.options,\n  };\n};\n\n/**\n * Hook that provides a map of destination routes for a bene based on chosen\n * coverage type\n */\nexport const useCoverageSelectorDestinationMap = () => {\n  const {\n    state: { pharmacies, pharmacyType, prescriptions, zipcode },\n  } = useAppContext();\n\n  const isBEDAPDown = useIsBEDAPDown();\n  const isLoggedIn = useLoggedIn();\n  const destinationMap = useMemo(\n    () =>\n      getCoverageSelectorDestinationMap({\n        isBEDAPDown,\n        isLoggedIn,\n        pharmacies,\n        pharmacyType,\n        prescriptions,\n        zipcode,\n      }),\n    [isBEDAPDown, isLoggedIn, pharmacies, pharmacyType, prescriptions, zipcode]\n  );\n  return destinationMap;\n};\n\n/**\n * Populate initial coverage selector form values\n */\nexport const getInitialFormValues = ({\n  beneficiary,\n  county,\n  zipcode,\n}: {\n  beneficiary: AppState[\"beneficiary\"];\n  county: AppState[\"county\"];\n  zipcode: AppState[\"zipcode\"];\n}) => ({\n  zipcode: zipcode || beneficiary?.mailing_address.zipcode,\n  fips: county?.fips || beneficiary?.mailing_address.fips_state_county || \"\",\n});\n\n/**\n * an easy way to grab initial values from state\n * either from a top level attribute or falling back to beneficiary for logged in users.\n */\nexport function useInitialFormValues() {\n  const {\n    state: { beneficiary, county, zipcode },\n  } = useAppContext();\n  const initialFormValues = getInitialFormValues({\n    beneficiary,\n    county,\n    zipcode,\n  });\n\n  return {\n    initialFormValues,\n  };\n}\n\n/**\n * A wrapper around the `useCounties` query hook.\n *\n * Derives a `County` from `zipcode` and optionally `fips`\n * These values can be derived from `AppState` or passed in as part of the optional\n * parameter object\n *\n * Returns an object that also includes the error state from `useCounties`, if an\n * error occurred during the query (e.g., if no `zipcode` is found)\n */\nexport const useDefaultCounty = ({\n  fips: fipsParam,\n  zipcode: zipcodeParam,\n}: {\n  fips?: string;\n  zipcode?: string;\n} = {}): {\n  county: County | undefined;\n  errorFetchingCounties: boolean;\n} => {\n  const {\n    state: { fips, zipcode },\n  } = useAppContext();\n  const initialFips = fipsParam || fips;\n  const initialZip = zipcodeParam || zipcode;\n  const { counties, isError } = useCounties(initialZip);\n\n  const defaultCounty = useMemo(() => {\n    // returns a matching county if we have a fips in state.\n    if (initialFips) {\n      const foundCounty = counties.find(county => county.fips === initialFips);\n      if (foundCounty) {\n        return foundCounty;\n      }\n    }\n    if (counties.length === 1) {\n      // returns the only county if there is no other option\n      return counties[0];\n    }\n    return;\n  }, [counties, initialFips]);\n\n  return useMemo(\n    () => ({ county: defaultCounty, errorFetchingCounties: isError }),\n    [defaultCounty, isError]\n  );\n};\n\nconst planTypeMap: Record<CoverageSelectorCoverageType, PlanType | undefined> =\n  {\n    [CoverageSelectorCoverageType.MAPD]: PlanType.MAPD,\n    [CoverageSelectorCoverageType.PDP]: PlanType.PDP,\n    [CoverageSelectorCoverageType.MedigapPolicy]: undefined,\n    [CoverageSelectorCoverageType.learnMore]: undefined,\n  };\n\nexport const updateStates = (\n  coverageSelectorValues: CoverageSelectorSelectedValues,\n  dispatch: Dispatch<Action>\n): void => {\n  dispatch({\n    type: ActionType.UPDATE_YEAR,\n    payload: coverageSelectorValues.coverageYear.toString(),\n  });\n  dispatch({\n    type: ActionType.UPDATE_COUNTY,\n    payload: coverageSelectorValues.county,\n  });\n  dispatch({\n    type: ActionType.UPDATE_FIPS,\n    payload: coverageSelectorValues.county?.fips,\n  });\n  dispatch({\n    type: ActionType.UPDATE_ZIPCODE,\n    payload: coverageSelectorValues.zipcode,\n  });\n\n  if (coverageSelectorValues.coverageType) {\n    const planType = planTypeMap[coverageSelectorValues.coverageType];\n    if (planType) {\n      dispatch({\n        type: ActionType.UPDATE_PLAN_TYPE,\n        payload: planType,\n      });\n    }\n  }\n};\n\ninterface SendCoverageSelectorAnalyticsArgs\n  extends SharedCoverageSelectorAnalyticsValues {\n  analyticsButton: {\n    text: string;\n    buttonStyle: AnalyticsButtonStyle;\n    buttonType: AnalyticsButtonType;\n  };\n  currentFormValues: CoverageSelectorFormValues;\n  dispatch: Dispatch<Action | AnalyticsActions>;\n  linkUrl: string;\n}\n\nexport const sendCoverageSelectorAnalytics = ({\n  analyticsButton,\n  analyticsEventAction,\n  currentFormValues,\n  dispatch,\n  linkUrl,\n}: SendCoverageSelectorAnalyticsArgs) => {\n  if (currentFormValues.coverageType) {\n    dispatch({\n      type: AnalyticsActionType.SEND_BUTTON_ENGAGEMENT_EVENT,\n      settings: {\n        button: analyticsButton,\n        linkUrl,\n      },\n    });\n    dispatch({\n      type: AnalyticsActionType.SEND_GA4_EVENT,\n      settings: {\n        event_name: Ga4Event.PLAN_FINDER_STARTED,\n        event_type: Ga4EventType.UI_INTERACTION,\n        link_text: analyticsButton.text,\n        link_url: linkUrl,\n        mct_plan_type: planTypeGa4EventMap[currentFormValues.coverageType],\n        mct_plan_year: currentFormValues.coverageYear,\n        text: analyticsButton.text,\n      },\n    });\n    dispatch({\n      type: AnalyticsActionType.SEND_TEALIUM_EVENT,\n      settings: {\n        event_action: analyticsEventAction || \"Coverage Selector - Plan Search\",\n        event_label: planTypeGa4EventMap[currentFormValues.coverageType],\n      },\n    });\n  }\n};\n","import { getCounties } from \"../../api\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { QueryKey, StaleTime } from \"./types\";\nimport { isValidZipcode } from \"../zipcodeHelpers\";\nimport { useMemo } from \"react\";\n\n/**\n * a hook to access counties based off of zipcode\n */\nexport const useCounties = (zipcode?: string) => {\n  // * Constants\n  const validZipcode = isValidZipcode(zipcode) ? zipcode : undefined;\n\n  // * Queries\n  const { isFetching, isError, data } = useQuery({\n    queryKey: [QueryKey.Counties, validZipcode],\n    queryFn: () => getCounties(validZipcode as string),\n    enabled: !!validZipcode,\n    staleTime: StaleTime.Infinite,\n    // because an error is a \"valid\" response if a zip code does not exist, we do not retry on failures\n    retry: 0,\n  });\n\n  const counties = useMemo(() => data || [], [data]);\n\n  return {\n    /** an array of counties, based off of a zipcode */\n    counties,\n    /** if we are fetching data from the query */\n    isFetching,\n    /** if we hit an error from the query (likely a 404 for non-existent zipcode) */\n    isError,\n  };\n};\n"],"names":["ariaLetterMap","c","d","AriaLetter","_ref","children","className","ariaLabel","toLowerCase","_jsx","_Fragment","baseBadgeClassName","IconPlacements","ChildrenWithIcon","svgIcon","iconPlacement","idSuffix","iconClassName","classNames","iconRight","right","newId","props","id","undefined","icon","cloneElement","width","height","_jsxs","BadgeWithIcon","_ref2","left","variation","theme","combinedClassNames","uniqueId","OriginalBadge","ContinueWithoutLoggingInIcon","SvgIcon","title","viewBox","CoverageSelectorAlert","errorState","t","useTranslate","planType","zipcode","counties","Alert","heading","PlanTypeDescription","coverageType","newToMedicare","showDrawer","helpDrawerOpen","setActiveTooltip","useTypedTranslate","phraseSelector2","phraseSelector3","planTypePhraseMap","initialPhraseDescriptionKey","phraseWarningKey","phraseDescriptionKey","toggleTextKey","FormattedMessage","values","originalMedicare","TooltipWithClose","onOpen","sendTooltipEvent","text","component","when","HelpDrawerToggle","sendHelpDrawerOpenAnalyticsEvent","InfoCircleOutlineIcon","and","or","PlanTypeStep","showDescription","planTypeErrorState","onPlanTypeChange","isSinglePage","selectedPlanType","dispatch","useAppContext","needHelpText","needHelpLinkUrl","routes","coverageWizard","options","showFindPlansNowHelpDrawer","setShowFindPlansNowHelpDrawer","useState","activeTooltip","showErrorOnTop","toggleFindPlansNowHelpDrawer","x","getChoiceContainerClassName","ChoiceList","choices","CoverageSelectorCoverageType","MAPD","label","choiceIdMap","PlanTypeSubHeader","message","value","checked","PDP","MedigapPolicy","errorMessage","errorMessageClassName","errorPlacement","name","onChange","e","currentTarget","type","Link","to","onClick","AnalyticsActionType","SEND_INTERNAL_LINK_CLICKED_EVENT","settings","linkText","linkUrl","PlanTypeHelpDrawer","MctHelpDrawer","closeDrawer","large","drawerTitle","MedigapHelpDrawerContents","PlanTypeStepActions","findPlansButtonText","handleGoBack","goBackText","Button","SEND_BUTTON_ENGAGEMENT_EVENT","button","buttonStyle","AnalyticsButtonStyle","TRANSPARENT","buttonType","AnalyticsButtonType","BUTTON","ZipcodeAndCoverageYearStep","countiesErrorState","currentFips","initialFips","onCountyChange","onCoverageYearChange","onZipcodeChange","selectedCoverageYear","zipcodeErrorState","mctCurrentPlanYear","useCurrentPlanYear","isOpenEnrollmentNextYearOnly","isPublicPreview","isOpenEnrollment","useYearPart","isFetching","useCounties","nextPlanYear","showCoverageYearSelector","Choice","target","TextField","labelClassName","error","defaultValue","InlineError","length","map","county","fips","defaultChecked","state","JSON","stringify","ZipcodeAndCoverageYearStepActions","handleCancel","isInModal","onClickContinue","continueButtonText","cancelButtonText","PRIMARY","ActiveStep","CoverageSelectorV2","_currentFormValues$co2","showContinueWithoutLoggingIn","onFindPlans","analyticsEventAction","skipZipcode","defaultFormValues","history","useHistory","initialFormValues","useInitialFormValues","destinationMap","useCoverageSelectorDestinationMap","flags","useFlags","getYearPartInfo","showZipcodeErrors","setShowZipcodeErrors","showCoverageTypeErrors","setShowCoverageTypeErrors","currentFormValues","setCurrentFormValues","coverageYear","activeStep","setActiveStep","PLAN_TYPE","ZIPCODE","topOfPageRef","useRef","url","window","location","href","split","destination","search","analyticsButton","useMemo","SUBMIT","hasCounty","hasCoverageType","defaultCounty","errorFetchingCounties","useDefaultCounty","CoverageSelectorErrorType","API","_currentFormValues$zi","isValidZipcode","MISSING","INVALID","triggerErrors","useCallback","zipcodeInput","ActionType","UPDATE_ZIPCODE","payload","_currentFormValues$co","preventDefault","UPDATE_FIPS","navigateToPlans","push","handleFindPlans","isCoverageSelectorSelectedValues","updateStates","sendCoverageSelectorAnalytics","goBackToZipCode","useEffect","ref","onSubmit","current","scrollTo","top","offsetTop","behavior","parse","selectedZipcode","ship","linkToSHIPHelp","rel","MedicareGovAnchor","urlKey","learnMore","planTypeGa4EventMap","MctPlanTypeCoverageSelector","helpDrawerToggleText","helpDrawerTitle","helperDrawerAnalytics","createSimpleHelpDrawerAnalytics","toggleText","HelpDrawerWrapper","toggleClassName","mctAnalytics","sameTab","language","getLinkWithLanguage","mGovUrls","headerText","activeClassName","maxWidth","remainingProps","fm","useContext","IntlContext","formatMessage","ariaLabelPrefix","ariaLabelContent","messages","toggleButtonClasses","includes","Tooltip","contentHeading","closeButtonLabel","showCloseButton","dialog","placement","getCoverageSelectorDestinationMap","isBEDAPDown","isLoggedIn","pharmacies","prescriptions","pharmacyType","nextRouteForMaOrPdp","hasMailOrderPharmacies","hasMailOrderPharmacy","pharmacyCount","drugsCount","isMissingPharmsOrDrugs","baseRoutes","summary","lisQuestions","drugSearchPreferences","searchResults","getNextRouteFromCoverageSelector","medigap","plans","useIsBEDAPDown","useLoggedIn","beneficiary","_ref3","mailing_address","fips_state_county","getInitialFormValues","fipsParam","zipcodeParam","arguments","initialZip","isError","foundCounty","find","planTypeMap","PlanType","coverageSelectorValues","_coverageSelectorValu","UPDATE_YEAR","toString","UPDATE_COUNTY","UPDATE_PLAN_TYPE","_ref4","SEND_GA4_EVENT","event_name","Ga4Event","PLAN_FINDER_STARTED","event_type","Ga4EventType","UI_INTERACTION","link_text","link_url","mct_plan_type","mct_plan_year","SEND_TEALIUM_EVENT","event_action","event_label","validZipcode","data","useQuery","queryKey","QueryKey","Counties","queryFn","getCounties","enabled","staleTime","StaleTime","Infinite","retry"],"sourceRoot":""}