{"version":3,"file":"HomeHero.chunk.7a0a69f6c36e1fb5c505.js","mappings":"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","sources":["webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Utils/heroSearchUtils.ts","webpack://Kristiania.Web/./Features/Partials/Combobox/Combobox.tsx","webpack://Kristiania.Web/./Features/Partials/Combobox/Combobox.module.css?65d5","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroSearchBox/HomeHeroSearchBox.tsx","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroSearchBox/HomeHeroSearchBox.module.css?ab6c","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroSearchList/HomeHeroSearchList.tsx","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroSearchList/HomeHeroSearchList.module.css?7f70","webpack://Kristiania.Web/./Features/Partials/GoogleTagManager/GtmHeroSearchEventsHandler.ts","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroSearchEmployees/HomeHeroSearchEmployees.tsx","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroSearchEmployees/HomeHeroSearchEmployees.module.css?7250","webpack://Kristiania.Web/./Features/Partials/MultiselectDropdownWithStatus/MultiselectDropdownWithStatus.module.css?c326","webpack://Kristiania.Web/./Features/Partials/MultiselectDropdownWithStatus/MultiselectDropdownWithStatus.tsx","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroFacetSelection/HomeHeroFacetSelection.tsx","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroFacetSelection/HomeHeroFacetSelection.module.css?e8b9","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroSearchStudies/HomeHeroSearchStudies.module.css?4512","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroSearchStudies/HomeHeroSearchStudies.tsx","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroSearch/HomeHeroSearch.tsx","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHeroSearch/HomeHeroSearch.module.css?f24d","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHero/HomeHero.module.css?e328","webpack://Kristiania.Web/./Features/Blocks/HomeHero/View/Components/HomeHero/HomeHero.tsx","webpack://Kristiania.Web/./Features/Partials/ActivityIndicator/ActivityIndicator.module.css?6d48","webpack://Kristiania.Web/./Features/Partials/ActivityIndicator/ActivityIndicator.tsx","webpack://Kristiania.Web/./Features/Partials/BackgroundMediaSection/BackgroundMediaSection.module.css?b2a6","webpack://Kristiania.Web/./Features/Partials/BackgroundMediaSection/BackgroundMediaSection.tsx","webpack://Kristiania.Web/./Features/Partials/Button/Button.tsx","webpack://Kristiania.Web/./Features/Partials/Button/ButtonSize.csharp.ts","webpack://Kristiania.Web/./Features/Partials/Button/ButtonTier.csharp.ts","webpack://Kristiania.Web/./Features/Partials/Controls/HtmlHeading.tsx","webpack://Kristiania.Web/./Features/Partials/FetchData/useFetchData.ts","webpack://Kristiania.Web/./Features/Partials/GoogleTagManager/GtmEventsBase.ts","webpack://Kristiania.Web/./Features/Partials/Link/Link.module.css?85a8","webpack://Kristiania.Web/./Features/Partials/Link/Link.tsx","webpack://Kristiania.Web/./Features/Partials/Link/LinkType.csharp.ts","webpack://Kristiania.Web/./Features/Partials/Link/LinkVariant.csharp.ts","webpack://Kristiania.Web/./Features/Partials/List/List.tsx","webpack://Kristiania.Web/./Features/Partials/Picture/Utils/constructImageSharpUrl.tsx","webpack://Kristiania.Web/./Features/Partials/Picture/Picture.tsx","webpack://Kristiania.Web/./Features/Partials/Picture/Picture.module.css?5ded","webpack://Kristiania.Web/./Features/Partials/Picture/PictureProfiles.ts","webpack://Kristiania.Web/./Features/Partials/Picture/Placeholder/PicturePlaceholder.module.css?0bc4","webpack://Kristiania.Web/./Features/Partials/Picture/Placeholder/PicturePlaceholder.tsx","webpack://Kristiania.Web/./Features/Partials/SearchBox/SearchBoxResults/SearchBoxResults.tsx","webpack://Kristiania.Web/./Features/Partials/TabList/Tab.tsx","webpack://Kristiania.Web/./Features/Partials/TabList/TabList.tsx","webpack://Kristiania.Web/./Features/Partials/Tabs/TabPanel.tsx","webpack://Kristiania.Web/./Features/Partials/Tabs/Tabs.tsx","webpack://Kristiania.Web/./Features/Partials/Tabs/Tabs.module.css?c8db","webpack://Kristiania.Web/./Features/Partials/Tabs/tabUtils.ts","webpack://Kristiania.Web/./Features/Partials/Utils/usePrevious.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useDebounce.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useMultiselect.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useVariableWithStableRef.ts","webpack://Kristiania.Web/./Features/Utils/Hooks/useWindowWidthDetection.ts","webpack://Kristiania.Web/./Features/Utils/MediaBreakpoints.ts","webpack://Kristiania.Web/./Features/Partials/SearchBox/SearchBoxResults/SearchBoxResults.module.css?a773"],"sourcesContent":["import type { ComboboxItem } from '../../../../Partials/Combobox/Combobox';\n\nexport function mapToComboboxItem(item: T, id: string | number, displayValue: string): T & ComboboxItem {\n return { ...item, id, displayValue };\n}\n\nexport const buildUrlWithSearchQueryParam = (baseUrl: string, paramName: string, value: string) =>\n `${baseUrl}?${paramName}=${value}`;\n","import classNames from 'classnames';\nimport type { UseComboboxStateChangeTypes } from 'downshift';\nimport { useCombobox } from 'downshift';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { SearchBoxResults } from '../SearchBox/SearchBoxResults/SearchBoxResults';\nimport styles from './Combobox.module.css';\n\nexport interface ComboboxItem {\n id: string | number;\n displayValue: string;\n}\n\nexport interface ComboboxProps {\n translations: ComboboxTranslations;\n value: string;\n items: T[];\n onInputChanged: (phrase: string | undefined) => void;\n renderItem: (item: T) => ReactNode;\n loading?: boolean;\n error?: string;\n className?: string;\n name?: string;\n highlightedItemClassName?: string;\n searchBoxResultsClassName?: string;\n onSelectionChanged?: (item: T, type: UseComboboxStateChangeTypes) => void;\n itemToString?: (item: T | null) => string;\n}\n\ninterface ComboboxTranslations {\n search: string;\n errorTranslation: string;\n placeholder: string;\n}\n\nexport function Combobox(props: ComboboxProps): React.ReactElement> {\n const {\n translations: { placeholder },\n items,\n value,\n loading,\n error,\n className,\n highlightedItemClassName,\n searchBoxResultsClassName,\n translations,\n name,\n onInputChanged,\n onSelectionChanged,\n renderItem,\n } = props;\n\n const { isOpen, highlightedIndex, getMenuProps, getInputProps, getItemProps } = useCombobox({\n items,\n onInputValueChange: changes => {\n onInputChanged(changes.inputValue);\n },\n itemToString: item => item?.displayValue || '',\n onSelectedItemChange: stateChange => {\n const { selectedItem, type } = stateChange;\n selectedItem && onSelectionChanged && onSelectionChanged(selectedItem, type);\n },\n });\n\n return (\n
\n \n\n \n {value && isOpen && (\n \n
    \n {items.map((item, index) => (\n \n {renderItem(item)}\n \n ))}\n
\n \n )}\n
\n \n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"Combobox\":\"DqFCXQbHOYVEJCo8T7LQ\",\"SearchBoxInput\":\"j5KV85mmQHJ_gHk8ONTi\",\"SearchBoxInput--open\":\"vSNTQhR5st68BUTBza7b\",\"Item\":\"NAA_AAORSVab4hAbFW9V\",\"SearchResults\":\"IL13hw4uxdrlXzW6QSrT\",\"SearchResults--open\":\"w81m7L1T8exUJC_309sU\",\"Item--highlighted\":\"FTmzIPC2hCF2gYTaS3hK\"};","import type { UseComboboxStateChangeTypes } from 'downshift';\nimport { useCombobox } from 'downshift';\nimport * as React from 'react';\nimport type { SearchResultResponse } from '~/Features/Search/SearchResultResponse.csharp';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonSize } from '~/Partials/Button/ButtonSize.csharp';\nimport { ButtonTier } from '~/Partials/Button/ButtonTier.csharp';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport type { ComboboxItem } from '~/Partials/Combobox/Combobox';\nimport { Combobox } from '~/Partials/Combobox/Combobox';\nimport { useFetchData } from '~/Partials/FetchData/useFetchData';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport styles from './HomeHeroSearchBox.module.css';\n\nexport interface HomeHeroSearchBoxProps {\n translations: HomeHeroSearchBoxTranslations;\n renderElement: (item: T) => React.ReactElement;\n mapToComboboxItem: (item: T) => T & ComboboxItem;\n buildSearchUrl: (phrase: string) => string;\n buildSubmitUrl: (phrase: string) => string;\n onSubmit: (phrase: string) => void;\n onItemEnterClicked: (item: T) => void;\n highlightedItemClassName?: string;\n}\n\nexport interface HomeHeroSearchBoxTranslations {\n searchName: string;\n search: string;\n placeholder: string;\n error: string;\n}\n\nexport function HomeHeroSearchBox(props: HomeHeroSearchBoxProps) {\n const {\n translations,\n highlightedItemClassName,\n buildSearchUrl,\n buildSubmitUrl,\n renderElement,\n mapToComboboxItem,\n onItemEnterClicked,\n onSubmit,\n } = props;\n\n const [phrase, setPhrase] = React.useState('');\n\n const { loading, error, data } = useFetchData>({\n url: buildSearchUrl(phrase),\n shouldMakeRequest: phrase?.length > 0,\n });\n\n const handleSearchChanged = (searchPhrase: string | undefined) => setPhrase(searchPhrase || '');\n const handleSelectionChanged = (item: T, type: UseComboboxStateChangeTypes) =>\n type === useCombobox.stateChangeTypes.InputKeyDownEnter && onItemEnterClicked(item);\n\n return (\n
onSubmit(phrase)} action={buildSubmitUrl(phrase)} method=\"POST\">\n
\n mapToComboboxItem(item)) || []}\n error={error}\n onInputChanged={handleSearchChanged}\n onSelectionChanged={handleSelectionChanged}\n renderItem={renderElement}\n searchBoxResultsClassName={styles.SearchBoxResults}\n />\n\n \n \n {translations.search}\n \n
\n
\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"HomeHeroSearchBox\":\"LdPGlQPZ5J_xj9W82A7m\",\"SearchInput\":\"xUKoFlJqzq5Q4XyqCTLM\",\"SearchText\":\"sEySIqmI9lyWYvnS8Dya\",\"LinkButton\":\"AhnvdXkVQPOs2aDXGHMb\",\"SearchIcon\":\"IYD535xnMYb1dQ69otrq\",\"SearchBoxResults\":\"yIhjKvWbgYnqVpU2BmO7\"};","import classNames from 'classnames';\nimport uniqueId from 'lodash/uniqueId';\nimport React from 'react';\nimport type { LinkProps } from '~/Partials/Link/Link';\nimport { Link } from '~/Partials/Link/Link';\nimport type { LinkVariant } from '~/Partials/Link/LinkVariant.csharp';\nimport { List } from '~/Partials/List/List';\nimport styles from './HomeHeroSearchList.module.css';\n\nexport interface HomeHeroSearchListProps {\n variant: LinkVariant;\n links: LinkProps[];\n className?: string;\n linkClassName?: string;\n linkLabelClassName?: string;\n}\n\nexport const HomeHeroSearchList: React.FC> = props => {\n const { links, variant, className, linkClassName, linkLabelClassName } = props;\n\n return (\n (\n
  • \n \n
  • \n )}\n />\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"LinkList\":\"UifYFpoy37cfsWBEpkoQ\",\"LinkListElement\":\"pGf4UVOUcsbNuiMp51tX\",\"Link\":\"IwQyyJNim3EYXDxtTisA\"};","import type { FacetOption } from '~/Features/Search/FacetOption.csharp';\nimport { GtmEventsBase } from './GtmEventsBase';\n\nexport class GtmHeroSearchEventsHandler extends GtmEventsBase {\n private static readonly findStudy = 'Find Study';\n\n private static readonly findEmployee = 'Find Employee';\n\n public static pushStudyPhraseSearch = (phrase?: string) => {\n GtmHeroSearchEventsHandler.pushPhraseSearch(GtmHeroSearchEventsHandler.findStudy, phrase);\n };\n\n public static pushStudySearch = (levels?: FacetOption[], categories?: FacetOption[]) => {\n const parsedLevels = GtmHeroSearchEventsHandler.parseFacet(levels);\n const parsedCategories = GtmHeroSearchEventsHandler.parseFacet(categories);\n\n GtmEventsBase.pushEvent(GtmHeroSearchEventsHandler.findStudy, {\n ...(parsedLevels && { levels: parsedLevels }),\n ...(parsedCategories && { categories: parsedCategories }),\n });\n };\n\n public static pushEmployeeSearch = (employee: string) => {\n GtmHeroSearchEventsHandler.pushPhraseSearch(GtmHeroSearchEventsHandler.findEmployee, employee);\n };\n\n private static readonly parseFacet = (facetOptions?: FacetOption[]) =>\n !facetOptions || facetOptions.length === 0 ? '' : facetOptions.map(option => option.label).join(', ');\n\n private static readonly pushPhraseSearch = (eventName: string, phrase?: string) => {\n GtmEventsBase.pushEvent(eventName, { ...(phrase && { search: phrase }) });\n };\n}\n","import * as React from 'react';\nimport { buildUrlWithSearchQueryParam, mapToComboboxItem } from '../../Utils/heroSearchUtils';\nimport type { HomeHeroSearchBoxTranslations } from '../HomeHeroSearchBox/HomeHeroSearchBox';\nimport { HomeHeroSearchBox } from '../HomeHeroSearchBox/HomeHeroSearchBox';\nimport { HomeHeroSearchList } from '../HomeHeroSearchList/HomeHeroSearchList';\nimport type { EmployeeSearchResult } from '~/Features/Search/Employee/EmployeeSearchResult.csharp';\nimport { GtmHeroSearchEventsHandler } from '~/Partials/GoogleTagManager/GtmHeroSearchEventsHandler';\nimport type { LinkProps } from '~/Partials/Link/Link';\nimport { Link } from '~/Partials/Link/Link';\nimport { LinkType } from '~/Partials/Link/LinkType.csharp';\nimport { LinkVariant } from '~/Partials/Link/LinkVariant.csharp';\nimport { redirect } from '~/Partials/Utils/utils';\nimport styles from './HomeHeroSearchEmployees.module.css';\n\nexport interface HomeHeroSearchEmployeesProps {\n listPage: string;\n searchUrl: string;\n translations: HomeHeroSearchBoxTranslations;\n links: LinkProps[];\n}\n\nconst PHRASE_QUERY_NAME = 'phrase';\n\nexport const HomeHeroSearchEmployees: React.FC> = props => {\n const { searchUrl, listPage, links, translations } = props;\n\n const renderResultElement = (employee: EmployeeSearchResult) => (\n \n
    \n
    {getEmployeeDisplayName(employee)}
    \n {getEmployeeFacultyDetails(employee).map(faculty => (\n {faculty}\n ))}\n
    \n \n );\n\n const getEmployeeFacultyDetails = (employee: EmployeeSearchResult) => [...employee.jobTitles, employee.school];\n const getEmployeeDisplayName = (employee: EmployeeSearchResult) => `${employee.firstName} ${employee.lastName}`;\n\n const buildSearchUrl = (phrase: string) =>\n phrase ? buildUrlWithSearchQueryParam(searchUrl, PHRASE_QUERY_NAME, phrase) : searchUrl;\n const buildSubmitUrl = (phrase: string) =>\n phrase ? buildUrlWithSearchQueryParam(listPage, PHRASE_QUERY_NAME, phrase) : listPage;\n\n const handleItemEnterClick = (employee: EmployeeSearchResult) => {\n redirect(employee.linkUrl);\n };\n\n const pushGTMEmployeeSearch = (phrase: string) => {\n GtmHeroSearchEventsHandler.pushEmployeeSearch(phrase);\n };\n\n return (\n
    \n \n mapToComboboxItem(employee, employee.linkUrl, getEmployeeDisplayName(employee))\n }\n onItemEnterClicked={handleItemEnterClick}\n onSubmit={pushGTMEmployeeSearch}\n translations={translations}\n />\n {links.length > 0 && (\n \n )}\n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"HomeHeroSearchEmployees\":\"UVW8tGsl6a8QohsPqm4R\",\"Link\":\"volWKgzs4jlSpbCv7RuY\",\"LinkLabel\":\"_4gC8iWbcAzStpz1L9q8\",\"Employee\":\"Y09puQgA536czoYJAeom\",\"EmployeeDetails\":\"NHLd75EUAmpw24UWQVpV\",\"EmployeeFullName\":\"W2Gil0Pwc9pVsUlbRe5v\",\"EmployeeFacultyDetail\":\"QZv3aP1KvNgrWJ7eRn7h\",\"HighlightedItem\":\"u536iZoP_Ej8J52vz9DO\"};","// extracted by mini-css-extract-plugin\nexport default {\"MultiselectDropdownWithStatus\":\"PeE8t6PaijOxsiQ9V7is\",\"ToggleButton\":\"bQjI5_eYONW38S0EE5Dx\",\"SelectedListText\":\"KrFAGTN_FjP_Jd8HbquO\",\"ArrowIcon\":\"TQukBcqRA_ENCHhaVNXm\",\"List\":\"uu_d6r7DWBNm1XqCpHjE\",\"StatusMessage\":\"ukOhoOQWebYMPangTbcK\",\"Dropdown\":\"YQjS6R0gWqFBOSDt3jKD\",\"Dropdown--open\":\"ctHvYMHU1rbry4W1RONQ\",\"Item\":\"VKhxW2kfP_AVsxJ8nwj8\",\"Item--highlighted\":\"lJ9bjQ8SaBTrPoq5rrsw\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { List } from '../List/List';\nimport { SvgIcon } from '../SvgIcon/SvgIcon';\nimport { ActivityIndicator } from '~/Partials/ActivityIndicator/ActivityIndicator';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport type { SelectionValue } from '~/Utils/Hooks/useMultiselect';\nimport { useMultiselect } from '~/Utils/Hooks/useMultiselect';\nimport styles from './MultiselectDropdownWithStatus.module.css';\n\nexport interface MultiselectDropdownWithStatusTranslations {\n selectItems: string;\n openItemsList: string;\n errorOccurred: string;\n}\n\nexport interface MultiselectItem {\n value: TValue;\n isSelected: boolean;\n}\n\ninterface MultiselectDropdownProps {\n values: TValue[];\n valueToString: (item: TValue) => string;\n renderItem: (item: MultiselectItem) => ReactNode;\n selectedItems: TValue[];\n onSelectionChanged: (items: TValue[]) => void;\n translations: MultiselectDropdownWithStatusTranslations;\n error?: string;\n loading?: boolean;\n onListVisibilityChanged?: (isVisible: boolean) => void;\n className?: string;\n highlightedItemClass?: string;\n resultListClassName?: string;\n listItemClassName?: string;\n}\n\nexport function MultiselectDropdownWithStatus(props: MultiselectDropdownProps) {\n const {\n values,\n valueToString,\n selectedItems,\n loading,\n error,\n renderItem,\n onListVisibilityChanged,\n onSelectionChanged,\n translations,\n className,\n highlightedItemClass,\n resultListClassName,\n listItemClassName,\n } = props;\n\n const { isOpen, isSelected, highlightedIndex, getToggleButtonProps, getLabelProps, getMenuProps, getItemProps } =\n useMultiselect({\n items: values,\n itemToString: item => (item ? valueToString(item) : ''),\n selectedItems,\n onSelectionChanged,\n });\n\n React.useEffect(() => {\n onListVisibilityChanged && onListVisibilityChanged(isOpen);\n }, [isOpen]);\n\n const renderDropdownItem = (value: TValue, index: number) => {\n if (!isOpen || error || loading) {\n return null;\n }\n\n return (\n \n {renderItem({ value, isSelected: isSelected(value) })}\n \n );\n };\n\n const renderStatus = () => {\n if (!isOpen) {\n return null;\n }\n\n if (error) {\n return (\n \n {translations.errorOccurred} {error}\n \n );\n }\n\n if (loading) {\n return (\n \n \n \n );\n }\n\n return null;\n };\n\n return (\n
    \n \n \n
    \n {/* KNOWN ISSUE: clicking on the status will close the popup but because of how downshift works,\n it's hard to fix it. But the impact is minimal. */}\n
    {renderStatus()}
    \n \n
    \n
    \n );\n}\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { FacetOption } from '~/Features/Search/FacetOption.csharp';\nimport type { SearchResultResponse } from '~/Features/Search/SearchResultResponse.csharp';\nimport { useFetchData } from '~/Partials/FetchData/useFetchData';\nimport type {\n MultiselectDropdownWithStatusTranslations,\n MultiselectItem,\n} from '~/Partials/MultiselectDropdownWithStatus/MultiselectDropdownWithStatus';\nimport { MultiselectDropdownWithStatus } from '~/Partials/MultiselectDropdownWithStatus/MultiselectDropdownWithStatus';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport styles from './HomeHeroFacetSelection.module.css';\n\ninterface HomeHeroFacetSelectionProps {\n url: string;\n dropdownTranslations: MultiselectDropdownWithStatusTranslations;\n isOpened: boolean;\n selectedItems: FacetOption[];\n onVisibilityChanged: (isVisible: boolean) => void;\n onSelectionChanged: (items: FacetOption[]) => void;\n className?: string;\n}\n\nexport const HomeHeroFacetSelection: React.FC> = props => {\n const { url, dropdownTranslations, isOpened, selectedItems, onVisibilityChanged, onSelectionChanged, className } =\n props;\n\n const { loading, data, error } = useFetchData>({\n url,\n shouldMakeRequest: isOpened,\n });\n const renderItem = (item: MultiselectItem) => (\n
    \n \n {item.value.label}\n
    \n );\n\n return (\n value.label}\n selectedItems={selectedItems}\n loading={loading}\n error={error}\n renderItem={renderItem}\n onListVisibilityChanged={onVisibilityChanged}\n onSelectionChanged={onSelectionChanged}\n translations={dropdownTranslations}\n className={className}\n highlightedItemClass={styles.HighlightedItem}\n resultListClassName={styles.ResultList}\n listItemClassName={styles.ListItem}\n />\n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"ItemIcon\":\"K0NmFcRLbndI6gOJ3tTC\",\"Item\":\"RvmMUqBSg5VNDgqqkg26\",\"Item--selected\":\"ByQL_HZFbN8UVCsAREpF\",\"HighlightedItem\":\"VyuFojwXtfGWXFEaoPUt\",\"ItemLabel\":\"V4LWVqeZTXZ02SmZlJ7k\",\"ResultList\":\"ImRhJAS7kNijUYgwShQZ\",\"ListItem\":\"fPRcOYc76Fvcl1ddr596\"};","// extracted by mini-css-extract-plugin\nexport default {\"HomeHeroSearchStudies\":\"ZjQ5fYrCA8_KYUyYiURQ\",\"SearchSectionTabletAndAbove\":\"YgAP1Gz3AvKA1zKL3qw5\",\"Dropdown\":\"o4R3rrMoo0tguH6Pixc5\",\"ResultsLink\":\"ItZrbCjbK20Qf3lnVg3M\",\"HighlightedItem\":\"FUNnTOAKS8h3MGvOiTsf\",\"StudyName\":\"o1KPf2qQoQsOw4NtVnuc\",\"LinkList\":\"G5RoW_sYDD3fcMesq_54\",\"Study\":\"GVvpNQswUB4AIW7ptkIq\",\"StudyDetails\":\"jPWiW6VDRzuUyRp2_364\",\"StudyInfo\":\"xHHceIyfQERENvhot7X8\"};","import * as React from 'react';\nimport { buildUrlWithSearchQueryParam, mapToComboboxItem } from '../../Utils/heroSearchUtils';\nimport { HomeHeroFacetSelection } from '../HomeHeroFacetSelection/HomeHeroFacetSelection';\nimport type { HomeHeroSearchBoxTranslations } from '../HomeHeroSearchBox/HomeHeroSearchBox';\nimport { HomeHeroSearchBox } from '../HomeHeroSearchBox/HomeHeroSearchBox';\nimport { HomeHeroSearchList } from '../HomeHeroSearchList/HomeHeroSearchList';\nimport type { EducationSearchItem } from '~/Features/Search/Education/Service/EducationSearchItem.csharp';\nimport type { FacetOption } from '~/Features/Search/FacetOption.csharp';\nimport { ButtonTier } from '~/Partials/Button/ButtonTier.csharp';\nimport { GtmHeroSearchEventsHandler } from '~/Partials/GoogleTagManager/GtmHeroSearchEventsHandler';\nimport type { LinkProps } from '~/Partials/Link/Link';\nimport { Link } from '~/Partials/Link/Link';\nimport { LinkType } from '~/Partials/Link/LinkType.csharp';\nimport { LinkVariant } from '~/Partials/Link/LinkVariant.csharp';\nimport { redirect } from '~/Partials/Utils/utils';\nimport styles from './HomeHeroSearchStudies.module.css';\n\nexport interface HomeHeroSearchStudiesProps {\n levelSourceUrl: string;\n categorySourceUrl: string;\n studySearchUrl: string;\n listPageUrl: string;\n translations: HomeHeroSearchStudiesTranslations;\n links: LinkProps[];\n}\n\ninterface HomeHeroSearchStudiesTranslations extends HomeHeroSearchBoxTranslations {\n showResults: string;\n selectLevel: string;\n selectCategory: string;\n error: string;\n openListOfLevels: string;\n openListOfCategories: string;\n}\n\nexport const HomeHeroSearchStudies: React.FC> = props => {\n const { levelSourceUrl, categorySourceUrl, listPageUrl, studySearchUrl, translations, links } = props;\n\n const PHRASE_QUERY_NAME = 'phrase';\n\n const [selectedLevels, setSelectedLevels] = React.useState([]);\n const [selectedCategories, setSelectedCategories] = React.useState([]);\n\n const [isLevelListOpened, setIsLevelListOpened] = React.useState(false);\n const [isCategoryListOpened, setIsCategoryListOpened] = React.useState(false);\n\n const buildListPageUrl = () => {\n const queryParameters = selectedLevels\n .map(item => `levels=${item.id}`)\n .concat(selectedCategories.map(item => `categories=${item.id}`));\n\n return queryParameters.length > 0 ? `${listPageUrl}?${queryParameters.join('&')}` : listPageUrl;\n };\n\n const pushGTMStudySearchEvent = () => {\n GtmHeroSearchEventsHandler.pushStudySearch(selectedLevels, selectedCategories);\n };\n\n const pushGTMPhraseSearchEvent = (phrase?: string) => {\n GtmHeroSearchEventsHandler.pushStudyPhraseSearch(phrase);\n };\n\n const buildSearchUrl = (phrase: string) =>\n phrase ? buildUrlWithSearchQueryParam(studySearchUrl, PHRASE_QUERY_NAME, phrase) : studySearchUrl;\n\n const buildSubmitUrl = (phrase: string) =>\n phrase ? buildUrlWithSearchQueryParam(listPageUrl, PHRASE_QUERY_NAME, phrase) : listPageUrl;\n\n const renderElement = (study: EducationSearchItem) => (\n \n
    \n
    {getStudyDisplayValue(study)}
    \n {getStudyInfo(study).map(studyInfo => (\n {studyInfo}\n ))}\n
    \n \n );\n\n const getStudyInfo = (study: EducationSearchItem) => [\n study.locations.join(' \\\\ '),\n study.levelLabel,\n study.studyFormTypes.join(' \\\\ '),\n ];\n const getStudyDisplayValue = (study: EducationSearchItem) => study.name;\n\n const handleItemEnterClick = (study: EducationSearchItem) => {\n redirect(study.linkUrl);\n };\n\n const renderLevelSelection = () => (\n setIsLevelListOpened(isVisible)}\n onSelectionChanged={items => setSelectedLevels([...items])}\n className={styles.Dropdown}\n />\n );\n\n const renderCategorySelection = () => (\n setIsCategoryListOpened(isVisible)}\n onSelectionChanged={items => setSelectedCategories([...items])}\n className={styles.Dropdown}\n />\n );\n\n return (\n
    \n
    \n {renderLevelSelection()}\n {renderCategorySelection()}\n \n
    \n
    \n mapToComboboxItem(study, study.linkUrl, getStudyDisplayValue(study))}\n onSubmit={pushGTMPhraseSearchEvent}\n />\n
    \n {links.length > 0 && (\n \n )}\n
    \n );\n};\n","import uniqueId from 'lodash/uniqueId';\nimport * as React from 'react';\nimport type { HomeHeroSearchProps } from '../../../ViewModels/HomeHeroSearchProps.csharp';\nimport { HomeHeroSearchEmployees } from '../HomeHeroSearchEmployees/HomeHeroSearchEmployees';\nimport { HomeHeroSearchStudies } from '../HomeHeroSearchStudies/HomeHeroSearchStudies';\nimport type { LinkViewModel } from '~/Partials/Link/LinkViewModel.csharp';\nimport { Tabs } from '~/Partials/Tabs/Tabs';\nimport { isTruthy } from '~/Partials/Utils/utils';\nimport styles from './HomeHeroSearch.module.css';\n\nexport const HomeHeroSearch: React.FC<\n React.PropsWithChildren\n> = props => {\n const {\n className,\n translations: {\n searchName,\n employeeSearchName,\n employeeSearchPlaceholder,\n studySearchName,\n studySearchPlaceholder,\n ...restTranslations\n },\n allEmployeePage,\n findAndExpertPage,\n searchEmployeeUrl,\n allStudyPage,\n quizPage,\n getCategoriesUrl,\n getLevelsUrl,\n searchStudyUrl,\n } = props;\n\n const getLinks = (...pages: Array) => pages.filter(isTruthy).filter(link => link.href);\n\n const studySearchTabIdentifier = React.useMemo(() => uniqueId(studySearchName), [studySearchName]);\n const employeeSearchTabIdentifier = React.useMemo(() => uniqueId(employeeSearchName), [employeeSearchName]);\n\n const tabs = [\n {\n tabKey: studySearchTabIdentifier,\n tabName: studySearchName,\n tabContent: (\n \n ),\n tabClassName: styles.StudySearchTab,\n tabSelectedClassName: styles['StudySearchTab--selected'],\n key: 'HomeHeroSearchStudies',\n },\n {\n tabKey: employeeSearchTabIdentifier,\n tabName: employeeSearchName,\n tabContent: (\n \n ),\n tabClassName: styles.EmployeeSearchTab,\n tabSelectedClassName: styles['EmployeeSearchTab--selected'],\n key: 'HomeHeroSearchEmployees',\n },\n ];\n\n return (\n
    \n \n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Tabs\":\"d06SecWo6dzsRzhP1H_O\",\"TabList\":\"WjyS7SnBF2Lg1IZz9JS6\",\"StudySearchTab\":\"_5AO3T1qAlHDqDIy9lR5c\",\"StudySearchTab--selected\":\"O2tU2OhzIVqlSG5ZqFdw\",\"EmployeeSearchTab\":\"r_nMjWmGzsRCGyxQ9WDd\",\"EmployeeSearchTab--selected\":\"coEsB5PqQReGbQtybpqg\"};","// extracted by mini-css-extract-plugin\nexport default {\"HomeHero\":\"yy3aI2uG1ge___DzugFO\",\"Hero\":\"K1xlaT1H4lSqHfRZv92g\",\"HeroInner\":\"w_4DT1i90afSRD_3h_j6\",\"Info\":\"fpgfwOAp70Ou9hWR0xD4\",\"Heading\":\"PGlWKQV2n0rG12AQZQVP\",\"Link\":\"DTtKHJgc6wd5zIS2ZTDB\",\"LinkLabel\":\"JkVIx4l6GjSOM4FBF6uJ\",\"Icon\":\"Ox_7Lc3CsesYpbXEshqE\",\"Label\":\"HE2Qz71pfE7lksV0qHdm\",\"Search\":\"XuV2bkWR3eF8m2gcfYRP\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { HomeHeroProps } from '../../../ViewModels/HomeHeroProps.csharp';\nimport { HomeHeroSearch } from '../HomeHeroSearch/HomeHeroSearch';\nimport { BackgroundMediaSection } from '~/Partials/BackgroundMediaSection/BackgroundMediaSection';\nimport { HtmlHeading } from '~/Partials/Controls/HtmlHeading';\nimport { Link } from '~/Partials/Link/Link';\nimport { LinkType } from '~/Partials/Link/LinkType.csharp';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport { useWindowWidthDetection } from '~/Utils/Hooks/useWindowWidthDetection';\nimport { MediaBreakpoints } from '~/Utils/MediaBreakpoints';\nimport styles from './HomeHero.module.css';\n\nexport const HomeHero: React.FC> = props => {\n const { image, heading, link, homeHeroSearch } = props;\n const isMobile = useWindowWidthDetection({ condition: 'lessThan', breakpoint: MediaBreakpoints.Tablet });\n\n const isMobileOrFirstRender = isMobile !== false;\n const isTabletOrFirstRender = isMobile !== true;\n\n return (\n
    \n \n
    \n
    \n \n \n {link.label}\n \n \n
    \n {isTabletOrFirstRender && (\n \n )}\n
    \n
    \n {isMobileOrFirstRender && (\n \n )}\n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Inner\":\"EwPhzUN1NfTBa1XOsTE6\",\"ActivityIndicatorRotate\":\"ZNgVI5R_Ahgk3DnOyUhN\",\"Inner--cover\":\"TVMntCe8qkWIdDcQxQb6\",\"Outer\":\"FxrXNHIEItswETCvk14E\",\"Children\":\"rK8S3lKkJdvsHyzk1dZ1\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport styles from './ActivityIndicator.module.css';\n\nexport interface ActivityIndicatorProps {\n cover?: boolean;\n active?: boolean;\n modal?: boolean;\n children?: string | React.ReactNode;\n}\n\nconst ModalWrapper: React.FC> = props => {\n const { visible, children } = props;\n\n return (\n \n {children}\n \n );\n};\n\nexport const ActivityIndicator: React.FC> = React.memo(props => {\n const { modal = true, cover, active = true, children } = props;\n\n const Wrapper = modal ? ModalWrapper : React.Fragment;\n const wrapperProps = modal ? { visible: active } : {}; // react.Fragment cannot have any props\n\n return (\n \n \n {children && (\n {children}\n )}\n \n );\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"BackgroundMediaSection\":\"BHZEJUDSIPpKa0oPrsHx\",\"Wrapper\":\"bLAdaCckoHBaiIC97_jU\",\"Wrapper--grid\":\"uwdDbr8iIUnkWFMVwpIF\",\"Content\":\"eh99tHo126OqTC2jRbLr\",\"Media\":\"dabmDRgUTnFwXNJ_grkU\",\"PlaceholderLogoWrapper\":\"ao2rID4I7z5HbixkFtUo\",\"Variant--withCaption\":\"HX85CpiEVtHWECQTXiNh\",\"Figure\":\"jEirhd8enG4d6AOhcLDQ\",\"Variant--fullDark\":\"xy4iFrsV2Sz8Qp0apyvq\",\"Variant--fullLight\":\"mpJQGg0dDaijqjuWkH6Z\",\"Variant--topToBottomGreyGradient\":\"AAvVhuWR4ZqvJONVflO9\",\"Variant--leftToRightDarkGreyGradient\":\"HKWJI6twVeF2fy35QptA\",\"Variant--upperTransparentLineGradient\":\"X4a8TM_Yrz4vY4qRwPCe\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { BaseImage } from '../Picture/Picture';\nimport { Picture } from '../Picture/Picture';\nimport { PictureProfiles } from '../Picture/PictureProfiles';\nimport { PicturePlaceholder } from '~/Partials/Picture/Placeholder/PicturePlaceholder';\nimport type { BackgroundMediaLayoutVariant } from './BackgroundMediaLayoutVariant';\nimport type { BackgroundMediaOverlayVariant } from './BackgroundMediaOverlayVariant';\nimport styles from './BackgroundMediaSection.module.css';\n\nexport interface BackgroundMediaSectionProps {\n id?: string;\n image?: BaseImage;\n video?: string;\n caption?: string;\n author?: string;\n overlayVariant?: BackgroundMediaOverlayVariant;\n layout?: BackgroundMediaLayoutVariant;\n className?: string;\n wrapperClassName?: string;\n contentClassName?: string;\n mediaClassName?: string;\n}\n\nexport const BackgroundMediaSection: React.FC> = props => {\n const {\n children,\n id,\n image,\n video,\n caption,\n author,\n className,\n wrapperClassName,\n contentClassName,\n mediaClassName,\n layout = 'default',\n overlayVariant = 'topToBottomGreyGradient',\n } = props;\n\n const getMediaElement = () => {\n const mediaClass = classNames(styles.Media, mediaClassName);\n\n if (video) {\n return (\n
    \n
    \n );\n }\n\n if (image) {\n return ;\n }\n\n return ;\n };\n\n const getMediaElementWithCaption = () => {\n const mediaElement = getMediaElement();\n\n return (\n
    \n {mediaElement}\n
    \n {caption && {caption}}\n {author && {author}}\n
    \n
    \n );\n };\n\n const mediaContent = caption || author ? getMediaElementWithCaption() : getMediaElement();\n\n return (\n \n \n
    {children}
    \n \n {mediaContent}\n \n );\n};\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport type { StrictOmit } from '../Utils/typeUtils';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport type { Theme } from '~/Utils/Theme';\nimport styles from './Button.module.css';\nimport type { ButtonSize } from './ButtonSize.csharp';\nimport type { ButtonTier } from './ButtonTier.csharp';\nimport { ButtonType } from './ButtonType.csharp';\n\ntype HtmlButtonType = 'submit' | 'reset' | 'button';\n\nexport interface DefaultButtonProps {\n children: ReactNode;\n className?: string;\n htmltype?: HtmlButtonType;\n /* STYLES PROPS */\n size?: ButtonSize;\n tier?: ButtonTier;\n type?: ButtonType;\n theme?: Theme;\n}\n\ntype NativeButtonAttributes = Pick<\n React.ButtonHTMLAttributes,\n | 'aria-selected'\n | 'aria-controls'\n | 'aria-expanded'\n | 'role'\n | 'aria-haspopup'\n | 'aria-describedby'\n | 'aria-label'\n | 'tabIndex'\n | 'title'\n | 'id'\n | 'disabled'\n | 'draggable'\n | 'onClick'\n | 'onFocus'\n | 'onMouseDown'\n>;\n\nexport type ButtonProps = DefaultButtonProps & NativeButtonAttributes;\n\nexport const Button = React.forwardRef((props, ref) => {\n const { children, theme, ...passThroughProps } = props;\n const { type } = passThroughProps;\n\n if (type && type !== ButtonType.Clear) {\n return (\n \n {children}\n \n );\n }\n\n return (\n \n {children}\n \n );\n});\n\ntype RawButtonProps = StrictOmit;\n\nconst RawButton = React.forwardRef((props, ref) => {\n const { className, children, size, tier, type, htmltype = 'button', ...otherProps } = props;\n\n const getButtonClassName = () =>\n classNames(\n type && styles[`Variant--${type}`],\n tier && styles[`Variant--${tier}`],\n size && styles[`Variant--${size}`],\n className\n );\n\n return (\n \n );\n});\n\nconst ThemedButton = React.forwardRef((props, ref) => {\n const contextualTheme = useTheme();\n const { children, className, theme = contextualTheme, ...additionalProps } = props;\n\n const { withBoxShadow, withRoundedCorners } = theme;\n\n return (\n \n {children}\n \n );\n});\n","// This code was generated by a Reinforced.Typings tool.\n// Changes to this file may cause incorrect behavior and will be lost if\n// the code is regenerated.\n\nexport enum ButtonSize {\n\tXSmall = \"xSmall\",\n\tResponsiveFromXSmallToSmall = \"responsiveFromXSmallToSmall\",\n\tSmall = \"small\",\n\tResponsiveFromSmallToMedium = \"responsiveFromSmallToMedium\",\n\tResponsiveFromSmallToLarge = \"responsiveFromSmallToLarge\",\n\tResponsiveFromMediumToSmall = \"responsiveFromMediumToSmall\",\n\tMedium = \"medium\",\n\tResponsiveFromMediumToLarge = \"responsiveFromMediumToLarge\",\n\tResponsiveFromLargeToSmall = \"responsiveFromLargeToSmall\",\n\tLarge = \"large\",\n\tResponsiveFromLargeToXLarge = \"responsiveFromLargeToXLarge\",\n\tXLarge = \"xLarge\"\n}\n","// This code was generated by a Reinforced.Typings tool.\n// Changes to this file may cause incorrect behavior and will be lost if\n// the code is regenerated.\n\nexport enum ButtonTier {\n\tPrimary = \"primary\",\n\tSecondary = \"secondary\",\n\tTertiary = \"tertiary\",\n\tRed = \"red\",\n\tLegacyPrimary = \"legacyPrimary\"\n}\n","import * as React from 'react';\nimport type { HtmlString } from '~/Features/Types/HtmlString.csharp';\n\nexport interface HtmlHeadingProps {\n html: HtmlString;\n type: keyof Pick;\n id?: string;\n className?: string;\n}\n\nexport const HtmlHeading: React.FC = props => {\n const { type, html, id, className } = props;\n\n return React.createElement(type, { className, id, dangerouslySetInnerHTML: { __html: html.value } });\n};\n","import type { AxiosResponse, Canceler } from 'axios';\nimport axios, { isCancel } from 'axios';\nimport * as React from 'react';\nimport { usePrevious } from '../Utils/usePrevious';\nimport { checkEquals } from '../Utils/utils';\nimport { useDebounce } from '~/Utils/Hooks/useDebounce';\nimport { axiosWrapper } from './axiosWrapper';\nimport type { FetchDataAction, FetchDataHookProps, FetchDataHookReturn, FetchDataHookState } from './types';\n\nfunction reducer(\n state: FetchDataHookState,\n action: FetchDataAction\n): FetchDataHookState {\n switch (action.type) {\n case 'SET_DATA':\n return {\n ...state,\n data: action.payload,\n loading: false,\n error: undefined,\n };\n case 'SET_ERROR':\n return {\n ...state,\n loading: false,\n data: undefined,\n error: action.payload,\n };\n case 'START_REQUEST':\n return {\n ...state,\n error: undefined,\n loading: true,\n dataRequested: true,\n };\n default:\n return state;\n }\n}\n\nexport function useFetchData(\n props: FetchDataHookProps\n): FetchDataHookReturn {\n const { url, params, method = 'get', shouldMakeRequest = true, debounceTime = 200, timeout = 0 } = props;\n\n const [{ data, loading, error, dataRequested }, dispatch] = React.useReducer<\n React.Reducer, FetchDataAction>\n >(reducer, {\n data: undefined,\n loading: false,\n error: undefined,\n dataRequested: false,\n });\n\n const previousProps = usePrevious({ url, method, params });\n const requestWithDebounce = useDebounce(request, debounceTime);\n\n const cancelToken = React.useRef();\n\n React.useEffect(() => {\n if (shouldMakeRequest) {\n fetchData();\n }\n\n return () => {\n if (cancelToken.current) {\n cancelToken.current();\n }\n };\n }, []);\n\n React.useEffect(() => {\n const propsChanged = previousProps\n ? previousProps.url !== url || previousProps.method !== method || !checkEquals(previousProps.params, params)\n : false;\n\n if ((propsChanged || !dataRequested) && shouldMakeRequest) {\n fetchData();\n }\n }, [url, method, params, dataRequested, shouldMakeRequest]);\n\n function fetchData() {\n if (cancelToken.current) {\n cancelToken.current();\n }\n\n dispatch({ type: 'START_REQUEST' });\n requestWithDebounce();\n }\n\n function request() {\n axiosWrapper\n .request>({\n url,\n method,\n params,\n timeout,\n cancelToken: new axios.CancelToken(token => {\n cancelToken.current = token;\n }),\n })\n .then(response => {\n cancelToken.current = undefined;\n dispatch({ type: 'SET_DATA', payload: response.data });\n })\n .catch(e => {\n if (isCancel(e)) {\n return;\n }\n\n dispatch({ type: 'SET_ERROR', payload: e.message });\n // eslint-disable-next-line no-console\n console.error(e);\n });\n }\n\n return {\n data,\n loading,\n error,\n };\n}\n","import ExecutionContext from '../../ExecutionContext';\nimport type { GtmPageStatsViewModel } from '../GtmPageStats/GtmPageStatsViewModel.csharp';\nimport type { GoogleTagManagerData, GoogleTagManagerProperties } from './GoogleTagManagerModels';\n\ntype DataLayerModel = GoogleTagManagerData | GoogleTagManagerProperties;\n\nexport class GtmEventsBase {\n public static pushGtmPageStats = (gtmPageStatsViewModel: GtmPageStatsViewModel) => {\n GtmEventsBase.push(gtmPageStatsViewModel.properties);\n };\n\n public static pushEvent = (eventName: string, payLoad: GoogleTagManagerProperties = []) => {\n GtmEventsBase.push({ event: eventName, ...payLoad });\n };\n\n protected static push(data: DataLayerModel) {\n if (ExecutionContext.IsServerSide()) {\n return;\n }\n\n const { dataLayer } = window as any;\n dataLayer && dataLayer.push(data);\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"Link\":\"XezMfDvRba8HKhHr79wm\",\"Variant--button\":\"UssovIOXlEuxxbOHY4c4\",\"Label\":\"DdPYOTimBd1c8zDeoFgi\",\"Variant--default\":\"BaRcrU5NpyAMFJiitXyJ\",\"Variant--clear\":\"B5Z4_vbRcPt248iwmQXi\",\"ExternalIcon\":\"STANzowJsaT4J9r68lKO\",\"Variant--primaryVariant\":\"Ao72_5IgozgF9TjFNNMg\",\"Variant--secondaryVariant\":\"LJeoDEcvQBM1fqdwcmyQ\",\"Variant--lightBlackVariant\":\"acIUmsBFtHkURrDJnial\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport buttonStyles from '../Button/Button.module.css';\nimport { ButtonSize } from '../Button/ButtonSize.csharp';\nimport { ButtonTier } from '../Button/ButtonTier.csharp';\nimport { ButtonType } from '../Button/ButtonType.csharp';\nimport { SvgIcon } from '../SvgIcon/SvgIcon';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport type { StrictOmit } from '~/Partials/Utils/typeUtils';\nimport { omitProperty } from '~/Partials/Utils/utils';\nimport type { Theme } from '~/Utils/Theme';\nimport styles from './Link.module.css';\nimport { LinkType } from './LinkType.csharp';\nimport { LinkVariant } from './LinkVariant.csharp';\nimport type { StyledLinkViewModel } from './StyledLinkViewModel.csharp';\n\nexport interface BaseLinkProps extends StrictOmit {\n theme?: Theme;\n labelClassName?: string;\n}\n\ninterface LinkWithLabel extends BaseLinkProps {\n label: string;\n}\n\ninterface LinkWithChildren extends BaseLinkProps {\n children: ReactNode;\n}\n\ntype NativeLinkAttributes = Pick<\n React.AnchorHTMLAttributes,\n | 'aria-selected'\n | 'aria-controls'\n | 'aria-expanded'\n | 'role'\n | 'aria-haspopup'\n | 'aria-describedby'\n | 'aria-label'\n | 'tabIndex'\n | 'onClick'\n | 'lang'\n | 'download'\n | 'title'\n>;\n\nexport type LinkProps = (LinkWithChildren | LinkWithLabel) & NativeLinkAttributes;\n\nexport const Link = React.forwardRef>((props, ref) => {\n const { children, theme, ...passThroughProps } = props;\n const { type, buttonType } = passThroughProps;\n\n const filteredProps = 'label' in passThroughProps ? omitProperty(passThroughProps, 'label') : passThroughProps;\n\n const elementToRender = children ?? ('label' in props && props.label);\n\n if (type === LinkType.Button && buttonType !== ButtonType.Clear) {\n return ;\n }\n\n return ;\n});\n\ninterface RawLinkProps extends StrictOmit, NativeLinkAttributes {\n elementToRender: ReactNode;\n}\n\nconst RawLink = React.forwardRef((props, ref) => {\n const {\n elementToRender,\n className,\n labelClassName,\n type = LinkType.Default,\n variant = LinkVariant.Default,\n buttonType = ButtonType.Solid,\n buttonTier = ButtonTier.LegacyPrimary,\n buttonSize = ButtonSize.Large,\n external = false,\n showIsExternal = true,\n ...additionalProps\n } = props;\n\n const getLinkClassName = () => {\n if (type === LinkType.Button) {\n return classNames(\n styles.Link,\n styles['Variant--button'],\n buttonStyles[`Variant--${buttonType}`],\n buttonStyles[`Variant--${buttonTier}`],\n buttonStyles[`Variant--${buttonSize}`],\n className\n );\n }\n\n return classNames(\n styles.Link,\n styles[`Variant--${type}`],\n variant !== 'default' && styles[`Variant--${variant}Variant`],\n className\n );\n };\n\n return (\n \n
    {elementToRender}
    \n {external && showIsExternal && }\n \n );\n});\n\ninterface ThemedButtonLinkProps extends RawLinkProps {\n theme?: Theme;\n}\n\nconst ThemedButtonLink = React.forwardRef((props, ref) => {\n const contextualTheme = useTheme();\n const { className, theme = contextualTheme, ...additionalProps } = props;\n\n const { withBoxShadow, withRoundedCorners } = theme;\n\n return (\n \n );\n});\n","// This code was generated by a Reinforced.Typings tool.\n// Changes to this file may cause incorrect behavior and will be lost if\n// the code is regenerated.\n\nexport enum LinkType {\n\tDefault = \"default\",\n\tButton = \"button\",\n\tClear = \"clear\"\n}\n","// This code was generated by a Reinforced.Typings tool.\n// Changes to this file may cause incorrect behavior and will be lost if\n// the code is regenerated.\n\nexport enum LinkVariant {\n\tDefault = \"default\",\n\tPrimary = \"primary\",\n\tSecondary = \"secondary\",\n\tLightBlack = \"lightBlack\"\n}\n","import * as React from 'react';\nimport type { ReactNode } from 'react';\n\ninterface ListProps extends Pick, 'role' | 'tabIndex' | 'onKeyDown'> {\n items: ReadonlyArray;\n renderItem: (item: T, index: number) => ReactNode;\n className?: string;\n}\n\nconst ListComponent = (props: ListProps, ref?: React.Ref) => {\n const { items, renderItem, className, ...otherProps } = props;\n\n return (\n
      \n {items.map((item, index) => renderItem(item, index))}\n
    \n );\n};\n\ntype GenericForwardRefList = (\n props: ListProps & { ref?: React.Ref }\n) => React.ReactElement;\n\nexport const List = React.forwardRef(ListComponent) as GenericForwardRefList;\n","export const constructImageSharpUrl = (baseUrl: string, width: number) => `${baseUrl}?width=${width}`;\n","import classNames from 'classnames';\nimport clamp from 'lodash/clamp';\nimport * as React from 'react';\nimport type { Theme } from '~/Utils/Theme';\nimport { themeDefaultValues } from '~/Utils/Theme';\nimport styles from './Picture.module.css';\nimport { constructImageSharpUrl } from './Utils/constructImageSharpUrl';\n\nexport interface PictureSource {\n allowedWidths: number[];\n sizes: string[];\n}\n\nexport interface PictureProfile {\n sources: PictureSource[];\n defaultWidth: number;\n}\n\nexport interface FocalPoint {\n x: number;\n y: number;\n}\n\nexport interface BaseImage {\n url: string;\n alt: string;\n focalPoint?: FocalPoint;\n lazyLoading?: boolean;\n}\n\nexport interface PictureDefinition extends BaseImage {\n profile: PictureProfile;\n}\n\nexport interface PictureProps extends PictureDefinition {\n theme?: Pick;\n className?: string;\n}\n\nexport const Picture: React.FC> = props => {\n const { url, alt, focalPoint, profile, className, theme = themeDefaultValues, lazyLoading = true } = props;\n\n const { withRoundedCorners } = theme;\n\n const createPicture = (pictureUrl: string, pictureAlt: string, pictureProfile: PictureProfile) => {\n const [mainSource] = pictureProfile.sources;\n const sourceSizes = mainSource.sizes.join(', ');\n const sourceSrcSets = mainSource.allowedWidths\n .map(width => `${constructImageSharpUrl(pictureUrl, width)} ${width}w`)\n .join(', ');\n\n const getPosition = (point: FocalPoint) => {\n const xPosition = clamp(point.x, 0, 1);\n const yPosition = clamp(point.y, 0, 1);\n\n return `${xPosition * 100}% ${yPosition * 100}%`;\n };\n\n return (\n \n \n \n \n );\n };\n\n return (\n
    \n {createPicture(url, alt, profile)}\n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Picture\":\"slJnKPGAAIKofsQwQBjL\",\"Variant--rounded\":\"vPKYJ9xnnqorRitmkm3i\"};","import type { PictureProfile } from '~/Partials/Picture/Picture';\n\nexport class PictureProfiles {\n static readonly threeColumnsElement: PictureProfile = {\n defaultWidth: 500,\n sources: [\n {\n allowedWidths: [175, 375, 500, 768],\n sizes: ['(min-width: 1920px) 500px', '(min-width: 768px) 25vw', '100vw'],\n },\n ],\n };\n\n static readonly fourColumnsElement: PictureProfile = {\n defaultWidth: 500,\n sources: [\n {\n allowedWidths: [375, 500, 768],\n sizes: ['(min-width: 768px) 33vw', '100vw'],\n },\n ],\n };\n\n static readonly sixColumnsElement: PictureProfile = {\n defaultWidth: 500,\n sources: [\n {\n allowedWidths: [375, 500, 768, 1024],\n sizes: ['(min-width: 768px) 50vw', '100vw'],\n },\n ],\n };\n\n static readonly fullWidth: PictureProfile = {\n defaultWidth: 1440,\n sources: [\n {\n allowedWidths: [375, 768, 1024, 1440, 1920],\n sizes: ['100vw'],\n },\n ],\n };\n\n static readonly horizontal: PictureProfile = {\n defaultWidth: 1440,\n sources: [\n {\n allowedWidths: [375, 768, 1440],\n sizes: ['(min-width: 1440px) 1440px', '100vw'],\n },\n ],\n };\n\n static readonly vertical: PictureProfile = {\n defaultWidth: 552,\n sources: [\n {\n allowedWidths: [375, 768, 1536],\n sizes: ['(max-width: 767px) 100vw', '(min-width: 768px) 552px'],\n },\n ],\n };\n\n static readonly callout: PictureProfile = {\n defaultWidth: 258,\n sources: [\n {\n allowedWidths: [120, 240],\n sizes: ['(max-width: 767px) 100vw', '(min-width: 768) 120px'],\n },\n ],\n };\n\n static readonly contentCard: PictureProfile = {\n defaultWidth: 1440,\n sources: [\n {\n allowedWidths: [375, 768, 1136],\n sizes: ['(min-width: 1024px) 1136px', '(min-width: 768px) 768px', '100vw'],\n },\n ],\n };\n\n static readonly studyPortfolioItem: PictureProfile = {\n defaultWidth: 630,\n sources: [\n {\n allowedWidths: [260, 340, 410, 560, 675, 710, 810, 870],\n sizes: ['(max-width: 767px) 90vw', '(min-width: 768px) 45vw'],\n },\n ],\n };\n\n static readonly galleryItemSquare: PictureProfile = {\n defaultWidth: 480,\n sources: [\n {\n allowedWidths: [300, 380, 480],\n sizes: ['(min-width: 476px) 380px', '(min-width: 768px) 480px', '300px'],\n },\n ],\n };\n\n static readonly galleryItemVertical: PictureProfile = {\n defaultWidth: 360,\n sources: [\n {\n allowedWidths: [360, 520],\n sizes: ['(max-width: 767px) 100vw', '(min-width: 768px) 360px'],\n },\n ],\n };\n\n static readonly galleryItemHorizontal: PictureProfile = {\n defaultWidth: 640,\n sources: [\n {\n allowedWidths: [640],\n sizes: ['(max-width: 767px) 80vw', '(min-width: 768px) 640px'],\n },\n ],\n };\n\n static readonly mainPosterVertical: PictureProfile = {\n defaultWidth: 500,\n sources: [\n {\n allowedWidths: [500, 768, 1024, 1300],\n sizes: ['(min-width: 768px) 70vw', '100vw'],\n },\n ],\n };\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"LogoWrapper\":\"rLPb41_nB0G4MecZ4mE5\",\"Logo\":\"tZgaCxFP4U3Uwa4Sad4N\",\"Variant--default\":\"ZSbIyUzr6rSK_5dXtkvi\",\"Variant--light\":\"CEuKCgcYyO4PiyJodS9w\",\"Variant--rounded\":\"ubaUESvsjg4uza8S1zV9\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { Theme } from '~/Utils/Theme';\nimport { themeDefaultValues } from '~/Utils/Theme';\nimport styles from './PicturePlaceholder.module.css';\nimport type { PlaceholderVariant } from './PlaceholderVariant';\n\nexport interface PicturePlaceholderProps {\n variant?: PlaceholderVariant;\n className?: string;\n logoWrapperClassName?: string;\n theme?: Theme;\n}\n\nexport const PicturePlaceholder: React.FC> = props => {\n const { className, logoWrapperClassName, theme = themeDefaultValues, variant = 'default' } = props;\n\n const { withRoundedCorners } = theme;\n\n return (\n \n
    \n
    \n
    \n
    \n );\n};\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { ActivityIndicator } from '../../ActivityIndicator/ActivityIndicator';\nimport styles from './SearchBoxResults.module.css';\n\nexport interface SearchBoxResultsProps {\n loading: boolean;\n children: ReactNode;\n error?: string;\n errorTranslation?: ReactNode;\n className?: string;\n}\n\nexport const SearchBoxResults: React.FunctionComponent> = props => {\n const { error, errorTranslation, className, loading, children } = props;\n\n const renderList = () => {\n if (error) {\n return (\n \n {errorTranslation} {error}\n \n );\n }\n\n if (loading) {\n return (\n \n \n \n );\n }\n\n return children;\n };\n\n return
    {renderList()}
    ;\n};\n","import * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { Button } from '../Button/Button';\nimport { buildTabId, buildTabPanelId } from '../Tabs/tabUtils';\nimport { scrollToElement } from '~/Features/Partials/Utils/utils';\n\nexport type TabKey = React.Key;\n\ninterface TabProps {\n children: ReactNode;\n tabKey: TabKey;\n selected: boolean;\n onSelect: (tabKey: TabKey) => void;\n className?: string;\n}\n\nexport const Tab: React.FC> = props => {\n const { children, tabKey, selected, onSelect, className } = props;\n\n const buttonRef = React.useRef(null);\n const hasUserInteractedRef = React.useRef(false);\n\n const id = buildTabId(tabKey);\n const panelId = buildTabPanelId(tabKey);\n\n React.useEffect(() => {\n if (!hasUserInteractedRef.current) {\n return;\n }\n\n hasUserInteractedRef.current = false;\n\n if (selected && buttonRef.current) {\n scrollToElement(buttonRef.current, 'smooth', 'nearest', 'center');\n }\n }, [selected]);\n\n const onClick = () => {\n hasUserInteractedRef.current = true;\n onSelect(tabKey);\n };\n\n return (\n \n {children}\n \n );\n};\n","import * as React from 'react';\nimport type { ReactNode } from 'react';\nimport { tabbable } from 'tabbable';\nimport { Key } from 'ts-keycode-enum';\nimport { scrollToElement } from '~/Partials/Utils/utils';\n\ninterface TabListProps {\n children: ReactNode;\n name: string;\n id?: string;\n className?: string;\n ref?: React.Ref;\n}\n\nconst handleFocusChange = (event: React.KeyboardEvent, element: HTMLElement) => {\n element.focus();\n scrollToElement(element, 'smooth', 'nearest', 'center');\n\n // Disable default scroll behavior on arrow keys\n event.preventDefault();\n};\n\nexport const TabList = React.forwardRef>((props, ref) => {\n const { children, name, id, className } = props;\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.keyCode === Key.LeftArrow || e.keyCode === Key.RightArrow) {\n if (typeof ref !== 'object' || ref === null) {\n throw new Error('Callback refs are not supported.');\n }\n\n if (!ref.current) {\n return;\n }\n\n const tabbableDescendants = tabbable(ref.current);\n const currentFocusedElement = tabbableDescendants.find(el => el === document.activeElement);\n\n if (currentFocusedElement && tabbableDescendants.length > 1) {\n if (e.keyCode === Key.LeftArrow) {\n if (currentFocusedElement.previousSibling) {\n handleFocusChange(e, currentFocusedElement.previousSibling as HTMLElement);\n } else {\n handleFocusChange(e, tabbableDescendants[tabbableDescendants.length - 1] as HTMLElement);\n }\n } else if (e.keyCode === Key.RightArrow) {\n if (currentFocusedElement.nextSibling) {\n handleFocusChange(e, currentFocusedElement.nextSibling as HTMLElement);\n } else {\n handleFocusChange(e, tabbableDescendants[0] as HTMLElement);\n }\n }\n }\n }\n };\n\n return (\n // eslint-disable-next-line jsx-a11y/interactive-supports-focus\n
    \n {children}\n
    \n );\n});\n","import * as React from 'react';\nimport type { TabKey } from '~/Partials/TabList/Tab';\nimport { buildTabId, buildTabPanelId } from '~/Partials/Tabs/tabUtils';\n\nexport interface TabPanelProps {\n tabKey: TabKey;\n className?: string;\n}\n\nexport const TabPanel: React.FC> = props => {\n const { tabKey, className, children } = props;\n\n return (\n
    \n {children}\n
    \n );\n};\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport type { ReactNode } from 'react';\nimport type { TabKey } from '../TabList/Tab';\nimport { Tab } from '../TabList/Tab';\nimport { TabList } from '../TabList/TabList';\nimport { TabPanel } from './TabPanel';\nimport styles from './Tabs.module.css';\n\nexport interface TabsItemProps {\n tabKey: TabKey;\n tabName: string;\n tabContent: ReactNode;\n tabClassName?: string;\n tabSelectedClassName?: string;\n}\n\nexport interface TabsProps {\n name: string;\n selectedTab: TabKey;\n tabs: TabsItemProps[];\n children?: ReactNode;\n onSelect?(tabKey: TabKey): void;\n className?: string;\n tabsListClassName?: string;\n panelsClassName?: string;\n panelClassName?: string;\n TabListWrapper?: React.FC;\n beforeTabs?: ReactNode;\n afterTabs?: ReactNode;\n tabListRef?: React.RefObject;\n}\n\nexport const Tabs: React.FC> = props => {\n const {\n className,\n tabsListClassName,\n panelsClassName,\n panelClassName,\n tabs,\n selectedTab,\n name,\n onSelect,\n TabListWrapper = React.Fragment,\n tabListRef,\n } = props;\n\n const [currentTab, setCurrentTab] = React.useState(selectedTab || tabs[0].tabKey);\n\n React.useEffect(() => setCurrentTab(selectedTab), [selectedTab]);\n\n const handleSelect = (tabKey: TabKey) => {\n setCurrentTab(tabKey);\n onSelect && onSelect(tabKey);\n };\n\n const isTabSelected = (tabKey: TabKey) => tabKey === currentTab;\n\n const renderTab = (tabProps: TabsItemProps) => {\n const { tabName, tabClassName, tabSelectedClassName, tabKey } = tabProps;\n const isSelected = isTabSelected(tabKey);\n\n return (\n \n {tabName}\n \n );\n };\n\n const renderPanel = (tabProps: TabsItemProps) => {\n const { tabContent, tabKey } = tabProps;\n\n return (\n \n {tabContent}\n \n );\n };\n\n const renderTabList = () => (\n \n {tabs.map(renderTab)}\n \n );\n\n return (\n
    \n {renderTabList()}\n
    {tabs.map(renderPanel)}
    \n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Panels\":\"jaWakwTlr083IlabBh3w\",\"Panel--inactive\":\"gtro7ZD8xMPr5ZbrapYm\"};","import type { TabKey } from '~/Partials/TabList/Tab';\nimport { replaceNotFriendlyCharacters } from '~/Partials/Utils/utils';\n\nexport const buildTabId = (tabKey: TabKey) => `tab_${replaceNotFriendlyCharacters(tabKey.toString().toLowerCase())}`;\nexport const buildTabPanelId = (tabKey: TabKey) =>\n `tabPanel_${replaceNotFriendlyCharacters(tabKey.toString().toLowerCase())}`;\n","import * as React from 'react';\n\nexport function usePrevious(value: T) {\n const ref = React.useRef();\n React.useEffect(() => {\n ref.current = value;\n });\n\n return ref.current as T;\n}\n","import debounce from 'lodash/debounce';\nimport * as React from 'react';\nimport { useVariableWithStableRef } from './useVariableWithStableRef';\n\nexport function useDebounce(callback: () => void, debounceTime: number) {\n const handlerRef = useVariableWithStableRef(callback);\n\n return React.useCallback(\n debounce(() => handlerRef.current?.(), debounceTime),\n [handlerRef]\n );\n}\n","import type { UseSelectState, UseSelectStateChangeOptions, UseSelectStateChange } from 'downshift';\nimport { useSelect } from 'downshift';\nimport * as React from 'react';\n\nexport interface SelectionValue {\n id: string;\n}\n\ninterface UseMultiselectProps {\n items: TValue[];\n itemToString: (item: TValue | null) => string;\n selectedItems: TValue[];\n onSelectionChanged: (items: TValue[]) => void;\n initialIsOpen?: boolean;\n}\n\nexport const useMultiselect = (props: UseMultiselectProps) => {\n const { items, itemToString, selectedItems, onSelectionChanged, initialIsOpen } = props;\n\n const selectionReducer = (state: UseSelectState, actionAndChanges: UseSelectStateChangeOptions) => {\n const { changes, type } = actionAndChanges;\n\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:\n case useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:\n case useSelect.stateChangeTypes.ItemClick:\n return {\n ...changes,\n isOpen: true, // keep the menu open after selection.\n highlightedIndex: state.highlightedIndex, // preserve last highlighted item after selection.\n };\n case useSelect.stateChangeTypes.ToggleButtonBlur:\n return {\n ...changes,\n selectedItem: null, // prevent highlighted item toggling on blur (i.e. on tabbing)\n };\n default:\n return changes;\n }\n };\n\n const toggleButtonRef = React.useRef(null);\n\n const isSelected = (value: TValue) => selectedItems.map(item => item.id).includes(value.id);\n\n const onSelectionStateChange = (stateChange: UseSelectStateChange) => {\n const { selectedItem } = stateChange;\n\n if (!selectedItem) {\n return;\n }\n\n const newItems = isSelected(selectedItem)\n ? selectedItems.filter(item => item.id !== selectedItem.id)\n : [...selectedItems, selectedItem];\n\n onSelectionChanged(newItems);\n };\n\n const { isOpen, highlightedIndex, getLabelProps, getToggleButtonProps, getMenuProps, getItemProps } = useSelect({\n selectedItem: null,\n items,\n itemToString,\n stateReducer: selectionReducer,\n onStateChange: onSelectionStateChange,\n initialIsOpen,\n });\n\n return {\n isOpen,\n isSelected,\n highlightedIndex,\n getLabelProps: () => getLabelProps(),\n getToggleButtonProps: () => getToggleButtonProps({ ref: toggleButtonRef }),\n getMenuProps: () => getMenuProps({ 'aria-multiselectable': true, tabIndex: -1 }),\n getItemProps: (item: TValue) =>\n getItemProps({\n item,\n 'aria-selected': isSelected(item),\n tabIndex: -1,\n // Focus the toggle button on item click in case there is some kind of list wrapper\n // that allows hijacking the focus yet keeps the list open.\n onMouseDown: () => {\n toggleButtonRef.current?.focus();\n },\n }),\n };\n};\n","import { useEffect, useRef } from 'react';\n\nexport function useVariableWithStableRef(variable: T) {\n const variableRef = useRef(variable);\n\n useEffect(() => {\n variableRef.current = variable;\n }, [variable]);\n\n return variableRef;\n}\n","import * as React from 'react';\nimport { assertNever } from '~/Partials/Utils/typeUtils';\n\nconst CheckIfWidthMatchesOptions = (width: number, options: WindowWidthDetectionOptions) => {\n switch (options.condition) {\n case 'greaterThan':\n return width > options.breakpoint;\n case 'greaterOrEqual':\n return width >= options.breakpoint;\n case 'lessThan':\n return width < options.breakpoint;\n case 'lessOrEqual':\n return width <= options.breakpoint;\n case 'inRange':\n return width >= options.lowerBreakpoint && width <= options.upperBreakpoint;\n case 'inRangeExclusive':\n return width > options.lowerBreakpoint && width < options.upperBreakpoint;\n default:\n assertNever(options);\n }\n};\n\ninterface WindowWidthDetectionOptionsSingleArgument {\n condition: 'greaterThan' | 'lessThan' | 'greaterOrEqual' | 'lessOrEqual';\n breakpoint: number;\n}\n\ninterface WindowWidthDetectionOptionsTwoArguments {\n condition: 'inRange' | 'inRangeExclusive';\n lowerBreakpoint: number;\n upperBreakpoint: number;\n}\n\nexport type WindowWidthDetectionOptions =\n | WindowWidthDetectionOptionsSingleArgument\n | WindowWidthDetectionOptionsTwoArguments;\n\nexport const useWindowWidthDetection = (options: WindowWidthDetectionOptions) => {\n const [matchesOptions, setMatchesOptions] = React.useState();\n\n const getDependencies = () => {\n switch (options.condition) {\n case 'greaterThan':\n case 'greaterOrEqual':\n case 'lessThan':\n case 'lessOrEqual':\n return [options.condition, options.breakpoint];\n case 'inRange':\n case 'inRangeExclusive':\n return [options.condition, options.lowerBreakpoint, options.upperBreakpoint];\n\n default:\n assertNever(options);\n }\n };\n\n React.useEffect(() => {\n const getWindowSize = () => {\n const { innerWidth: width, innerHeight: height } = window;\n\n return {\n width,\n height,\n };\n };\n\n const handleResize = () => {\n const size = getWindowSize();\n const matches = CheckIfWidthMatchesOptions(size.width, options);\n\n setMatchesOptions(matches);\n };\n\n window.addEventListener('resize', handleResize);\n handleResize();\n\n return () => window.removeEventListener('resize', handleResize);\n }, getDependencies());\n\n return matchesOptions;\n};\n","export class MediaBreakpoints {\n static readonly Mobile = 375;\n\n static readonly Tablet = 768;\n\n static readonly Desktop = 1024;\n\n static readonly DesktopHD = 1440;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"SearchBoxResults\":\"pRkYv7QBxC8VbonRrCXL\",\"Message\":\"YK0iwJngug4ZbYKTDyWg\"};"],"names":["mapToComboboxItem","item","id","displayValue","_objectSpread","buildUrlWithSearchQueryParam","baseUrl","paramName","value","concat","Combobox","props","translations","placeholder","items","loading","error","className","highlightedItemClassName","searchBoxResultsClassName","name","onInputChanged","onSelectionChanged","renderItem","isOpen","highlightedIndex","getMenuProps","getInputProps","getItemProps","useCombobox","onInputValueChange","changes","inputValue","itemToString","onSelectedItemChange","stateChange","selectedItem","type","React","classNames","_extends","SearchBoxResults","errorTranslation","map","index","key","HomeHeroSearchBox","buildSearchUrl","buildSubmitUrl","renderElement","onItemEnterClicked","onSubmit","phrase","setPhrase","data","useFetchData","url","shouldMakeRequest","length","action","method","searchName","searchPhrase","handleSelectionChanged","stateChangeTypes","InputKeyDownEnter","Button","htmltype","ButtonType","Solid","tier","ButtonTier","Primary","size","ButtonSize","Large","SvgIcon","iconName","search","HomeHeroSearchList","links","variant","linkClassName","linkLabelClassName","List","link","uniqueId","Link","showIsExternal","labelClassName","GtmHeroSearchEventsHandler","GtmEventsBase","_GtmHeroSearchEventsHandler","findStudy","findEmployee","pushStudyPhraseSearch","pushPhraseSearch","pushStudySearch","levels","categories","parsedLevels","parseFacet","parsedCategories","pushEvent","pushEmployeeSearch","employee","facetOptions","option","label","join","eventName","PHRASE_QUERY_NAME","HomeHeroSearchEmployees","searchUrl","listPage","getEmployeeDisplayName","firstName","lastName","tabIndex","href","linkUrl","LinkType","Clear","jobTitles","school","getEmployeeFacultyDetails","faculty","redirect","LinkVariant","LightBlack","MultiselectDropdownWithStatus","values","valueToString","selectedItems","onListVisibilityChanged","highlightedItemClass","resultListClassName","listItemClassName","isSelected","getToggleButtonProps","getLabelProps","useMultiselect","selectItems","styles","errorOccurred","ActivityIndicator","modal","renderDropdownItem","HomeHeroFacetSelection","dropdownTranslations","isOpened","onVisibilityChanged","HomeHeroSearchStudies","levelSourceUrl","categorySourceUrl","listPageUrl","studySearchUrl","selectedLevels","setSelectedLevels","selectedCategories","setSelectedCategories","isLevelListOpened","setIsLevelListOpened","isCategoryListOpened","setIsCategoryListOpened","getStudyDisplayValue","study","selectLevel","openItemsList","openListOfLevels","isVisible","selectCategory","openListOfCategories","buttonTier","showResults","buildListPageUrl","queryParameters","onClick","pushGTMStudySearchEvent","locations","levelLabel","studyFormTypes","getStudyInfo","studyInfo","HomeHeroSearch","employeeSearchName","employeeSearchPlaceholder","studySearchName","studySearchPlaceholder","allEmployeePage","findAndExpertPage","searchEmployeeUrl","allStudyPage","quizPage","getCategoriesUrl","getLevelsUrl","searchStudyUrl","restTranslations","_objectWithoutProperties","_excluded","getLinks","_len","arguments","pages","Array","_key","filter","isTruthy","studySearchTabIdentifier","employeeSearchTabIdentifier","tabs","tabKey","tabName","tabContent","tabClassName","tabSelectedClassName","Tabs","tabsListClassName","selectedTab","HomeHero","image","heading","homeHeroSearch","isMobile","useWindowWidthDetection","condition","breakpoint","MediaBreakpoints","Tablet","isMobileOrFirstRender","isTabletOrFirstRender","BackgroundMediaSection","overlayVariant","HtmlHeading","html","ModalWrapper","visible","children","style","display","cover","active","Wrapper","wrapperProps","undefined","video","caption","author","wrapperClassName","contentClassName","mediaClassName","layout","getMediaElement","mediaClass","Media","src","autoPlay","playsInline","muted","loop","preload","Picture","profile","PictureProfiles","fullWidth","PicturePlaceholder","logoWrapperClassName","PlaceholderLogoWrapper","mediaContent","getMediaElementWithCaption","mediaElement","Figure","Content","ref","theme","passThroughProps","ThemedButton","RawButton","otherProps","_excluded2","contextualTheme","useTheme","additionalProps","_excluded3","withBoxShadow","withRoundedCorners","dangerouslySetInnerHTML","__html","reducer","state","payload","dataRequested","params","debounceTime","timeout","dispatch","previousProps","usePrevious","requestWithDebounce","useDebounce","axiosWrapper","request","cancelToken","axios","CancelToken","token","current","then","response","catch","e","isCancel","message","console","fetchData","checkEquals","push","ExecutionContext","IsServerSide","dataLayer","window","_GtmEventsBase","pushGtmPageStats","gtmPageStatsViewModel","properties","payLoad","event","buttonType","filteredProps","omitProperty","elementToRender","ThemedButtonLink","RawLink","Default","LegacyPrimary","buttonSize","external","buttonStyles","target","rel","Label","ExternalIcon","ListComponent","constructImageSharpUrl","width","alt","focalPoint","themeDefaultValues","lazyLoading","createPicture","pictureUrl","pictureAlt","pictureProfile","mainSource","sources","sourceSizes","sizes","sourceSrcSets","allowedWidths","srcSet","defaultWidth","objectPosition","point","xPosition","clamp","x","yPosition","y","getPosition","threeColumnsElement","fourColumnsElement","sixColumnsElement","horizontal","vertical","callout","contentCard","studyPortfolioItem","galleryItemSquare","galleryItemVertical","galleryItemHorizontal","mainPosterVertical","LogoWrapper","Logo","Message","Tab","selected","onSelect","buttonRef","hasUserInteractedRef","buildTabId","panelId","buildTabPanelId","scrollToElement","role","handleFocusChange","element","focus","preventDefault","TabList","onKeyDown","keyCode","Key","LeftArrow","RightArrow","Error","tabbableDescendants","tabbable","currentFocusedElement","find","el","document","activeElement","previousSibling","nextSibling","TabPanel","panelsClassName","panelClassName","TabListWrapper","tabListRef","currentTab","setCurrentTab","handleSelect","isTabSelected","tabProps","replaceNotFriendlyCharacters","toString","toLowerCase","callback","handlerRef","useVariableWithStableRef","debounce","_handlerRef$current","call","initialIsOpen","toggleButtonRef","includes","useSelect","stateReducer","selectionReducer","actionAndChanges","ToggleButtonKeyDownEnter","ToggleButtonKeyDownSpaceButton","ItemClick","ToggleButtonBlur","onStateChange","newItems","onMouseDown","_toggleButtonRef$curr","variable","variableRef","useRef","useEffect","options","matchesOptions","setMatchesOptions","handleResize","matches","CheckIfWidthMatchesOptions","lowerBreakpoint","upperBreakpoint","assertNever","getWindowSize","innerWidth","innerHeight","height","addEventListener","removeEventListener","getDependencies","Mobile","Desktop","DesktopHD"],"sourceRoot":""}