{"version":3,"file":"static/chunks/3417.c41b14878cb3ac14.js","mappings":"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","sources":["webpack://_N_E/../design-system/src/components/blocks/tease-feed/tease-feed-tease.tsx","webpack://_N_E/../design-system/src/components/blocks/tease-feed/tease-feed.tsx","webpack://_N_E/../design-system/src/components/primitives/article-tease/article-tease.tsx","webpack://_N_E/../design-system/src/components/system/lazy-component/lazy-component.tsx","webpack://_N_E/../design-system/src/utils/theme.ts","webpack://_N_E/../design-system/src/components/blocks/hierarchical-tease/hierarchical-tease-header.tsx","webpack://_N_E/../design-system/src/components/blocks/hierarchical-tease/hierarchical-tease.tsx","webpack://_N_E/./src/contentful/components/blocks/hierarchical-tease.contentful.tsx","webpack://_N_E/./src/contentful/components/utils/strip-html.ts","webpack://_N_E/./src/contentful/components/utils/use-search.props.ts","webpack://_N_E/./src/contentful/lib/create-contentful-component.tsx","webpack://_N_E/./src/contentful/search/is-search-hit-type.ts","webpack://_N_E/./src/contentful/search/search-highlight.ts","webpack://_N_E/./src/contentful/search/search-article-tease.ts","webpack://_N_E/./src/hooks/use-search.ts","webpack://_N_E/../design-system/src/components/blocks/hierarchical-tease/hierarchical-tease.scss?c146","webpack://_N_E/../design-system/src/components/blocks/tease-feed/tease-feed.scss?cb32","webpack://_N_E/../design-system/src/components/primitives/article-tease/article-tease.scss?6c4f","webpack://_N_E/"],"sourcesContent":["import {\n ExtractLazyComponent,\n LazyComponent,\n} from \"design-system/components/system/lazy-component/lazy-component\";\nimport { TeaseStyle } from \"design-system/types/types\";\nimport { MouseEventHandler } from \"react\";\n\nexport type LazyTeaseFeedTease = ExtractLazyComponent<\n | \"ArticleTease\"\n | \"BookTease\"\n | \"EventFeedTease\"\n | \"ProgramTease\"\n | \"SocialMediaTease\"\n | \"PersonSearchResultTease\"\n | \"VideoTease\"\n>;\n\nexport interface TeaseFeedTeaseProps {\n tease: LazyTeaseFeedTease;\n teaseStyle?: TeaseStyle;\n headingLevel: \"h2\" | \"h3\" | \"h4\" | undefined;\n onClick?: MouseEventHandler;\n}\n\nexport function TeaseFeedTease({\n tease,\n teaseStyle,\n headingLevel,\n}: TeaseFeedTeaseProps) {\n if (!tease.props) return null;\n\n tease.props.style = teaseStyle;\n tease.props.HeadingLevel = headingLevel;\n\n if (tease.name === \"ArticleTease\") {\n tease.props.teaseContext = \"feed\";\n\n if (tease.props.image && tease.props.variant !== \"artwork\") {\n tease.props.image.aspectRatio = \"3/2\";\n }\n if (\n tease.props.image &&\n (tease.props.variant === \"profile\" ||\n tease.props.variant === \"profile-search\")\n ) {\n tease.props.image.aspectRatio = \"1/1\";\n }\n }\n\n if (tease.name === \"BookTease\") {\n tease.props.style = \"content\";\n }\n\n if (tease.name === \"ProgramTease\") {\n if (tease.props.image) tease.props.image.aspectRatio = \"3/2\";\n }\n\n if (tease.name === \"SocialMediaTease\") {\n if (tease.props.image) tease.props.image.aspectRatio = \"1/1\";\n }\n\n return (\n
  • \n \n
  • \n );\n}\n","import \"./tease-feed.scss\";\n\nimport { ChangeEvent, ReactNode, forwardRef } from \"react\";\nimport cn from \"clsx\";\nimport { Alignment, TeaseStyle } from \"design-system/types/types\";\nimport {\n ComponentHeader,\n ComponentHeaderProps,\n} from \"design-system/components/primitives/component-header/component-header\";\nimport { TeaseFeedTease, LazyTeaseFeedTease } from \"./tease-feed-tease\";\n\ninterface TeaseFeedSortByOptionsProps {\n options: Array;\n onChange?: (event: ChangeEvent) => void;\n selectedOption?: string;\n}\n\ninterface TeaseFeedSortByOptions {\n value: string;\n label: string;\n}\n\nexport interface TeaseFeedProps {\n items: Array;\n headerContent?: ComponentHeaderProps;\n HeadingLevel?: \"h2\" | \"h3\";\n HeadingLevelTease?: \"h2\" | \"h3\" | \"h4\";\n align?: Alignment;\n teaseStyle?: TeaseStyle;\n searchInfo?: ReactNode;\n totalHits?: number;\n error?: string;\n sortByOptions?: TeaseFeedSortByOptionsProps;\n}\n\n/**\n * ## See it in use on...\n * - The [search page](/story/example-pages-archive-pages-search-archive--story)\n *\n * - **`id: CB-019-000-06`**\n * - **`data-region: cb__tease-feed__article`**\n */\nexport const TeaseFeed = forwardRef(\n function TeaseFeedWithRef(\n {\n items,\n headerContent,\n align = \"center\",\n teaseStyle = \"expanded\",\n totalHits,\n error,\n searchInfo,\n sortByOptions,\n HeadingLevel = \"h2\",\n HeadingLevelTease,\n },\n ref,\n ) {\n const wrapperClass = cn(\n `hbs-global-align-${align}`,\n \"hbs-component--tease-feed\",\n );\n const teaseTypes = [\n ...new Set(items.map((item) => item.props?.type).filter(Boolean)),\n ];\n const presentationalVariant =\n teaseTypes.length === 1 ? `__${teaseTypes[0]?.toLowerCase()}` : \"\";\n const dataRegion = `cb__tease-feed${presentationalVariant}`;\n\n return (\n
    \n
    \n {headerContent && (\n \n )}\n\n {(searchInfo || sortByOptions) && (\n
    \n {searchInfo && (\n
    {searchInfo}
    \n )}\n\n {sortByOptions && (\n
    \n

    Sorting By

    \n
    \n \n {sortByOptions.options.map((option, i) => (\n \n ))}\n \n
    \n
    \n )}\n
    \n )}\n\n {items.length > 0 ? (\n
      \n {items.map((tease, i) => (\n \n ))}\n
    \n ) : error ? (\n
    \n

    {error}

    \n
    \n ) : (\n totalHits === 0 && (\n
    \n

    No results found

    \n\n

    Suggestions:

    \n
      \n
    • Make sure all words are spelled correctly.
    • \n
    • Try different keywords.
    • \n
    • Try more general keywords.
    • \n
    • Try fewer keywords.
    • \n
    \n
    \n )\n )}\n
    \n
    \n );\n },\n);\n","import \"./article-tease.scss\";\n\nimport cn from \"clsx\";\nimport { MouseEventHandler, ReactNode } from \"react\";\nimport { MediaAsset } from \"design-system/components/primitives/media-asset/media-asset\";\nimport { MediaAssetImageProps } from \"design-system/components/primitives/media-asset/media-asset-image\";\nimport { MediaAssetVideoProps } from \"design-system/components/primitives/media-asset/media-asset-video\";\nimport { KalturaEmbedProps } from \"design-system/components/primitives/kaltura-embed/kaltura-embed\";\nimport {\n Byline,\n BylineProps,\n} from \"design-system/components/primitives/byline/byline\";\nimport {\n EditAttributes,\n TeaseContext,\n TeaseStyle,\n} from \"design-system/types/types\";\nimport { Icon } from \"design-system/components/icons/icon\";\nimport {\n ExpandedPalette,\n expandedPalette,\n Theme,\n} from \"design-system/utils/theme\";\nimport { isExternalLink } from \"design-system/utils/external\";\nimport { Link } from \"../link/link\";\n\nexport interface ArticleMultiLinkProps {\n title: string;\n link: string;\n}\n\nexport interface DownloadLinkProps {\n label?: string;\n link?: string;\n}\n\nexport interface ArticleTeaseProps {\n type: \"Article\";\n color?: ExpandedPalette;\n customColor?: string;\n byline?: BylineProps;\n overline?: {\n label?: string;\n link?: string;\n };\n image?: MediaAssetImageProps;\n video?: MediaAssetVideoProps;\n kaltura?: KalturaEmbedProps;\n coverImage?: boolean;\n imageInset?: boolean;\n link?: string;\n multiLinks?: Array;\n ariaLabel?: string;\n tease?: ReactNode;\n title?: ReactNode;\n style?: TeaseStyle;\n theme?: Theme;\n isLogo?: boolean;\n isSmall?: boolean;\n showSource?: boolean;\n teaseContext?: TeaseContext;\n HeadingLevel?: \"h2\" | \"h3\" | \"h4\";\n variant?: string;\n onClick?: MouseEventHandler;\n downloadLink?: DownloadLinkProps;\n display?: unknown;\n\n editAttributes?: {\n url?: EditAttributes;\n title?: EditAttributes;\n description?: EditAttributes;\n };\n}\n\nfunction ArticleTeaseDesc({\n desc,\n editAttributes,\n}: {\n desc: ReactNode;\n editAttributes?: ArticleTeaseProps[\"editAttributes\"];\n}) {\n if (!desc) return null;\n\n if (typeof desc === \"string\") {\n return (\n \n );\n }\n\n return (\n
    \n {desc}\n
    \n );\n}\n\n/**\n * ## See it in use on...\n * - An [archive page](/story/example-pages-archive-pages-story-archive--story)\n *\n * - **`id: P-004-000-01`**\n */\nexport function ArticleTease({\n byline,\n color,\n overline,\n customColor,\n image,\n video,\n kaltura,\n coverImage,\n imageInset,\n link,\n multiLinks,\n ariaLabel,\n tease,\n title,\n style = \"expanded\",\n theme,\n isLogo,\n isSmall,\n showSource,\n HeadingLevel = \"h2\",\n editAttributes,\n teaseContext,\n variant,\n onClick,\n downloadLink,\n}: ArticleTeaseProps) {\n const hasAsset = image || kaltura || video;\n const showOverline =\n (overline && style === \"expanded\") ||\n style === \"full\" ||\n style === \"text-only\";\n const showDesc = style === \"full\" || style === \"content\";\n const showByline = style !== \"content\";\n const isCard = style === \"content\" && !hasAsset;\n const isSmallTease = isSmall && style === \"content\";\n const textOnly = style === \"text-only\";\n const useNoImageFallback = !textOnly && !isCard && teaseContext === \"row\";\n const computedTheme = theme\n ? theme\n : useNoImageFallback && !hasAsset && !theme\n ? \"blue\"\n : \"unset\";\n\n let source;\n let host;\n let isExternal: boolean | undefined;\n\n if (link) {\n isExternal = isExternalLink(link);\n }\n\n const arrowClassNames = cn(\n \"hbs-article-tease__arrow-icon hbs-icon\",\n isExternal && \"hbs-article-tease__arrow-icon--external\",\n );\n\n const teaseColorStyle = customColor\n ? {\n backgroundColor: customColor,\n }\n : color\n ? {\n backgroundColor: expandedPalette[color],\n }\n : undefined;\n\n return (\n \n {!isCard && (\n <>\n {image && !textOnly && (\n
    \n \n \n
    \n )}\n\n {video && !textOnly && (\n \n \n \n )}\n\n {kaltura && !textOnly && (\n
    \n \n
    \n )}\n\n \n {showOverline && (\n \n {overline?.link ? (\n {overline.label}\n ) : (\n overline?.label\n )}\n \n )}\n\n \n {!link && title && (\n
    {title}
    \n )}\n\n {link && title && typeof title === \"string\" && (\n \n )}\n {link && title && typeof title !== \"string\" && (\n \n {title}\n \n )}\n \n\n {showDesc && tease && (\n \n )}\n\n {multiLinks && (\n
      \n {multiLinks.map((linkItem) => (\n \n \n {linkItem.title}\n \n \n ))}\n
    \n )}\n\n {byline && showByline && (\n
    \n \n
    \n )}\n {showSource && source && link && host && !downloadLink && (\n
    \n

    From {host}

    \n\n \n {source}\n \n
    \n )}\n {downloadLink && (\n
    \n \n {downloadLink.label}\n \n
    \n )}\n \n \n )}\n\n {isCard && !isSmallTease && (\n \n \n {link ? (\n \n {title}\n \n ) : (\n title\n )}\n \n\n {showDesc && tease && (\n \n )}\n\n {link && (\n
    \n \n
    \n )}\n \n )}\n\n {isCard && isSmallTease && (\n \n
    \n \n {link ? (\n \n {title}\n \n ) : (\n title\n )}\n \n {link && (\n
    \n \n
    \n )}\n
    \n\n {showDesc && tease && (\n \n )}\n \n )}\n \n );\n}\n","import { Suspense } from \"react\";\nimport { ErrorBoundary } from \"design-system/components/system/error-boundary/error-boundary\";\nimport { useLazyComponents } from \"./use-lazy-components\";\nimport type {\n ComponentLibrary,\n ComponentLibraryProps,\n} from \"design-system/components\";\n\nexport type LazyComponentProps = ComponentLibraryProps;\nexport type ExtractLazyComponent = Extract<\n LazyComponentProps,\n { name: N }\n>;\n\nexport function LazyComponent({\n name,\n props,\n children,\n}: LazyComponentProps): JSX.Element | null {\n const { getLazyComponentByName } = useLazyComponents();\n\n const Component = getLazyComponentByName(name);\n\n if (Component) {\n return (\n \n \n {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}\n \n {children &&\n (Array.isArray(children) ? (\n \n ) : (\n \n ))}\n \n \n \n );\n }\n\n console.error(`ERROR: could not find lazy component ${name}`);\n\n return null;\n}\n\ninterface LazyComponentsProps {\n components?: Array;\n}\n\nexport function LazyComponents({ components }: LazyComponentsProps) {\n if (!components || !Array.isArray(components)) return null;\n\n return (\n <>\n {components.map((component, i) => (\n \n ))}\n \n );\n}\n","export type Theme = keyof typeof theme;\nexport type ThemeValue = (typeof theme)[Theme];\n\nexport const theme = {\n light: \"#f6f4f2\",\n white: \"#ffffff\",\n dark: \"#222222\",\n black: \"#000000\",\n crimson: \"#a41034\",\n red: \"#e80538\",\n purple: \"#85609f\",\n blue: \"#aac8eb\",\n} as const;\n\nexport const themeOptions = Object.entries(theme).map(([key]) => key);\n\nexport type SimpleTheme = Exclude;\n\nexport const simpleTheme = Object.entries(theme).filter(\n ([key]) => ![\"purple\", \"blue\"].includes(key),\n);\nexport const simpleThemeOptions = simpleTheme.map(([key]) => key);\n\nexport type SiteHeaderTheme = Theme | \"plain-light\" | \"plain-dark\";\n\nexport const defaultPageSectionTheme = \"light\";\n\nexport function getThemeByValue(hexCode: ThemeValue): Theme {\n return (\n (Object.entries(theme).find(\n ([, value]) => value === hexCode,\n )?.[0] as Theme) || \"light\"\n );\n}\n\nexport type ExpandedPalette = keyof typeof expandedPalette;\nexport type ExpandedPaletteValue = (typeof expandedPalette)[ExpandedPalette];\n\nexport const expandedPalette = {\n crimson: theme.crimson,\n red2: theme.red,\n red3: \"#ED5541\",\n red4: \"#E0B2A7\",\n orange1: \"#AE6429\",\n orange2: \"#E87D1E\",\n orange4: \"#F7C76B\",\n yellow2: \"#EBCD00\",\n yellow3: \"#F3E44D\",\n green1: \"#026833\",\n green2: \"#52A52E\",\n green4: \"#B3D56A\",\n teal1: \"#006085\",\n teal3: \"#56BAB3\",\n teal4: \"#9BD6C4\",\n blue1: \"#3B2883\",\n blue3: \"#7FA4D1\",\n blue4: theme.blue,\n purple1: \"#57116A\",\n purple2: \"#80408D\",\n purple3: \"#9B7FAF\",\n purple4: \"#C6B2D1\",\n magenta1: \"#78244C\",\n magenta2: \"#C9006B\",\n magenta3: \"#D86199\",\n magenta4: \"#E599BA\",\n black: theme.black,\n dark: theme.dark,\n gray2: \"#68666F\",\n gray3: \"#A3A0A2\",\n gray4: \"#D5D0CA\",\n white: theme.white,\n light: theme.light,\n} as const;\n\n// Spot themes that are dark background with light text\nexport const paletteThemesOnDark: Array = [\n \"crimson\",\n \"red2\",\n \"orange1\",\n \"green1\",\n \"teal1\",\n \"blue1\",\n \"purple1\",\n \"purple2\",\n \"magenta1\",\n \"magenta2\",\n \"black\",\n \"dark\",\n \"gray2\",\n];\n\nexport const spotThemeOptions = Object.entries(expandedPalette).map(\n ([key]) => key,\n);\n\nexport const getSplitTopperTheme = (spotTheme: ExpandedPalette | undefined) =>\n spotTheme && paletteThemesOnDark.includes(spotTheme) ? \"dark\" : \"white\";\n\nexport const getLargeAssetTopperTheme = (\n spotTheme: ExpandedPalette | undefined,\n): SiteHeaderTheme => {\n if (spotTheme === \"red2\") return \"red\";\n if (spotTheme === \"blue4\") return \"blue\";\n if (spotTheme && themeOptions.includes(spotTheme)) {\n return spotTheme as SiteHeaderTheme;\n }\n return spotTheme && paletteThemesOnDark.includes(spotTheme)\n ? \"plain-dark\"\n : \"plain-light\";\n};\n\nexport type BackgroundColors = keyof typeof backgroundColors;\nexport type BackgroundColorsValue = (typeof backgroundColors)[BackgroundColors];\n\nexport const backgroundColors = {\n light: theme.light,\n white: theme.white,\n dark: theme.dark,\n black: theme.black,\n crimson: theme.crimson,\n} as const;\n\nexport const backgroundColorsOptions = Object.keys(backgroundColors);\n","import {\n ComponentHeader,\n ComponentHeaderProps,\n} from \"design-system/components/primitives/component-header/component-header\";\nimport {\n CtaLink,\n CtaLinkProps,\n} from \"design-system/components/primitives/cta-link/cta-link\";\nimport { EditAttributes } from \"design-system/types/types\";\nimport { ReactNode } from \"react\";\n\nexport interface HierarchicalTeaseHeaderProps {\n componentHeader?: ComponentHeaderProps;\n\n overline?: string;\n title?: string;\n subheading?: ReactNode;\n cta?: CtaLinkProps;\n\n editAttributes?: {\n title?: EditAttributes;\n overline?: EditAttributes;\n subheading?: EditAttributes;\n };\n}\n\nexport function HierarchicalTeaseHeader({\n componentHeader,\n overline,\n title,\n subheading,\n cta,\n editAttributes,\n}: HierarchicalTeaseHeaderProps) {\n if (componentHeader) {\n return (\n \n );\n }\n\n return (\n
    \n {overline && (\n \n {overline}\n

    \n )}\n {title && (\n \n {title}\n \n )}\n {subheading && (\n \n {subheading}\n
    \n )}\n {cta && (\n
    \n \n {cta.children}\n \n
    \n )}\n \n );\n}\n","import \"./hierarchical-tease.scss\";\n\nimport {\n ArticleTease,\n ArticleTeaseProps,\n} from \"design-system/components/primitives/article-tease/article-tease\";\nimport { TeaseFeed } from \"design-system/components/blocks/tease-feed/tease-feed\";\nimport {\n HierarchicalTeaseHeader,\n HierarchicalTeaseHeaderProps,\n} from \"./hierarchical-tease-header\";\nimport { EditAttributes, TeaseStyle } from \"design-system/types/types\";\nimport { MouseEventHandler } from \"react\";\n\nexport interface HierarchicalTeaseProps {\n header?: HierarchicalTeaseHeaderProps;\n articles: Array;\n feedTeaseStyle?: TeaseStyle;\n onClick?: MouseEventHandler;\n editAttributes?: {\n query?: EditAttributes;\n };\n}\n\n/**\n * ## See it in use on...\n * - The [homepage](/story/example-pages-homepage--homepage)\n *\n * - **`id: CB-008-000-00`**\n * - **`data-region: cb__hierarchical-tease`**\n */\nexport function HierarchicalTease({\n header,\n articles,\n feedTeaseStyle,\n editAttributes,\n}: HierarchicalTeaseProps) {\n const featuredArticle = articles[0];\n const otherArticles = articles.slice(\n 1,\n articles.length > 4 ? 3 : articles.length,\n );\n\n if (featuredArticle?.image) {\n featuredArticle.image.aspectRatio = \"3/2\";\n }\n\n if (featuredArticle?.video) {\n featuredArticle.video.aspectRatio = \"3/2\";\n }\n\n if (featuredArticle && header) {\n featuredArticle.HeadingLevel = \"h3\";\n }\n\n return (\n \n
    \n {header && }\n\n \n
    \n {featuredArticle && }\n
    \n
    \n ({\n name: \"ArticleTease\",\n props,\n }))}\n teaseStyle={feedTeaseStyle}\n />\n
    \n
    \n \n \n );\n}\n","import { HierarchicalTeaseEntry } from \"frontend/contentful/schema/blocks\";\nimport { createContentfulComponent } from \"frontend/contentful/lib/create-contentful-component\";\nimport { ArticleTeaseProps } from \"design-system/components/primitives/article-tease/article-tease\";\nimport { RenderContentfulRichText } from \"../utils/render-contentful-rich-text\";\nimport { useSearch } from \"frontend/hooks/use-search\";\nimport { TeaseStyle } from \"design-system/types/types\";\nimport { HierarchicalTease } from \"design-system/components/blocks/hierarchical-tease/hierarchical-tease\";\nimport { createUseSearchProps } from \"../utils/use-search.props\";\nimport { createSearchArticleTease } from \"frontend/contentful/search/search-article-tease\";\nimport { createCtaLinkProps } from \"../primitives/cta-link.props\";\nimport { LegacySearchHit, ModernSearchHit } from \"frontend/types\";\nimport { CreateEditAttributesFn } from \"frontend/contentful/lib/edit-attributes-factory\";\nimport { getSiteId } from \"frontend/lib/get-site-id\";\nimport { usePageProps } from \"frontend/hooks/use-page-props\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\n\nconst CuratedContentfulHierarchicalTease = ({\n entry,\n createEditAttributes,\n}: {\n entry: HierarchicalTeaseEntry;\n createEditAttributes: CreateEditAttributesFn;\n}) => {\n const page = usePageProps();\n const { getEntry } = useContentful();\n const site = getEntry(page.site);\n const siteId = getSiteId(site);\n\n const ids = entry.fields.teasesCurated || [];\n const articles: Array = [];\n\n const { data } = useSearch({\n index: \"modern\",\n query: ids.map((id) => `id:${id}`).join(\" OR \"),\n size: entry.fields.teasesCurated?.length || 25,\n });\n\n /**\n * Sorting hits based on the order of IDs.\n */\n const sortedHits = data?.hits.toSorted((a, b) => {\n return ids.indexOf(a.id) - ids.indexOf(b.id);\n });\n\n if (!sortedHits || sortedHits.length === 0) return null;\n\n let counter = 0;\n const allTitles: Array = [];\n\n /** Only show 4 articles and filter out duplicates\n * This is a temporary solution to filter out duplicates, as I had few issues with duplicate results when picking similar articles\n */\n sortedHits.forEach((item) => {\n if (counter < 4) {\n const props = createSearchArticleTease(item, siteId);\n const title = props?.title?.toString();\n if (props && title && !allTitles.includes(title)) {\n articles.push(props);\n allTitles.push(title);\n counter++;\n }\n }\n });\n\n return (\n \n );\n};\n\nconst QueryContentfulHierarchicalTease = ({\n entry,\n createEditAttributes,\n}: {\n entry: HierarchicalTeaseEntry;\n createEditAttributes: CreateEditAttributesFn;\n}) => {\n const page = usePageProps();\n const { getEntry } = useContentful();\n const site = getEntry(page.site);\n const siteId = getSiteId(site);\n\n const articles: Array = [];\n\n const searchProps = createUseSearchProps(entry.fields.query);\n if (searchProps) searchProps.size = 4 + 2;\n let counter = 0;\n\n const search = useSearch(searchProps);\n\n if (Array.isArray(search.data?.hits)) {\n const allTitles: Array = [];\n search.data?.hits.map(async (data) => {\n if (counter < 4) {\n const props = createSearchArticleTease(data, siteId);\n const title = props?.title?.toString();\n if (props && title && !allTitles.includes(title)) {\n articles.push(props);\n allTitles.push(title);\n counter++;\n }\n }\n });\n }\n\n if (\n entry.fields.headerSize === \"standard\" ||\n entry.fields.headerSize === undefined\n ) {\n return (\n \n );\n }\n\n return (\n \n ),\n editAttributes: {\n title: createEditAttributes({ entry, fieldId: \"title\" }),\n overline: createEditAttributes({ entry, fieldId: \"overline\" }),\n subheading: createEditAttributes({\n entry,\n fieldId: \"description\",\n }),\n },\n }}\n editAttributes={{\n query: createEditAttributes({\n entry: entry.fields.query,\n fieldId: \"query\",\n }),\n }}\n />\n );\n};\n\nexport const ContentfulHierarchicalTease =\n createContentfulComponent(\n ({ entry, createEditAttributes }) => {\n if (entry.fields.teasesCurated) {\n return (\n \n );\n }\n if (entry.fields.query) {\n return (\n \n );\n }\n\n return null;\n },\n );\n","const remove = [/<[^>]*>?/gm, /\\u00AD/g, \"<\", \">\"] as const;\n\nconst replace = [[\""\", '\"', \"'\", \"'\", \"&\", \"&\"]] as const;\n\nexport function stripHtml(html: string): string {\n let result = html;\n\n // Protect the mark tags returned from highlighted search results\n result = result\n .replaceAll(\"\", \"[mark]\")\n .replaceAll(\"\", \"[/mark]\");\n\n for (const rm of remove) {\n result = result.replaceAll(rm, \"\");\n }\n for (const [key, value] of replace) {\n result = result.replaceAll(key, value);\n }\n\n // Return the mark tags to original state\n result = result\n .replaceAll(\"[mark]\", \"\")\n .replaceAll(\"[/mark]\", \"\");\n\n return result;\n}\n","import { createContentfulProps } from \"frontend/contentful/lib/create-contentful-props\";\nimport { QueryEntry } from \"frontend/contentful/schema/semantics\";\nimport { SearchQuery, SearchQueryIndex } from \"frontend/types\";\n\nexport type UseSearchPropsOptions = Partial;\n\nexport const createUseSearchProps = createContentfulProps<\n QueryEntry,\n SearchQuery | null,\n UseSearchPropsOptions\n>(({ entry, options = {} }) => {\n if (!entry.fields.query) return null;\n\n const query: SearchQuery = {\n ...options,\n query:\n options.query ||\n \"(\" + entry.fields.query + \") AND -HBSDataLifecycle:Draft\",\n size: options.size || parseInt(entry.fields.limit || \"25\", 10),\n index:\n options.index || ((entry.fields.index || \"modern\") as SearchQueryIndex),\n };\n\n const sortValue = entry.fields.sort;\n\n if (!query.sort && sortValue) {\n query.sort = sortValue.join(\",\");\n\n // legacy default sort by HBSSortDate\n if (!query.sort && entry.fields.index === \"legacy\") {\n query.sort = \"HBSSortDate\";\n }\n }\n\n return query;\n});\n","import { ContentfulEntry, EntryRef } from \"frontend/contentful/schema/sys\";\nimport { useContentful } from \"frontend/hooks/use-contentful\";\nimport { ComponentType, ReactNode } from \"react\";\nimport { CreateEditAttributesFn } from \"./edit-attributes-factory\";\n\nexport interface ContentfulComponentProps<\n E extends ContentfulEntry,\n O = Record,\n> {\n entry: E;\n options: O | undefined;\n createEditAttributes: CreateEditAttributesFn;\n}\n\nexport type ContentfulComponent = (\n props: ContentfulComponentProps,\n) => ReactNode;\nexport interface ContentfulComponentRenderProps<\n E extends ContentfulEntry,\n O = void,\n> {\n entry?: EntryRef;\n options?: O;\n}\nexport type ContentfulFactoryComponent<\n E extends ContentfulEntry,\n O = void,\n> = ComponentType>;\n\nexport function createContentfulComponent(\n Component: ContentfulComponent,\n) {\n const ContentfulComponent: ContentfulFactoryComponent = ({\n entry: ref,\n options,\n }) => {\n const { getEntry, createEditAttributes } = useContentful();\n\n const entry = getEntry(ref);\n\n if (!entry?.fields || !entry?.metadata || !entry?.sys.id) return null;\n\n return (\n \n );\n };\n\n return ContentfulComponent;\n}\n","import { SearchHit, SearchHitTypes } from \"frontend/types\";\n\nexport function isSearchHitType(\n hitType: SearchHitTypes,\n searchHit?: SearchHit,\n): searchHit is T {\n if (searchHit === undefined) return false;\n\n if (hitType === \"modern\") {\n return \"url\" in searchHit && \"title\" in searchHit;\n }\n if (hitType === \"hollis\") {\n return \"title\" in searchHit;\n }\n if (hitType === \"modernArticle\") {\n return \"contentType\" in searchHit && searchHit.contentType === \"Article\";\n }\n if (hitType === \"modernProgram\") {\n return \"contentType\" in searchHit && searchHit.contentType === \"Program\";\n }\n if (hitType === \"legacy\" || hitType === \"legacyArticle\") {\n return \"HBSLink\" in searchHit && \"HBSTitle\" in searchHit;\n }\n\n if (hitType === \"knowledgeSuggest\") {\n return \"Faculty\" in searchHit && \"suggestions\" in searchHit;\n }\n\n return false;\n}\n","export function cleanSearchHightlight(highlight?: string) {\n if (!highlight) return undefined;\n let text = highlight;\n // Update the highlights from Knowledge\n if (\n highlight &&\n highlight.indexOf(\n \"\",\n ) > -1 &&\n highlight.indexOf(\"\") > -1\n ) {\n text = highlight\n .replaceAll(\n \"\",\n \"\",\n )\n .replaceAll(\"\", \"\");\n }\n\n return text;\n}\n","import { ArticleTeaseProps } from \"design-system/components/primitives/article-tease/article-tease\";\nimport { MediaAssetImageProps } from \"design-system/components/primitives/media-asset/media-asset-image\";\nimport {\n SearchHit,\n ModernSearchHit,\n LegacySearchHit,\n SearchDisplay,\n} from \"frontend/types\";\nimport { stripHtml } from \"../components/utils/strip-html\";\nimport { isSearchHitType } from \"./is-search-hit-type\";\nimport { BylineAuthor } from \"design-system/components/primitives/byline/byline\";\nimport { cleanSearchHightlight } from \"./search-highlight\";\n\nexport function createSearchArticleTease(\n data?: SearchHit,\n siteId?: string,\n thumbnailProps?: Partial,\n) {\n if (isSearchHitType(\"modernArticle\", data)) {\n return createModernSearchArticleTease(data, siteId);\n }\n if (isSearchHitType(\"legacyArticle\", data)) {\n return createLegacySearchArticleTease(data, thumbnailProps);\n }\n}\n\nexport function createLegacySearchArticleTease(\n data: LegacySearchHit,\n thumbnailProps?: Partial,\n): ArticleTeaseProps {\n const props: ArticleTeaseProps = {\n type: \"Article\",\n title: data.HBSTitle,\n link: data.HBSLink,\n tease: data.HBSDescription,\n byline: {\n publicationDate: data.HBSPubDate,\n type: \"ShowAll\",\n },\n };\n\n if (data.HBSSource) {\n props.overline = { label: data.HBSSource };\n }\n\n if (data.HBSByline) {\n let people = data.HBSByline;\n let authors = data.HBSByline;\n\n if (authors.startsWith(\"by \") || authors.startsWith(\"By \")) {\n authors = authors.substring(3);\n }\n\n if (authors.startsWith(\"by: \") || authors.startsWith(\"By: \")) {\n authors = authors.substring(4);\n }\n\n if (people.startsWith(\"re \") || people.startsWith(\"Re \")) {\n people = people.substring(3);\n }\n\n if (people.startsWith(\"re: \") || people.startsWith(\"Re: \")) {\n people = people.substring(4);\n\n if (people.indexOf(\", \") > 0) {\n let peopleCleanup = \"\";\n\n people.split(\", \").forEach((person) => {\n if (person.indexOf(\"@\") > 0) return; // skip email addresses\n peopleCleanup = peopleCleanup\n ? peopleCleanup + \", \" + person\n : person;\n });\n\n people = peopleCleanup;\n }\n }\n\n if (authors !== data.HBSByline) props.byline!.authors = [{ name: authors }];\n if (people !== data.HBSByline) {\n props.byline!.featuredAuthors = [{ name: people }];\n }\n }\n\n if (data.HBSThumbnail) {\n props.image = {\n src: data.HBSThumbnail,\n ...thumbnailProps,\n };\n }\n\n return props;\n}\n\nexport function createModernSearchArticleTease(\n data: ModernSearchHit | SearchDisplay,\n siteId?: string,\n): ArticleTeaseProps {\n let description = data.description;\n\n //Modern Search Hit with \"legacy\" subset only used on sitewide Search Pages\n if (data.subset?.includes(\"legacy\") && !description) {\n description = data.body;\n }\n\n if (\n data.highlight?.description &&\n Array.isArray(data.highlight?.description)\n ) {\n description = data.highlight?.description[0];\n }\n\n if (data.highlight?.body && Array.isArray(data.highlight?.body)) {\n description = cleanSearchHightlight(data.highlight?.body[0]);\n }\n\n // Use the body as a last resort if no description is set\n if (!description && data.body) {\n description = data.body.substring(0, 500).trim();\n }\n\n const props: ArticleTeaseProps = {\n type: \"Article\",\n title: data.title,\n link: data.url,\n tease: description && stripHtml(description),\n };\n\n //if data type = ModernSearchHit then use data.display\n //if data type = SearchDisplay then use data\n //if data type = LegacySearchHit then use data.display\n if (isSearchHitType(\"modern\", data)) {\n // Display the category as an overline when entry is for the site\n if (siteId && data.display?.site === siteId) {\n if (data.display?.overline) {\n props.overline = data.display.overline;\n } else if (data.display?.category) {\n props.overline = data.display.category;\n }\n\n // Display the Site name as an overline when entry is from a different site\n } else if (data.display?.siteOverline) {\n props.overline = data.display.siteOverline;\n } else if (data.display?.category) {\n props.overline = data.display.category;\n }\n\n if (data.display?.thumbnail?.src) {\n props.image = data.display.thumbnail;\n if (data.display.thumbnail.gravity) {\n props.image.gravity = data.display.thumbnail.gravity;\n }\n if (data.display.thumbnail.aspectRatio) {\n props.image.aspectRatio = data.display.thumbnail.aspectRatio;\n }\n }\n\n if (data.display?.date) {\n props.byline = {\n publicationDate: data.display.date,\n };\n }\n\n if (data.display?.byline) {\n if (\n data.display.byline[0]?.label &&\n (data.display.byline[0].label.toLowerCase().startsWith(\"by\") ||\n data.display.byline[0].label.toLowerCase().startsWith(\"re\"))\n ) {\n // temporary add for supporting legacy byline data (legacy loader now in modern ES setup)\n const legacyByline = stripHtml(data.display.byline[0].label);\n\n let people = legacyByline;\n let authors = legacyByline;\n\n if (authors.startsWith(\"by \") || authors.startsWith(\"By \")) {\n authors = authors.substring(3);\n }\n\n if (authors.startsWith(\"by: \") || authors.startsWith(\"By: \")) {\n authors = authors.substring(4);\n }\n\n if (people.startsWith(\"re \") || people.startsWith(\"Re \")) {\n people = people.substring(3);\n }\n\n if (people.startsWith(\"re: \") || people.startsWith(\"Re: \")) {\n people = people.substring(4);\n\n if (people.indexOf(\", \") > 0) {\n let peopleCleanup = \"\";\n\n people.split(\", \").forEach((person) => {\n if (person.indexOf(\"@\") > 0) return; // skip email addresses\n peopleCleanup = peopleCleanup\n ? peopleCleanup + \", \" + person\n : person;\n });\n\n people = peopleCleanup;\n }\n }\n\n if (props.byline) {\n if (authors !== legacyByline) {\n props.byline.authors = [{ name: authors }];\n props.byline.type = \"ShowAll\";\n }\n if (people !== legacyByline) {\n props.byline.featuredAuthors = [{ name: people }];\n props.byline.type = \"ShowAll\";\n }\n } else {\n if (authors !== legacyByline) {\n props.byline = { authors: [{ name: authors }], type: \"ShowAll\" };\n }\n if (people !== legacyByline) {\n props.byline = {\n featuredAuthors: [{ name: people }],\n type: \"ShowAll\",\n };\n }\n }\n } else {\n const byline: Array = [];\n const hightlight = data.highlight;\n\n data.display.byline.forEach((author) => {\n if (author.label) {\n let label = author.label;\n if (\n hightlight?.[\"author.text\"] &&\n Array.isArray(hightlight?.[\"author.text\"]) &&\n hightlight?.[\"author.text\"][0]\n ) {\n const authorFirstHighlight = hightlight?.[\"author.text\"][0]\n ? hightlight?.[\"author.text\"][0]\n .replaceAll(\"\", \"\")\n .replaceAll(\"\", \"\")\n : \"\";\n if (\n hightlight?.[\"author.text\"][0] &&\n authorFirstHighlight === label\n ) {\n label = hightlight?.[\"author.text\"][0];\n }\n }\n byline.push({ name: label, link: author.link });\n }\n });\n\n if (data.subset?.includes(\"artwork\")) {\n props.byline = { authors: byline, type: \"ShowAll\" };\n } else if (props.byline) {\n props.byline.authors = byline;\n } else {\n props.byline = { authors: byline };\n }\n }\n\n if (data.display.downloadLink) {\n props.downloadLink = data.display.downloadLink;\n }\n if (data.display.caseHead) {\n props.display = {\n caseHead: data.display.caseHead,\n caseCategory: data.display.caseCategory,\n };\n }\n }\n } else {\n // TODO: Add category url support to modern search schema\n if (data.source) {\n props.overline = { label: data.source /*, link: data.sourceUrl */ };\n } else if (data.contentType) {\n props.overline = {\n label: data.contentType /*, link: data.contentTypeUrl */,\n };\n }\n }\n\n if (data.subset?.includes(\"artwork\")) {\n props.variant = \"artwork\";\n }\n\n if (\n data.subset?.includes(\"participantStory\") ||\n data.subset?.includes(\"profilePages\")\n ) {\n props.variant = \"profile\";\n }\n\n return props;\n}\n","import {\n ModernSearchHit,\n SearchHit,\n SearchQuery,\n SearchResults,\n} from \"frontend/types\";\nimport { UseFetchProps, useFetch } from \"./use-fetch\";\n\ntype UseSearchArgs = SearchQuery | null | undefined;\n\nconst searchApiUrl = \"/api/search/query\";\n\nexport function createSearchParams(search: UseSearchArgs) {\n if (search?.query === undefined) return {};\n\n return {\n from: search?.from?.toString(),\n size: search?.size?.toString(),\n index: search.index,\n query: search.query,\n facets: search?.facets?.join(\",\"),\n filters: search?.filters,\n sort: search?.sort,\n facetLimit: search?.facetLimit?.toString(),\n };\n}\n\ninterface UseSearchOptions {\n dedupe?: boolean;\n defaultSize?: number;\n}\n\nexport function useSearch(\n search: UseSearchArgs,\n options: UseSearchOptions = {},\n) {\n let size = search?.size;\n\n if (options.dedupe) {\n size = (size ?? 25) + 10; // add extra results to dedupe\n }\n\n const fetchProps: UseFetchProps = {\n url: searchApiUrl,\n params: createSearchParams({ ...search, size }),\n };\n\n const result = useFetch>(fetchProps);\n\n if (options.dedupe && result.data?.hits) {\n dedupeSearchData({ search, options, data: result.data });\n }\n\n return result;\n}\n\nexport function useMultiSearch(\n search: Array,\n options: UseSearchOptions = {},\n) {\n const fetchProps: UseFetchProps = {\n method: \"POST\",\n url: searchApiUrl,\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({\n queries: search.map((s) => {\n let size = s?.size;\n if (options.dedupe) size = (size ?? 25) + 10;\n return createSearchParams({ ...(s ?? {}), size });\n }),\n }),\n };\n\n const result = useFetch>>(fetchProps);\n\n if (options.dedupe && result.data) {\n result.data.forEach((data, i) =>\n dedupeSearchData({ options, data, search: search[i] }),\n );\n }\n\n return result;\n}\n\ninterface DedupeSearchDataArgs {\n data: SearchResults;\n search: UseSearchArgs;\n options: UseSearchOptions;\n}\n\nfunction dedupeSearchData({\n data,\n search,\n options,\n}: DedupeSearchDataArgs) {\n const deduped: Array = [];\n const size = search?.size ?? options.defaultSize ?? 25;\n\n for (const hit of data.hits) {\n const exists = deduped.some((item) => {\n if (\"id\" in item && \"id\" in hit && item.id === hit.id) return true;\n if (\n \"HBSTitle\" in item &&\n \"HBSTitle\" in hit &&\n item.HBSTitle === hit.HBSTitle\n ) {\n return true;\n }\n return false;\n });\n\n if (!exists) deduped.push(hit);\n if (deduped.length >= size) break;\n }\n\n data.hits = deduped;\n}\n","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin"],"names":["TeaseFeedTease","param","tease","teaseStyle","headingLevel","props","style","HeadingLevel","name","teaseContext","image","variant","aspectRatio","jsx_runtime","jsx","li","className","LazyComponent","TeaseFeed","forwardRef","ref","teaseTypes","items","headerContent","align","totalHits","error","searchInfo","sortByOptions","HeadingLevelTease","wrapperClass","cn","concat","Set","map","item","type","filter","Boolean","presentationalVariant","length","toLowerCase","div","data-region","jsxs","ComponentHeader","p","select","id","onChange","value","selectedOption","options","option","i","label","ul","ArticleTeaseDesc","desc","editAttributes","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","description","dangerouslySetInnerHTML","__html","ArticleTease","source","host","isExternal","byline","color","overline","customColor","video","kaltura","coverImage","imageInset","link","multiLinks","ariaLabel","title","theme","isLogo","isSmall","showSource","onClick","downloadLink","hasAsset","showDesc","isCard","isSmallTease","textOnly","useNoImageFallback","isExternalLink","arrowClassNames","teaseColorStyle","backgroundColor","expandedPalette","undefined","url","data-theme","Fragment","Link","href","aria-hidden","tabIndex","MediaAsset","mobileWidth","aria-label","showOverline","span","linkItem","Byline","disableLinks","Icon","children","getLazyComponentByName","useLazyComponents","Component","ErrorBoundary","Suspense","Array","isArray","LazyComponents","components","console","component","light","white","dark","black","crimson","red","purple","blue","themeOptions","Object","entries","key","simpleTheme","includes","defaultPageSectionTheme","red2","red3","red4","orange1","orange2","orange4","yellow2","yellow3","green1","green2","green4","teal1","teal3","teal4","blue1","blue3","blue4","purple1","purple2","purple3","purple4","magenta1","magenta2","magenta3","magenta4","gray2","gray3","gray4","paletteThemesOnDark","getSplitTopperTheme","spotTheme","getLargeAssetTopperTheme","keys","HierarchicalTeaseHeader","componentHeader","subheading","cta","h2","CtaLink","HierarchicalTease","header","articles","feedTeaseStyle","featuredArticle","otherArticles","slice","query","CuratedContentfulHierarchicalTease","entry","createEditAttributes","page","usePageProps","getEntry","useContentful","site","siteId","getSiteId","ids","fields","teasesCurated","data","useSearch","index","join","size","sortedHits","hits","toSorted","a","b","indexOf","counter","allTitles","forEach","createSearchArticleTease","toString","push","fieldId","QueryContentfulHierarchicalTease","search","searchProps","createUseSearchProps","headerSize","createCtaLinkProps","RenderContentfulRichText","document","ContentfulHierarchicalTease","createContentfulComponent","remove","replace","stripHtml","html","result","rm","replaceAll","createContentfulProps","parseInt","limit","sortValue","sort","metadata","sys","isSearchHitType","hitType","searchHit","contentType","thumbnailProps","createModernSearchArticleTease","createLegacySearchArticleTease","HBSTitle","HBSLink","HBSDescription","publicationDate","HBSPubDate","HBSSource","HBSByline","people","authors","startsWith","substring","peopleCleanup","split","person","featuredAuthors","HBSThumbnail","src","subset","body","highlight","cleanSearchHightlight","text","trim","display","category","siteOverline","thumbnail","gravity","date","legacyByline","hightlight","author","authorFirstHighlight","caseHead","caseCategory","searchApiUrl","createSearchParams","from","facets","filters","facetLimit","dedupe","fetchProps","params","useFetch","dedupeSearchData","useMultiSearch","method","headers","JSON","stringify","queries","s","deduped","defaultSize","hit","some"],"sourceRoot":""}