{"version":3,"file":"js/2556-995ec9bfc7e9d7427f68.chunk.js","mappings":"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","sources":["webpack://halo/./app/client/src/components/Cards/BaseCardWide.tsx","webpack://halo/./app/client/src/components/Cards/RequestForStartupCardWide.tsx","webpack://halo/./app/client/src/components/CopyLink/CopyLink.tsx","webpack://halo/./app/client/src/components/CopyLink/index.js","webpack://halo/./app/client/src/requests/requestForStartups.ts","webpack://halo/./app/client/src/components/FollowButton/FollowButton.tsx","webpack://halo/./app/client/src/components/FollowButton/index.js","webpack://halo/./app/client/src/views/CommercialApplicationPage/ShareResearchModal.jsx","webpack://halo/./app/client/src/views/CommercialApplicationPage/CommercialApplicationPageCtas.tsx","webpack://halo/./app/client/src/requests/commercialApplications.ts","webpack://halo/./app/client/src/views/CommercialApplicationPage/CommercialApplicationPage.tsx","webpack://halo/./app/client/src/views/RequestForStartupPage/Status.tsx"],"sourcesContent":["import { CompanyAvatar, Tag, XMoreWrapper } from \"@components/library\";\nimport { COLORS, FONTS, STYLES, WINDOW_DIMENSIONS } from \"@constants\";\nimport { RootState } from \"@redux/store\";\nimport { ReactNode, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport styled from \"styled-components\";\n\ninterface Props {\n  to: string | Record<string, unknown>;\n  isExternalLink?: boolean;\n  openInNewTab?: boolean;\n  title: string | ReactNode;\n  subtitle: string | ReactNode;\n  imageUrl: string | null;\n  cornerContent?: ReactNode;\n  tags: string[];\n  buttons?: ReactNode;\n  \"data-testid\"?: string;\n}\n\nexport default function BaseCardWide({\n  to,\n  isExternalLink = false,\n  openInNewTab = false,\n  title,\n  subtitle,\n  imageUrl,\n  cornerContent,\n  tags,\n  buttons,\n  \"data-testid\": dataTestId,\n}: Props) {\n  const [areButtonsHovered, setAreButtonsHovered] = useState(false);\n  const isMobile = useSelector((state: RootState) => state.window.isMobile);\n  const windowWidth = useSelector((state: RootState) => state.window.width);\n  const isCompactLayout = windowWidth <= WINDOW_DIMENSIONS.TABLET_LANDSCAPE;\n\n  return (\n    <CardLink\n      to={!isExternalLink && !areButtonsHovered && !isMobile && to}\n      href={isExternalLink && to}\n      as={isExternalLink ? \"a\" : undefined}\n      target={isExternalLink && openInNewTab ? \"_blank\" : undefined}\n      rel={isExternalLink && openInNewTab ? \"noopener noreferrer\" : undefined}\n    >\n      <Container data-testid={dataTestId}>\n        <Top onMouseOver={() => setAreButtonsHovered(false)}>\n          <Content>\n            <AvatarWrapper>\n              <CompanyAvatar imageUrl={imageUrl} size={isCompactLayout ? \"md\" : \"lg\"} />\n            </AvatarWrapper>\n            <Text>\n              <TitleGroup>\n                <Title>{title}</Title>\n                <Subtitle>{subtitle}</Subtitle>\n              </TitleGroup>\n              <CornerContent shouldWrap={isCompactLayout}>{cornerContent}</CornerContent>\n            </Text>\n          </Content>\n        </Top>\n        <Bottom>\n          <Tags onMouseOver={() => setAreButtonsHovered(false)} data-testid=\"keywords\">\n            <XMoreWrapper maxLines={isCompactLayout ? 2 : 1} maxTags={5}>\n              {tags.map((tag) => (\n                <Tag key={`${title}-tag-${tag}`} content={tag} />\n              ))}\n            </XMoreWrapper>\n          </Tags>\n          <Buttons\n            onMouseEnter={() => setAreButtonsHovered(true)}\n            onMouseLeave={() => setAreButtonsHovered(false)}\n            data-testid=\"buttons\"\n          >\n            {buttons}\n          </Buttons>\n        </Bottom>\n      </Container>\n    </CardLink>\n  );\n}\n\nconst CardLink = styled(Link)`\n  display: block;\n  :visited,\n  :link {\n    color: ${COLORS.BLACK};\n    text-decoration: none;\n  }\n`;\n\nconst Container = styled.div`\n  border: 1px solid ${COLORS.NEUTRAL_250};\n  border-radius: 8px;\n  box-shadow: ${STYLES.SHADOW_CARD};\n  min-width: 0;\n  transition: box-shadow 0.2s ease;\n  &:hover {\n    box-shadow: ${STYLES.SHADOW_A};\n  }\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    &:hover {\n      box-shadow: ${STYLES.SHADOW_CARD};\n    }\n  }\n`;\n\nconst Top = styled.div`\n  display: flex;\n  padding: 24px;\n  gap: 16px;\n  margin-bottom: 32px;\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    padding: 16px;\n  }\n`;\n\nconst Content = styled.div`\n  display: flex;\n  gap: 32px;\n  align-items: flex-start;\n  flex: 1;\n  padding: 8px 8px;\n  min-width: 0;\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    gap: 16px;\n  }\n`;\n\nconst AvatarWrapper = styled.div`\n  flex-shrink: 0;\n  width: 50px;\n  height: 50px;\n  display: flex;\n  align-items: center;\n  min-width: 50px;\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    width: 40px;\n    height: 40px;\n    min-width: 40px;\n  }\n`;\n\nconst Text = styled.div`\n  min-width: 0;\n  flex: 1;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  gap: 8px;\n  @media (min-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE + 1}px) {\n    min-width: 200px;\n  }\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    flex-wrap: wrap;\n    align-items: flex-start;\n  }\n`;\n\nconst TitleGroup = styled.div`\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n  flex: 1;\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    min-width: 100px;\n    flex: 1 1 100px;\n    align-items: flex-start;\n\n  }\n`;\n\nconst Title = styled.div`\n  display: flex;\n  align-items: center;\n  gap: 6px;\n  flex-wrap: nowrap;\n  ${FONTS.HEADING_5_SEMIBOLD};\n  overflow: hidden;\n  margin-bottom: 8px;\n  line-height: 1.4;\n  white-space: normal;\n  > span {\n    overflow: hidden;\n    text-overflow: ellipsis;\n    min-width: 0;\n  }\n  > svg, > div {\n    flex-shrink: 0;\n  }\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    width: 100%;\n  }\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET}px) {\n    ${FONTS.SEMIBOLD_1};\n    line-height: 1.2;\n    width: 100%;\n  }\n`;\n\nconst Subtitle = styled.div`\n  display: flex;\n  align-items: center;\n  text-overflow: ellipsis;\n  ${FONTS.SEMIBOLD_3};\n  color: ${COLORS.NEUTRAL_500};\n  margin-bottom: 0;\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    width: 100%;\n    justify-content: flex-start;\n  }\n`;\n\nconst CornerContent = styled.div`\n  height: fit-content;\n  flex-shrink: 0;\n  white-space: nowrap;  \n  font-size: 14px;\n  color: ${COLORS.NEUTRAL_500};\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    flex: 0 0 max-content;\n    margin-top: 8px;\n    align-self: flex-start;\n    text-align: left;\n    width: 100%;\n  }\n`;\n\nconst Bottom = styled.div`\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 16px 32px;\n  border-top: 1px solid ${COLORS.NEUTRAL_200};\n  gap: 24px;\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    flex-direction: column;\n    align-items: flex-start;\n    padding: 16px 24px;\n    gap: 16px;\n  }\n`;\n\nconst Tags = styled.div`\n  flex: 1;\n  min-width: 0;\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    order: 1;\n    width: 100%;\n    > div {\n      justify-content: flex-start;\n      > div {\n        justify-content: flex-start;\n      }\n    }\n  }\n`;\n\nconst Buttons = styled.div`\n  display: flex;\n  justify-content: flex-end;\n  gap: 8px;\n  flex-shrink: 0;\n  @media (min-width: 961px) {\n    margin-left: auto;\n  }\n  @media (max-width: ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE}px) {\n    order: 3;\n    display: flex;\n    flex-direction: row;\n    flex-wrap: nowrap;\n    width: 100%;\n    margin-top: 8px;\n    justify-content: flex-start;\n    > * {\n      flex: 0 0 auto;\n      white-space: nowrap;\n    }\n  }\n  @media (max-width: ${WINDOW_DIMENSIONS.MOBILE}px) {\n    flex-direction: column;\n    align-items: flex-start;\n    width: 100%;\n    > * {\n      width: auto;\n    }\n  }\n`;","import { Button, Icon } from \"@components/library\";\nimport { COLORS, FONTS } from \"@constants\";\nimport useFollowRequest from \"@hooks/useFollowRequest\";\nimport { RootState } from \"@redux/store\";\nimport { SegmentEventName } from \"@tsTypes/__generated__/enums\";\nimport BaseCardWide from \"./BaseCardWide\";\n// @ts-ignore\nimport { CompanyVerificationStatus } from \"@tsTypes/companies.js.erb\";\nimport { RequestForStartupForCard } from \"@tsTypes/request_for_startups\";\nimport { LaunchableRequestStatus } from \"@tsTypes/requests\";\nimport { track } from \"@utils/appUtils\";\nimport { getLaunchableRequestStatus, requestPageUrlPath } from \"@utils/requestUtils\";\nimport { useSelector } from \"react-redux\";\nimport Status from \"src/views/RequestForStartupPage/Status\";\nimport styled from \"styled-components\";\nimport { WINDOW_DIMENSIONS } from \"@constants\";\n\ninterface Props {\n  request: RequestForStartupForCard;\n}\n\nexport default function RequestForStartupCardWide({ request }: Props) {\n  const currentUser = useSelector((state: RootState) => state.profiles.currentUser);\n  const windowWidth = useSelector((state: RootState) => state.window.width);\n  const isCompactLayout = windowWidth <= WINDOW_DIMENSIONS.TABLET_LANDSCAPE;\n\n  const { handleFollowRequest, isUserFollowing } = useFollowRequest(request.id);\n\n  const handleNotify = (e) => {\n    e.preventDefault();\n\n    if (request.requestable.has_page) {\n      track(SegmentEventName.Click, {\n        ui_component: \"Notify Me Button\",\n        react_component: \"RequestForStartupCardWide\",\n        request_slug: request.slug,\n      });\n    } else {\n      track(SegmentEventName.Click, {\n        ui_component: \"Notify Me Button - Offsite\",\n        react_component: \"RequestForStartupCardWide\",\n        logged_in: Boolean(currentUser.id),\n      });\n    }\n\n    handleFollowRequest();\n  };\n\n  const { has_page, external_url, parent_program } = request.requestable;\n\n  const status = getLaunchableRequestStatus(request as any);\n\n  let button = (\n    <Button\n      size=\"sm\"\n      type=\"button\"\n      variant=\"primary\"\n      to={requestPageUrlPath(request)}\n      iconName=\"Easy Apply\"\n      iconPosition=\"left\"\n      onClick={() =>\n        track(SegmentEventName.Click, {\n          ui_component: \"Easy Apply Button\",\n          react_component: \"RequestForStartupCardWide\",\n          request_slug: request.slug,\n          is_external_link: !request.requestable.has_page,\n        })\n      }\n    >\n      Easy apply\n    </Button>\n  );\n  if (external_url || !has_page) {\n    button = (\n      <Button\n        size=\"sm\"\n        type=\"button\"\n        variant=\"primary\"\n        to={has_page ? requestPageUrlPath(request) : external_url!}\n        isExternalLink={!has_page}\n        openInNewTab={!has_page}\n        iconName={!has_page ? \"Open in a new tab\" : undefined}\n        onClick={() =>\n          track(SegmentEventName.Click, {\n            ui_component: \"Learn More Button\",\n            react_component: \"RequestForStartupCardWide\",\n            request_slug: request.slug,\n            is_external_link: !request.requestable.has_page,\n          })\n        }\n      >\n        Learn more\n      </Button>\n    );\n  }\n  if (\n    status === LaunchableRequestStatus.COMING_SOON ||\n    (status === LaunchableRequestStatus.CLOSED && request.requestable.deadline) ||\n    status === LaunchableRequestStatus.IN_EXTENSION\n  ) {\n    if (isUserFollowing) {\n      button = (\n        <OptedIn>\n          <Icon name=\"Success\" color={COLORS.GREEN} size=\"sm\" />\n          You&apos;ll be notified\n        </OptedIn>\n      );\n    } else {\n      button = (\n        <Button size=\"sm\" type=\"button\" variant=\"primary\" iconName=\"Bell\" onClick={handleNotify}>\n          Notify me\n        </Button>\n      );\n    }\n  }\n\n  return (\n    <span\n      onClick={() =>\n        track(SegmentEventName.Click, {\n          ui_component: \"Request for Startup Card\",\n          request_slug: request.slug,\n        })\n      }\n    >\n      <BaseCardWide\n        to={has_page ? requestPageUrlPath(request) : external_url!}\n        isExternalLink={!has_page}\n        openInNewTab={!has_page}\n        title={`${parent_program ? `${parent_program}: ` : \"\"}${request.title}`}\n        subtitle={\n          <SubtitleWrapper>\n            <SubtitleText>\n              {\"private_alias\" in request.company\n                ? request.company.private_alias\n                : request.company.company_name}\n            </SubtitleText>\n            {request.company.verification_status === CompanyVerificationStatus.VERIFIED && (\n              <StyledIcon name=\"Verified\" size=\"sm\" color={COLORS.HALO_BLUE} />\n            )}\n          </SubtitleWrapper>\n        }\n        imageUrl={\"avatar\" in request.company ? request.company.avatar.url : null}\n        cornerContent={\n          <Status\n            request={request as any}\n            iconPosition=\"right\"\n            hasUnknownLaunchDate={request.requestable.unknown_launch_date}\n            useCompactText={windowWidth <= WINDOW_DIMENSIONS.TABLET}\n          />\n        }\n        tags={request.areas_of_expertise}\n        buttons={button}\n      />\n    </span>\n  );\n}\n\nconst OptedIn = styled.div`\n  display: flex;\n  align-items: center;\n  gap: 4px;\n  height: 36px;\n  color: ${COLORS.GREEN};\n  ${FONTS.REGULAR_2}\n`;\n\nconst SubtitleWrapper = styled.div`\n  display: inline-flex;\n  flex-wrap: nowrap;\n  align-items: center;\n  gap: 4px;\n`;\n\nconst SubtitleText = styled.span`\n  width: 100%;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  display: -webkit-box;\n  white-space: normal;\n  -webkit-box-orient: vertical;\n  -webkit-line-clamp: 1;\n  padding-right: .5rem;\n`;\n\nconst StyledIcon = styled(Icon)`\n  flex-shrink: 0;\n`;\n","import toast from \"@components/Toast\";\nimport { Button } from \"@components/library\";\nimport { RootState } from \"@redux/store\";\nimport { copyLinkToClipboard } from \"@utils/textUtils\";\nimport React, { memo } from \"react\";\nimport { useSelector } from \"react-redux\";\n\ninterface CopyLinkProps {\n  link?: string;\n}\n\nconst CopyLink: React.FC<CopyLinkProps> = ({ link }) => {\n  const currentUser = useSelector((state: RootState) => state.profiles.currentUser);\n\n  const handleCopy = async () => {\n    try {\n      await copyLinkToClipboard(currentUser?.id, link);\n      toast.success(\"Copied!\");\n    } catch (error) {\n      toast.error(\"Failed to copy link\");\n    }\n  };\n\n  return (\n    <Button type=\"button\" iconName=\"Copy\" variant=\"secondary\" width=\"100%\" onClick={handleCopy}>\n      Copy Link\n    </Button>\n  );\n};\n\nexport default memo(CopyLink);\n","import CopyLink from \"./CopyLink\";\n\nexport default CopyLink;\n","import { request_for_startups_path } from \"@routes/routes\";\nimport { CommercialApplicationPageRequestForStartupsResponse } from \"@tsTypes/index\";\nimport { RequestForStartupIndexResponse } from \"@tsTypes/request_for_startups\";\nimport { RequestForStartupMarketplaceFilterOptionsResponse } from \"@tsTypes/request_for_startups/marketplace_filter_options\";\nimport { RequestForStartupsShowResponse } from \"@tsTypes/request_for_startups/show\";\nimport api from \"./request\";\n\nexport const getMarketplaceRequestForStartups = async ({\n  searchFilter,\n  commercialApplicationsFilter,\n}: {\n  searchFilter: string;\n  commercialApplicationsFilter: string[];\n}): Promise<RequestForStartupIndexResponse> => {\n  const response = await api.get(\"/request_for_startups\", {\n    params: {\n      options: {\n        search_filter: searchFilter,\n        commercial_applications_filter: commercialApplicationsFilter,\n      },\n    },\n  });\n  return response.data.requests;\n};\n\nexport const getMarketplaceRequestForStartupsFilterOptions =\n  async (): Promise<RequestForStartupMarketplaceFilterOptionsResponse> => {\n    const response = await api.get(\"/request_for_startup_marketplace_filter_options\");\n    return response.data;\n  };\n\nexport const getCommercialApplicationPageRequestForStartups = async (\n  commercialApplicationId: number,\n  pageNum: number\n): Promise<CommercialApplicationPageRequestForStartupsResponse> => {\n  const response = await api.get(request_for_startups_path(), {\n    params: {\n      commercial_application_id: commercialApplicationId,\n      page_num: pageNum,\n    },\n  });\n\n  return response.data;\n};\n\nexport const getRequestForStartup = async (\n  slug: string\n): Promise<RequestForStartupsShowResponse> => {\n  const response = await api.get(`/request_for_startups/${slug}`);\n  if (response.data.redirect) {\n    window.location.href = response.data.redirect;\n  }\n  return response.data.request;\n};\n","import { Button } from \"@components/library\";\nimport { useEffect, useState } from \"react\";\n\ninterface Props {\n  disabled?: boolean;\n  onClick: () => void;\n  isFollowing: boolean;\n  variant?: \"primary\" | \"secondary\";\n  margin?: string | 0;\n  companyName?: string;\n  size?: \"sm\" | \"md\";\n}\n\nconst FollowButton = ({\n  disabled,\n  onClick,\n  isFollowing,\n  variant = \"primary\",\n  margin = 0,\n  companyName,\n  size = \"md\",\n}: Props) => {\n  const [buttonText, setButtonText] = useState(\"Follow\");\n\n  useEffect(() => {\n    setButtonText(isFollowing ? \"Following\" : \"Follow\");\n  }, [isFollowing]);\n\n  return (\n    <Button\n      disabled={disabled}\n      variant={variant}\n      onClick={onClick}\n      onMouseEnter={() => isFollowing && setButtonText(\"Unfollow\")}\n      onMouseLeave={() => setButtonText(isFollowing ? \"Following\" : \"Follow\")}\n      width=\"100%\"\n      margin={margin}\n      size={size}\n    >\n      {buttonText}\n      {companyName && ` ${companyName}`}\n    </Button>\n  );\n};\n\nexport default FollowButton;\n","import FollowButton from \"./FollowButton\";\n\nexport default FollowButton;\n","import { Button } from \"@components/library\";\nimport toast from \"@components/Toast\";\nimport { COLORS, JS_FONTS } from \"@constants\";\nimport { authenticityToken } from \"@utils/requests\";\nimport { css, StyleSheet } from \"aphrodite\";\nimport axios from \"axios\";\nimport PropTypes from \"prop-types\";\nimport { PureComponent } from \"react\";\nimport { Modal } from \"semantic-ui-react\";\n\nconst styles = StyleSheet.create({\n  ShareResearchModal_modal: {\n    width: \"380px\",\n  },\n  ShareResearchModal_content: {\n    padding: \"2em 1.5em\",\n  },\n  ShareResearchModal_modalTextArea: {\n    width: \"100%\",\n    margin: \"auto\",\n    padding: \"10px\",\n    ...JS_FONTS.REGULAR_2,\n  },\n  ShareResearchModal_modalInput: {\n    width: \"100%\",\n    margin: \"0px auto 5px\",\n    padding: \"16px\",\n    borderStyle: \"solid\",\n    borderWidth: \"1px\",\n    ...JS_FONTS.REGULAR_3,\n  },\n  ShareResearchModal_modalButtonHolder: {\n    width: \"100%\",\n    display: \"inline-block\",\n    textAlign: \"right\",\n    marginTop: \"24px\",\n  },\n  ShareResearchModal_header: {\n    ...JS_FONTS.HEADING_4_SEMIBOLD,\n    color: COLORS.BLACK,\n    textAlign: \"center\",\n    margin: \"0 auto 25px\",\n  },\n  ShareResearchModal_smallText: {\n    ...JS_FONTS.REGULAR_3,\n    margin: \"6px auto 12px\",\n  },\n  ShareResearchModal_messageToggle: {\n    paddingLeft: \"9px\",\n    textDecoration: \"underline\",\n    cursor: \"pointer\",\n    color: COLORS.HALO_BLUE,\n  },\n});\n\nconst initialState = {\n  sending: false,\n  message: \"\",\n  toEmails: \"\",\n  isExpanded: false,\n};\n\nclass ShareResearchModal extends PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = initialState;\n  }\n\n  componentDidUpdate(prevProps) {\n    if (prevProps.open !== this.props.open) {\n      this.setState(initialState);\n    }\n  }\n\n  handleSubmitMessage = async (e) => {\n    const { closeShareResearchModal, slug } = this.props;\n\n    e.preventDefault();\n\n    const { message, isExpanded, toEmails } = this.state;\n\n    this.setState({\n      sending: true,\n    });\n\n    const data = {\n      message: isExpanded && message.length ? message : null,\n      commercial_application: slug,\n      email: toEmails,\n    };\n    try {\n      const responseJson = await axios.post(\"/notifications/share_commercial_application\", data, {\n        headers: {\n          Accept: \"application/json\",\n          \"X-CSRF-Token\": authenticityToken(),\n        },\n      });\n      if (!responseJson.data.success) {\n        this.setState({\n          sending: false,\n        });\n      } else {\n        this.setState({\n          message: \"\",\n          sending: false,\n        });\n        closeShareResearchModal();\n        toast.success(\"Your invite has been sent!\");\n      }\n    } catch (err) {\n      this.setState({ sending: false });\n    }\n  };\n\n  handleChange = (e, attr) => {\n    this.setState({ [attr]: e.target.value });\n  };\n\n  render() {\n    const { open, requestForProposal, closeShareResearchModal, showResearchName } = this.props;\n\n    const { message, toEmails, isExpanded, sending } = this.state;\n\n    return (\n      <Modal\n        open={open}\n        onClose={closeShareResearchModal}\n        size=\"tiny\"\n        className={`${css(styles.ShareResearchModal_modal)} scrolling`}\n      >\n        <Modal.Content className={`${css(styles.ShareResearchModal_content)} scrolling`}>\n          <div className={css(styles.ShareResearchModal_header)}>\n            Share opportunities in {this.props.humanFriendlyResearchName.toLowerCase()}\n          </div>\n          <div>\n            <input\n              type=\"text\"\n              className={css(styles.ShareResearchModal_modalInput)}\n              placeholder=\"Enter emails separated by commas\"\n              value={toEmails}\n              onChange={(e) => this.handleChange(e, \"toEmails\")}\n            />\n          </div>\n          <div className={css(styles.ShareResearchModal_smallText)}>\n            {isExpanded ? (\n              \"Remove custom message\"\n            ) : (\n              <>\n                <span>(Optional)</span>\n                <a\n                  className={css(styles.ShareResearchModal_messageToggle)}\n                  onClick={() => {\n                    this.setState({ isExpanded: !this.state.isExpanded });\n                  }}\n                >\n                  Add message\n                </a>\n              </>\n            )}\n          </div>\n          {isExpanded && (\n            <div>\n              <textarea\n                className={css(styles.ShareResearchModal_modalTextArea)}\n                placeholder=\"Enter message here\"\n                value={message}\n                rows={5}\n                onChange={(e) => this.handleChange(e, \"message\")}\n              />\n            </div>\n          )}\n          <div className={css(styles.ShareResearchModal_modalButtonHolder)}>\n            <Button\n              type=\"button\"\n              width=\"100%\"\n              disabled={sending || !this.state.toEmails.length}\n              onClick={this.handleSubmitMessage}\n            >\n              Send\n            </Button>\n          </div>\n        </Modal.Content>\n      </Modal>\n    );\n  }\n}\n\nShareResearchModal.propTypes = {\n  humanFriendlyResearchName: PropTypes.string,\n  open: PropTypes.bool,\n  closeShareResearchModal: PropTypes.func,\n};\n\nexport default ShareResearchModal;\n","import CopyLink from \"@components/CopyLink\";\nimport FollowButton from \"@components/FollowButton\";\nimport { Button } from \"@components/library\";\nimport toast from \"@components/Toast\";\nimport { COLORS, STYLES } from \"@constants\";\nimport { setCurrentUser, toggleLoginModal } from \"@redux/actions/profileActions\";\nimport { RootState } from \"@redux/store\";\nimport { toggleFollowCommercialApplication } from \"@requests/commercialApplications\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { ShowCommercialApplication } from \"@tsTypes/index\";\nimport { t } from \"@utils/i18n\";\nimport { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport styled from \"styled-components\";\nimport ShareResearchModal from \"./ShareResearchModal\";\n\ninterface Props {\n  commercialApplication: ShowCommercialApplication;\n}\n\nconst CommercialApplicationPageCtas = ({ commercialApplication: { id, name, slug } }: Props) => {\n  const [isShareModalOpen, setIsShareModalOpen] = useState(false);\n\n  const currentUser = useSelector((state: RootState) => state.profiles.currentUser);\n\n  const dispatch = useDispatch();\n\n  const followedIds = currentUser.followed_commercial_application_ids;\n  const isFollowing = followedIds?.includes(id);\n\n  const { mutate: toggleFollow, isLoading: isLoadingToggleFollow } = useMutation({\n    mutationFn: () => toggleFollowCommercialApplication(id),\n    onSuccess: () => {\n      dispatch(\n        setCurrentUser({\n          ...currentUser,\n          followed_commercial_application_ids: isFollowing\n            ? followedIds.filter((followedId) => followedId !== id)\n            : [...followedIds, id],\n        })\n      );\n\n      toast.success(`You are ${isFollowing ? \"no longer\" : \"now\"} following ${name}`);\n    },\n  });\n\n  const requireLoggedIn = (callback: Function) => {\n    if (!currentUser.id) {\n      dispatch(\n        toggleLoginModal({\n          open: true,\n        })\n      );\n      return;\n    }\n\n    callback();\n  };\n\n  return (\n    <>\n      <ShareResearchModal\n        humanFriendlyResearchName={name}\n        slug={slug}\n        open={isShareModalOpen}\n        closeShareResearchModal={() => setIsShareModalOpen(false)}\n      />\n      <Container>\n        <FollowButton\n          onClick={() => requireLoggedIn(toggleFollow)}\n          disabled={isLoadingToggleFollow}\n          isFollowing={isFollowing}\n        />\n        <Button\n          onClick={() => requireLoggedIn(() => setIsShareModalOpen(true))}\n          variant=\"secondary\"\n          iconName=\"Share\"\n        >\n          {t(\"pages.commercial_application_page.ctas.share\")}\n        </Button>\n        <CopyLink />\n      </Container>\n    </>\n  );\n};\n\nexport default CommercialApplicationPageCtas;\n\nconst Container = styled.div`\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n  min-width: 280px;\n  height: fit-content;\n  margin-bottom: 16px;\n  padding: 24px;\n  border-radius: 8px;\n  border: 1px solid ${COLORS.NEUTRAL_250};\n  box-shadow: ${STYLES.SHADOW_B};\n`;\n","import {\n  commercial_application_path,\n  toggle_follow_commercial_applications_path,\n} from \"@routes/routes\";\nimport { CommercialApplicationsShowResponse } from \"@tsTypes/index\";\nimport { default as api } from \"./request\";\n\nexport const getCommercialApplication = async (\n  slug: string\n): Promise<CommercialApplicationsShowResponse> => {\n  const response = await api.get(commercial_application_path(slug));\n  return response.data;\n};\n\nexport const toggleFollowCommercialApplication = async (\n  commercialApplicationId: number\n): Promise<CommercialApplicationsShowResponse> => {\n  const response = await api.post(\n    toggle_follow_commercial_applications_path({\n      commercial_application_id: commercialApplicationId,\n    })\n  );\n  return response.data;\n};\n","import RequestForStartupCardWide from \"@components/Cards/RequestForStartupCardWide\";\nimport { Icon, PageContainer, Pagination, Tabs, TextLink } from \"@components/library\";\nimport RfpCard from \"@components/RfpCard/RfpCard\";\nimport toast from \"@components/Toast/Toast\";\nimport { COLORS, FONTS, WINDOW_DIMENSIONS } from \"@constants\";\nimport { RootState } from \"@redux/store\";\nimport { getCommercialApplication } from \"@requests/commercialApplications\";\nimport { getCommercialApplicationPageRequestForStartups } from \"@requests/requestForStartups\";\nimport { getCommercialApplicationPageRequests } from \"@requests/requests\";\nimport { marketplacePath } from \"@routes/utils\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { t } from \"@utils/i18n\";\nimport { toastErrorHandler } from \"@utils/requests\";\nimport { sortMarketplaceRequests } from \"@utils/requestUtils\";\nimport { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport { Loader } from \"semantic-ui-react\";\nimport styled from \"styled-components\";\nimport { SortBy } from \"../Marketplace/RespondToRequests\";\nimport CommercialApplicationPageCtas from \"./CommercialApplicationPageCtas\";\n\ntype Tab = \"REQUESTS\" | \"STARTUP_PROGRAMS\";\n\nconst NUM_CARDS_PER_PAGE = 15;\n\nconst CommercialApplicationPage = () => {\n  const [activeTab, setActiveTab] = useState<Tab>(\"REQUESTS\");\n  const [pageNum, setPageNum] = useState(1);\n\n  const isMobile = useSelector((state: RootState) => state.window.isMobile);\n\n  const { commercial_application } = useParams();\n\n  const history = useHistory();\n\n  const { data: commercialApplicationData } = useQuery({\n    queryKey: [\"getCommercialApplication\", commercial_application],\n    queryFn: () => getCommercialApplication(commercial_application),\n    onError: toastErrorHandler,\n  });\n  const commercialApplication = commercialApplicationData?.commercial_application;\n\n  const { data: requestsData } = useQuery({\n    queryKey: [\"getCommercialApplicationPageRequests\", commercial_application, pageNum],\n    queryFn: () =>\n      getCommercialApplicationPageRequests(\n        commercialApplicationData!.commercial_application.id,\n        pageNum\n      ),\n    enabled:\n      Boolean(commercialApplicationData?.commercial_application.id) && activeTab === \"REQUESTS\",\n    onError: toastErrorHandler,\n  });\n\n  const { data: startupProgramsData } = useQuery({\n    queryKey: [\"getCommercialApplicationPageRequestForStartups\", commercial_application, pageNum],\n    queryFn: () =>\n      getCommercialApplicationPageRequestForStartups(\n        commercialApplicationData!.commercial_application.id,\n        pageNum\n      ),\n    enabled:\n      Boolean(commercialApplicationData?.commercial_application.id) &&\n      activeTab === \"STARTUP_PROGRAMS\",\n    onError: toastErrorHandler,\n  });\n\n  useEffect(() => {\n    setPageNum(1);\n  }, [activeTab]);\n\n  if (\n    commercialApplicationData &&\n    commercialApplication &&\n    commercialApplicationData.respond_to_requests_count +\n      commercialApplicationData.startup_programs_count ===\n      0\n  ) {\n    toast.error(`No requests found for ${commercialApplication.name.toLowerCase()}.`);\n    history.push(marketplacePath(\"requests\"));\n  }\n\n  const tabs: { key: Tab; label: string }[] = [];\n  if (Number(commercialApplicationData?.respond_to_requests_count) > 0) {\n    tabs.push({\n      key: \"REQUESTS\",\n      label: t(\"pages.commercial_application_page.tabs.requests\"),\n    });\n  }\n  if (Number(commercialApplicationData?.startup_programs_count) > 0) {\n    tabs.push({\n      key: \"STARTUP_PROGRAMS\",\n      label: t(\"pages.commercial_application_page.tabs.startup_programs\"),\n    });\n  }\n\n  if (requestsData) {\n    sortMarketplaceRequests({\n      requests: requestsData.requests,\n      scores: {},\n      sort: SortBy.RELEVANCE,\n    });\n  }\n\n  return (\n    <PageContainer hasPaddingTop={false}>\n      <Breadcrumb>\n        <TextLink to={marketplacePath(\"requests\")} font={FONTS.MEDIUM_2}>\n          <Icon name=\"Chevron Left\" margin=\"0 4px 0 -8px\" />\n          {t(\"pages.commercial_application_page.breadcrumb\")}\n        </TextLink>\n      </Breadcrumb>\n      {commercialApplicationData ? (\n        <>\n          <Hero imageUrl={commercialApplication?.banner_image.url}>\n            <HeroText>{commercialApplication?.name}</HeroText>\n          </Hero>\n          <Content>\n            <Main>\n              <Description>{commercialApplication?.description}</Description>\n              <Tabs\n                activeTab={activeTab}\n                setActiveTab={(newTab) => {\n                  setActiveTab(newTab as Tab);\n                }}\n                tabs={tabs}\n                activeColor={COLORS.HALO_BLUE}\n                tabDistance={isMobile ? \"24px\" : \"56px\"}\n                font={FONTS.SEMIBOLD_1}\n              />\n              {(() => {\n                if (activeTab === \"REQUESTS\") {\n                  return requestsData ? (\n                    <RequestCards>\n                      {requestsData?.requests.map((request) => (\n                        <RfpCard\n                          key={request.id}\n                          request={request}\n                          // TODO: (TGAP4) based on Redux usage discussion\n                          // onClick={() => handleNotify(request)}\n                          // isUserFollowing={isUserFollowingRequest(request.id)}\n                          fromHref={window.location.pathname + window.location.search}\n                        />\n                      ))}\n                    </RequestCards>\n                  ) : (\n                    <Loader inline=\"centered\" active style={{ marginTop: 80 }} />\n                  );\n                }\n                return startupProgramsData ? (\n                  <StartupProgramCards>\n                    {startupProgramsData.requests.map((request) => (\n                      <RequestForStartupCardWide key={request.id} request={request} />\n                    ))}\n                  </StartupProgramCards>\n                ) : (\n                  <Loader inline=\"centered\" active style={{ marginTop: 80 }} />\n                );\n              })()}\n              <Pagination\n                currentPage={pageNum}\n                setCurrentPage={(newPageNum) => setPageNum(newPageNum)}\n                totalPages={Math.ceil(\n                  Number(\n                    activeTab === \"REQUESTS\"\n                      ? commercialApplicationData.respond_to_requests_count\n                      : commercialApplicationData.startup_programs_count\n                  ) / NUM_CARDS_PER_PAGE\n                )}\n                marginTop=\"56px\"\n              />\n            </Main>\n            <CommercialApplicationPageCtas commercialApplication={commercialApplication!} />\n          </Content>\n        </>\n      ) : (\n        <Loader inline=\"centered\" active style={{ marginTop: 120 }} />\n      )}\n    </PageContainer>\n  );\n};\n\nexport default CommercialApplicationPage;\n\nconst Breadcrumb = styled.div`\n  margin: 24px 0;\n`;\nconst Hero = styled.div`\n  display: flex;\n  align-items: flex-end;\n  height: 264px;\n  margin-bottom: 64px;\n  padding: 32px;\n  background-image: url(${({ imageUrl }) => imageUrl});\n  background-position: center;\n  background-size: cover;\n  border-radius: 12px;\n  ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE_MEDIA_QUERY} {\n    margin-bottom: 48px;\n  }\n`;\nconst HeroText = styled.h1`\n  ${FONTS.HEADING_BANNER};\n  color: ${COLORS.WHITE};\n  ${WINDOW_DIMENSIONS.MOBILE_MEDIA_QUERY} {\n    ${FONTS.HEADING_JUMBO};\n  }\n`;\nconst Content = styled.div`\n  display: flex;\n  justify-content: space-between;\n  gap: 32px;\n  ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE_MEDIA_QUERY} {\n    flex-direction: column-reverse;\n  }\n`;\nconst Main = styled.div`\n  display: flex;\n  flex-direction: column;\n  gap: 48px;\n`;\nconst Description = styled.div`\n  ${FONTS.HEADING_3_REGULAR};\n`;\nconst RequestCards = styled.div`\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  grid-gap: 32px;\n  max-width: 2350px;\n  ${WINDOW_DIMENSIONS.EXTRA_WIDE_MEDIA_QUERY} {\n    grid-template-columns: repeat(4, minmax(0, 1fr));\n  }\n  ${WINDOW_DIMENSIONS.DESKTOP_MEDIA_QUERY} {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n  }\n  ${WINDOW_DIMENSIONS.TABLET_LANDSCAPE_MEDIA_QUERY} {\n    grid-template-columns: minmax(0, 1fr);\n  }\n`;\nconst StartupProgramCards = styled.div`\n  display: flex;\n  flex-direction: column;\n  gap: 32px;\n  position: relative;\n  ${WINDOW_DIMENSIONS.MOBILE_MEDIA_QUERY} {\n    gap: 24px;\n  }\n`;\n","import { Icon } from \"@components/library\";\nimport { IconName } from \"@components/library/Icon/Icon\";\nimport { COLORS, FONTS, WINDOW_DIMENSIONS } from \"@constants\";\nimport { LaunchableRequestStatus } from \"@tsTypes/requests\";\nimport { formatDateToEastern } from \"@utils/dateUtils\";\nimport { t } from \"@utils/i18n\";\nimport { LaunchableRequest, getLaunchableRequestStatus } from \"@utils/requestUtils\";\nimport styled from \"styled-components\";\n\ninterface Props {\n  request: LaunchableRequest;\n  iconPosition?: \"left\" | \"right\";\n  hasUnknownLaunchDate?: boolean;\n  useCompactText?: boolean;\n}\n\nexport default function Status({\n  request,\n  iconPosition = \"left\",\n  hasUnknownLaunchDate = false,\n  useCompactText = false,\n}: Props) {\n  const status = getLaunchableRequestStatus(request);\n\n  let text = \"\";\n  let color = \"\";\n  let background = \"\";\n  let iconName: IconName;\n\n  switch (status) {\n    case LaunchableRequestStatus.ACTIVE:\n      if (request.requestable.deadline) {\n        text = t(\"pages.request_for_startups_page.status.active\", {\n          date: formatDateToEastern(\n            request.requestable.deadline,\n            \"MMM D\" +\n              (new Date(request.requestable.deadline).getFullYear() !== new Date().getFullYear()\n                ? \", yyyy\"\n                : \"\")\n          ),\n        });\n      } else {\n        text = t(\"pages.request_for_startups_page.status.open\");\n      }\n      color = COLORS.GREEN_800;\n      background = COLORS.GREEN_200;\n      iconName = \"Accelerator\";\n      break;\n    case LaunchableRequestStatus.COMING_SOON:\n      text = hasUnknownLaunchDate\n        ? \"Coming soon\"\n        : t(\"pages.request_for_startups_page.status.coming_soon\", {\n            date: formatDateToEastern(\n              request.requestable.launch_date!,\n              \"MMM D\" +\n                (new Date(request.requestable.launch_date!).getFullYear() !==\n                new Date().getFullYear()\n                  ? \", yyyy\"\n                  : \"\")\n            ),\n          });\n      color = COLORS.ORANGE;\n      background = COLORS.ORANGE_300;\n      iconName = \"Accelerator Complete\";\n      break;\n    default:\n      // Handle no date case\n      if (!request.requestable.deadline && !request.requestable.launch_date) {\n        if (request.enabled) {\n          text = \"Applications open\";\n          color = COLORS.GREEN_800;\n          background = COLORS.GREEN_200;\n          iconName = \"Accelerator\";\n        } else {\n          // Unknown status\n          text = \"\";\n        }\n      } else {\n        text = t(\"pages.request_for_startups_page.status.closed\");\n        color = COLORS.NEUTRAL_500;\n        background = COLORS.NEUTRAL_250;\n        iconName = \"Accelerator Complete\";\n      }\n  }\n\n  \n  let statusText = text;\n  if (useCompactText) {\n    if (statusText.toLowerCase().includes(\"applications closed\")) {\n      statusText = \"Closed\";\n    } else if (statusText.toLowerCase().includes(\"applications open\")) {\n      statusText = \"Open\";\n    }\n  }\n\n  return (\n    <Container iconPosition={iconPosition} color={color}>\n      {Number(iconName?.length) > 0 && (\n        <IconContainer background={background}>\n          <Icon name={iconName} size=\"sm\" color={color} />\n        </IconContainer>\n      )}\n      {statusText}\n    </Container>\n  );\n}\n\nconst Container = styled.div`\n  display: flex;\n  flex-direction: ${({ iconPosition }) => (iconPosition === \"left\" ? \"row\" : \"row-reverse\")};\n  align-items: center;\n  gap: 8px;\n  color: ${({ color }) => color};\n  ${FONTS.SEMIBOLD_3}\n  white-space: nowrap;\n  @media (max-width: ${WINDOW_DIMENSIONS.MOBILE_MEDIA_QUERY}px) {\n    text-align: left;\n    float: left;\n  }\n\n`;\n\nconst IconContainer = styled.div`\n  display: flex;\n  justify-content: center;\n  align-items: center;\n\n  width: 26px;\n  height: 26px;\n\n  border-radius: 100%;\n  background: ${({ background }) => background};\n`;\n"],"names":["BaseCardWide","to","isExternalLink","openInNewTab","title","subtitle","imageUrl","cornerContent","tags","buttons","dataTestId","_useState2","_slicedToArray","useState","areButtonsHovered","setAreButtonsHovered","isMobile","useSelector","state","window","isCompactLayout","width","WINDOW_DIMENSIONS","TABLET_LANDSCAPE","_jsx","CardLink","href","as","undefined","target","rel","children","_jsxs","Container","Top","onMouseOver","Content","AvatarWrapper","CompanyAvatar","size","Text","TitleGroup","Title","Subtitle","CornerContent","shouldWrap","Bottom","Tags","XMoreWrapper","maxLines","maxTags","map","tag","Tag","content","Buttons","onMouseEnter","onMouseLeave","styled","Link","COLORS","BLACK","div","NEUTRAL_250","STYLES","SHADOW_CARD","SHADOW_A","FONTS","HEADING_5_SEMIBOLD","TABLET","SEMIBOLD_1","SEMIBOLD_3","NEUTRAL_500","NEUTRAL_200","MOBILE","RequestForStartupCardWide","request","currentUser","profiles","windowWidth","_useFollowRequest","useFollowRequest","id","handleFollowRequest","isUserFollowing","handleNotify","e","preventDefault","requestable","has_page","track","SegmentEventName","Click","ui_component","react_component","request_slug","slug","logged_in","Boolean","_request$requestable","external_url","parent_program","status","getLaunchableRequestStatus","button","Button","type","variant","requestPageUrlPath","iconName","iconPosition","onClick","is_external_link","LaunchableRequestStatus","COMING_SOON","CLOSED","deadline","IN_EXTENSION","OptedIn","Icon","name","color","GREEN","SubtitleWrapper","SubtitleText","company","private_alias","company_name","verification_status","CompanyVerificationStatus","VERIFIED","StyledIcon","HALO_BLUE","avatar","url","Status","hasUnknownLaunchDate","unknown_launch_date","useCompactText","areas_of_expertise","REGULAR_2","span","CopyLink","link","async","copyLinkToClipboard","toast","success","error","memo","getMarketplaceRequestForStartups","searchFilter","commercialApplicationsFilter","api","get","params","options","search_filter","commercial_applications_filter","data","requests","getMarketplaceRequestForStartupsFilterOptions","getCommercialApplicationPageRequestForStartups","commercialApplicationId","pageNum","request_for_startups_path","commercial_application_id","page_num","getRequestForStartup","response","redirect","location","FollowButton","disabled","isFollowing","margin","companyName","buttonText","setButtonText","useEffect","styles","StyleSheet","create","ShareResearchModal_modal","ShareResearchModal_content","padding","ShareResearchModal_modalTextArea","_objectSpread","JS_FONTS","ShareResearchModal_modalInput","borderStyle","borderWidth","REGULAR_3","ShareResearchModal_modalButtonHolder","display","textAlign","marginTop","ShareResearchModal_header","HEADING_4_SEMIBOLD","ShareResearchModal_smallText","ShareResearchModal_messageToggle","paddingLeft","textDecoration","cursor","initialState","sending","message","toEmails","isExpanded","ShareResearchModal","PureComponent","constructor","props","super","handleSubmitMessage","_this$props","this","closeShareResearchModal","_this$state","setState","length","commercial_application","email","axios","headers","Accept","authenticityToken","err","handleChange","attr","value","componentDidUpdate","prevProps","open","render","_this$props2","requestForProposal","_this$state2","showResearchName","Modal","onClose","className","css","humanFriendlyResearchName","toLowerCase","placeholder","onChange","_Fragment","rows","CommercialApplicationPageCtas","commercialApplication","isShareModalOpen","setIsShareModalOpen","dispatch","useDispatch","followedIds","followed_commercial_application_ids","includes","_useMutation","useMutation","mutationFn","post","toggle_follow_commercial_applications_path","toggleFollowCommercialApplication","onSuccess","setCurrentUser","filter","followedId","toggleFollow","mutate","isLoadingToggleFollow","isLoading","requireLoggedIn","callback","toggleLoginModal","t","SHADOW_B","CommercialApplicationPage","activeTab","setActiveTab","_useState4","setPageNum","useParams","history","useHistory","commercialApplicationData","useQuery","queryKey","queryFn","commercial_application_path","getCommercialApplication","onError","toastErrorHandler","requestsData","getCommercialApplicationPageRequests","enabled","startupProgramsData","respond_to_requests_count","startup_programs_count","push","marketplacePath","tabs","Number","key","label","sortMarketplaceRequests","scores","sort","SortBy","RELEVANCE","PageContainer","hasPaddingTop","Breadcrumb","TextLink","font","MEDIUM_2","Hero","banner_image","HeroText","Main","Description","description","Tabs","newTab","activeColor","tabDistance","RequestCards","RfpCard","fromHref","pathname","search","Loader","inline","active","style","StartupProgramCards","Pagination","currentPage","setCurrentPage","newPageNum","totalPages","Math","ceil","TABLET_LANDSCAPE_MEDIA_QUERY","h1","HEADING_BANNER","WHITE","MOBILE_MEDIA_QUERY","HEADING_JUMBO","HEADING_3_REGULAR","EXTRA_WIDE_MEDIA_QUERY","DESKTOP_MEDIA_QUERY","text","background","ACTIVE","date","formatDateToEastern","Date","getFullYear","GREEN_800","GREEN_200","launch_date","ORANGE","ORANGE_300","statusText","IconContainer"],"sourceRoot":""}