{"version":3,"file":"9327.bundle.009978a4d8d5ec9c325a.js","mappings":"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","sources":["webpack://fieldlevel.app/./app-core/components/TeamDetailsDisplay.jsx","webpack://fieldlevel.app/./app-core/components/UserHeadshot.jsx","webpack://fieldlevel.app/./app-core/constants/analytics.js","webpack://fieldlevel.app/./app-core/utility/masquerading.js","webpack://fieldlevel.app/./app-core/utility/natsAnalyticsUtils.js","webpack://fieldlevel.app/./app-public/routes/job-openings/JobOpeningsList/useFetchJobOpenings.js","webpack://fieldlevel.app/./app-public/routes/job-openings/JobOpeningsList/useFetchJobOpeningsSearchOptions.js","webpack://fieldlevel.app/./app-public/routes/job-openings/JobOpeningsList/useFilterTools.js","webpack://fieldlevel.app/./app-public/routes/job-openings/JobOpeningsList/JobOpeningsList.jsx","webpack://fieldlevel.app/./app-public/shared/api/jobOpeningApi.js","webpack://fieldlevel.app/./app-public/shared/hooks/useCanonical.js"],"sourcesContent":["import PropTypes from 'prop-types';\r\nimport cx from 'classnames';\r\n\r\nimport { Stack } from '@fieldlevel/playbook';\r\n\r\nimport TeamLogo from '@appCore/components/TeamLogo';\r\nimport WiredLink from '@appCore/components/WiredLink';\r\nimport { generateDeprecationNotice } from '@appCore/utility/consoleUtils';\r\nimport { IS_DEV_MODE } from '@appCore/constants/environment';\r\n\r\nconst ORIENTATION_TYPES = {\r\n horizontal: 'horizontal',\r\n vertical: 'vertical'\r\n};\r\n\r\nconst PRESENTATION_MODE_TYPES = {\r\n details: 'details',\r\n short: 'short'\r\n};\r\n\r\nconst defaultConfig = {\r\n orientation: ORIENTATION_TYPES.horizontal,\r\n showAthleticAssociation: true,\r\n showSportLabel: true,\r\n urlBuilder: null,\r\n generateTeamProfileLinkProps: null,\r\n teamProfileLinkProps: null,\r\n mode: PRESENTATION_MODE_TYPES.details,\r\n useHighSchoolDefaultLogo: true,\r\n lazyLoadLogo: false\r\n};\r\n\r\nconst TeamDetailsDisplay = ({ team, onClick, options, children }) => {\r\n const config = { ...defaultConfig, ...options };\r\n\r\n // Generate a deprecation notice for uppercase config settings\r\n if (['Short', 'Details'].includes(config.mode)) {\r\n if (IS_DEV_MODE) {\r\n generateDeprecationNotice({\r\n message: `TeamDetailsDisplay - usage of 'Short' or 'Details' for config.mode has been deprecated. Please use lowercase strings instead.`\r\n });\r\n }\r\n config.mode = config.mode.toLowerCase();\r\n }\r\n\r\n if (['Horizontal', 'Vertical'].includes(config.orientation)) {\r\n if (IS_DEV_MODE) {\r\n generateDeprecationNotice({\r\n message: `TeamDetailsDisplay - usage of 'Horizontal' or 'Vertical' for config.orientation has been deprecated. Please use lowercase strings instead.`\r\n });\r\n }\r\n config.orientation = config.orientation.toLowerCase();\r\n }\r\n\r\n if (IS_DEV_MODE && (config.urlBuilder || config.generateTeamProfileLinkProps)) {\r\n generateDeprecationNotice({\r\n message: `TeamDetailsDisplay - config.urlBuilder and config.generateTeamProfileLinkProps have been deprecated. Please use config.teamProfileLinkProps instead`\r\n });\r\n }\r\n\r\n const legacyUrlBuilderObj = config.urlBuilder && config.urlBuilder(team);\r\n const linkProps = config.teamProfileLinkProps || config.generateTeamProfileLinkProps?.(team);\r\n\r\n const TeamProfileLinkWrapper = (() => {\r\n if (legacyUrlBuilderObj?.href) {\r\n return props => (\r\n <WiredLink\r\n url={legacyUrlBuilderObj.href}\r\n target={legacyUrlBuilderObj.target}\r\n onClick={onClick}\r\n {...props}\r\n />\r\n );\r\n }\r\n if (linkProps) {\r\n return props => <WiredLink {...linkProps} {...props} />;\r\n }\r\n return props => <>{props.children}</>;\r\n })();\r\n\r\n const showAthleticAssociation = config.showAthleticAssociation && team.AthleticAssociationEnum;\r\n const showSport = team.SportEnum.Id != 0 && config.showSportLabel;\r\n const logoSize = config.mode === PRESENTATION_MODE_TYPES.short ? 'base' : 'large';\r\n const breakCache = config.breakCache || false;\r\n\r\n return (\r\n <Stack noWrap align=\"center\" vertical={config.orientation === ORIENTATION_TYPES.vertical}>\r\n <Stack.Item>\r\n <div className=\"relative flex flex-col items-center\">\r\n <div className=\"flex-none\">\r\n <TeamProfileLinkWrapper unstyled>\r\n <TeamLogo\r\n shortName={team.ShortName || ''}\r\n sportEnum={team.SportEnum.Value}\r\n size={logoSize}\r\n teamId={team.TeamId}\r\n breakCache={breakCache}\r\n isPremium={team.IsPremium}\r\n organizationName={team.OrganizationName}\r\n useHighSchoolDefaultLogo={config.useHighSchoolDefaultLogo}\r\n lazy={config.lazyLoadLogo}\r\n />\r\n </TeamProfileLinkWrapper>\r\n </div>\r\n </div>\r\n </Stack.Item>\r\n <Stack.Item fill>\r\n <div className={cx(config.orientation === ORIENTATION_TYPES.vertical && 'text-center')}>\r\n <div className=\"font-bold text-body-lg text-base\">\r\n <TeamProfileLinkWrapper>\r\n {team.OrganizationName} {team.TeamName}\r\n </TeamProfileLinkWrapper>\r\n </div>\r\n {(showAthleticAssociation || showSport) && (\r\n <div className=\"text-body-sm text-base\">\r\n {showAthleticAssociation && <>{team.AthleticAssociationEnum.Label}</>}\r\n {showAthleticAssociation && showSport && <> - </>}\r\n {showSport && team.SportEnum.Label}\r\n </div>\r\n )}\r\n\r\n {config.mode !== PRESENTATION_MODE_TYPES.short && (\r\n <>\r\n {children}\r\n {!children && (\r\n <div className=\"text-body-sm text-muted\">\r\n {team.City}, {team.State}\r\n </div>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n </Stack.Item>\r\n </Stack>\r\n );\r\n};\r\n\r\nexport const TeamDetailsProps = {\r\n team: PropTypes.shape({\r\n OrganizationName: PropTypes.string.isRequired,\r\n SportEnum: PropTypes.object.isRequired,\r\n ShortName: PropTypes.string,\r\n AthleticAssociationEnum: PropTypes.object,\r\n City: PropTypes.string,\r\n State: PropTypes.string,\r\n TeamId: PropTypes.number\r\n }).isRequired,\r\n options: PropTypes.shape({\r\n showAthleticAssociation: PropTypes.bool,\r\n showSportLabel: PropTypes.bool,\r\n orientation: PropTypes.oneOf(['Horizontal', 'Vertical', ...Object.values(ORIENTATION_TYPES)]),\r\n urlBuilder: PropTypes.func,\r\n generateTeamProfileLinkProps: PropTypes.func,\r\n teamProfileLinkProps: PropTypes.exact(WiredLink.propTypes),\r\n mode: PropTypes.oneOf(['Details', 'Short', ...Object.values(PRESENTATION_MODE_TYPES)]),\r\n breakCache: PropTypes.bool,\r\n useHighSchoolDefaultLogo: PropTypes.bool,\r\n lazyLoadLogo: PropTypes.bool\r\n }),\r\n onClick: PropTypes.func,\r\n children: PropTypes.node\r\n};\r\n\r\nTeamDetailsDisplay.propTypes = TeamDetailsProps;\r\n\r\nexport default TeamDetailsDisplay;\r\n","import { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cx from 'classnames';\r\n\r\nimport { Avatar } from '@fieldlevel/playbook';\r\n\r\nimport imageSrcManager from '@appCore/services/imageSrcManager';\r\nimport FieldLevelBadge from '@appCore/components/FieldLevelBadge/FieldLevelBadge';\r\n\r\nconst Sizes = {\r\n Small: 32,\r\n Base: 40,\r\n Large: 60\r\n};\r\n\r\nconst sizeToAvatarSize = {\r\n Small: 'small',\r\n Large: 'large'\r\n};\r\n\r\nexport const useUserHeadshot = props => {\r\n const { guid, size, liveUpdate } = props;\r\n\r\n const componentSize = Sizes[size];\r\n const avatarSize = sizeToAvatarSize[size];\r\n const [imgSrc, setImgSrc] = useState(imageSrcManager.getUserHeadshotSrc({ guid, componentSize }));\r\n\r\n useEffect(() => {\r\n if (!liveUpdate) return;\r\n\r\n const onUpdated = () => {\r\n setImgSrc(imageSrcManager.getUserHeadshotSrc({ guid, componentSize }));\r\n };\r\n // Will unsubscribe to the userHeadshotCache on dismount\r\n return imageSrcManager.subscribeToUserHeadshotCache(onUpdated);\r\n }, [liveUpdate]);\r\n\r\n return { avatarSize, imgSrc };\r\n};\r\n\r\nconst UserHeadshot = ({ guid, size = 'Base', lazy, liveUpdate, options = {} }) => {\r\n const { avatarSize, imgSrc } = useUserHeadshot({ guid, size, liveUpdate });\r\n\r\n return (\r\n <div className=\"relative flex justify-center items-center\">\r\n <Avatar size={avatarSize} source={imgSrc} lazy={lazy} alt=\"Profile image\" />\r\n {options.showFieldLevelBadge && (\r\n <span\r\n className={cx(\r\n 'absolute -bottom-1 w-full',\r\n [size === 'Base' ? 'left-0 bottom-0' : ''],\r\n [size === 'Small' ? 'left-0 -bottom-1.5' : '']\r\n )}\r\n >\r\n <FieldLevelBadge size={size.toLowerCase()} variant={options.badgeVariant} />\r\n </span>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nUserHeadshot.propTypes = {\r\n guid: PropTypes.string.isRequired,\r\n size: PropTypes.oneOf(['Small', 'Base', 'Large']),\r\n lazy: PropTypes.bool,\r\n liveUpdate: PropTypes.bool,\r\n options: PropTypes.shape({\r\n showFieldLevelBadge: PropTypes.bool,\r\n badgeVariant: PropTypes.oneOf(['dark', 'light'])\r\n })\r\n};\r\n\r\nexport default UserHeadshot;\r\n","export const JOB_OPENINGS_ANALYTICS_CATEGORY = 'JobOpenings';\r\nexport const JOB_OPENINGS_ANALYTICS_DETAILS_PAGE_ACTION = 'JobOpeningsDetailPageViewed';\r\nexport const JOB_OPENINGS_ANALYTICS_LIST_ITEM_ACTION = 'JobOpeningsListItemViewed';\r\nexport const JOB_OPENINGS_ANALYTICS_FEED_ITEM_ACTION = 'JobOpeningsFeedItemViewed';\r\n\r\nexport const PROMOTER_ROSTER_CATEGORY = 'PromoterRoster';\r\nexport const PROMOTER_ROSTER_SHAREABLE_LINK_ACTION = 'ShareableLink';\r\nexport const PROMOTER_ROSTER_ATHLETE_SIGNUP_ACTION = 'AthleteSignUp';\r\nexport const PROMOTER_ROSTER_SHARE_LINK_BUTTON_ACTION = 'ShareLinkButton';\r\n","export const isMasquerading = () => window.FLAuthOptions && window.FLAuthOptions.isMasquerading;\r\nexport const isLoggingDisabled = () => window.FLAuthOptions && window.FLAuthOptions.disableLogging;\r\n","import bootstrap from '@appCore/services/bootstrap';\r\nimport { isLoggingDisabled } from '@appCore/utility/masquerading';\r\n\r\nconst _logEvent = bootstrap.logEvent;\r\nconst _logEventLegacy = bootstrap.logEventLegacy;\r\nexport const AnalyticsTypeEnum = bootstrap.AnalyticsTypeEnum;\r\n\r\n/**\r\n * Log an event to using NATS\r\n *\r\n * payload shape\r\n * {\r\n * Type: AnalyticsTypeEnum,\r\n * Category: \"event category\",\r\n * Action: \"The action performed\",\r\n * Label: \"Any label to attach to event\",\r\n * Value: number - any numeric data describing the event,\r\n * Path: /page/path, - add query params if relevant to Data\r\n * Data: {\r\n * OptionalField1: \"some data\"\r\n * OptionalField2 \"some data\"\r\n * }\r\n * }\r\n *\r\n * @param {{ Type: string, Category: string, Action: string, Label?: string, Value?: number, Path?: string, Data?: object }} payload\r\n */\r\nexport const logEvent = async payload => {\r\n if (!isLoggingDisabled()) {\r\n _logEvent(payload);\r\n }\r\n};\r\n\r\nexport const logEventLegacy = async (\r\n payload = { Type, Category, Action, Label: null, Value: 0, Path: null, Data: undefined }\r\n) => {\r\n if (!isLoggingDisabled()) {\r\n _logEventLegacy(payload);\r\n }\r\n};\r\n\r\nconst getNatsAnalyticsUtils = (category, action, options = { label: null, value: null, path: null }) => {\r\n const logContextualizedEvent = ({ analyticsTypeEnum, data }) => {\r\n if (!category) {\r\n console.warn('getNatsAnalyticsUtils :: No category provided for logEvent');\r\n return;\r\n }\r\n\r\n if (!action) {\r\n console.warn('getNatsAnalyticsUtils :: No action provided for logEvent');\r\n return;\r\n }\r\n\r\n const natsEvent = {\r\n Type: analyticsTypeEnum,\r\n Action: action,\r\n Category: category\r\n };\r\n\r\n if (options.label) natsEvent.Label = options.label;\r\n if (options.value) natsEvent.Value = options.value;\r\n if (options.path) natsEvent.Path = options.path;\r\n if (data) natsEvent.Data = data;\r\n\r\n logEvent(natsEvent);\r\n };\r\n\r\n const logPageView = data => {\r\n logContextualizedEvent({ analyticsTypeEnum: AnalyticsTypeEnum.PageView, data });\r\n };\r\n\r\n const logImpression = data => {\r\n logContextualizedEvent({ analyticsTypeEnum: AnalyticsTypeEnum.Impression, data });\r\n };\r\n\r\n const logClick = data => {\r\n logContextualizedEvent({ analyticsTypeEnum: AnalyticsTypeEnum.Click, data });\r\n };\r\n\r\n return {\r\n logClick,\r\n logImpression,\r\n logPageView,\r\n logEvent: logContextualizedEvent\r\n };\r\n};\r\n\r\n/**\r\n * This helper function is designed to build out an object that has all utility methods attached for\r\n * a given category/action. It's useful for quickly grabbing nats utils keyed by the action name.\r\n *\r\n * Ex:\r\n *\r\n * const CATEGORY = 'MyNewPage'\r\n * const ACTION_NAMES = {\r\n * TopButtonAction: 'TopButtonAction',\r\n * BottomButtonAction: 'BottomButtonAction'\r\n * }\r\n *\r\n * const utilsMap = generateNatsUtilityMap({ category: CATEGORY, actionNames: Object.values(ACTION_NAMES) })\r\n *\r\n * const topButtonLogClick = utilsMap[ACTION_NAMES.TopButtonAction].logClick;\r\n * const bottomButtonLogImpression = utilsMap[ACTION_NAMES.BottomButtonAction].logImpression;\r\n * // etc...\r\n *\r\n * @param {object} argObj\r\n * @param {string} argObj.category - The nats category each action will be associated with\r\n * @param {string[]} argObj.actionNames - An array of all the action names you intend to create utilities for\r\n * @returns {*}\r\n */\r\nexport const generateNatsUtilityMap = ({ category, actionNames }) =>\r\n actionNames.reduce(\r\n (acc, actionName) => ({ ...acc, [actionName]: getNatsAnalyticsUtils(category, actionName) }),\r\n {}\r\n );\r\n\r\nexport default getNatsAnalyticsUtils;\r\n","import { useQuery } from '@tanstack/react-query';\r\n\r\nimport { GetJobOpenings } from '@appPublic/shared/api/jobOpeningApi';\r\nimport { PATH_PATTERNS } from '@appPublic/routes/job-openings/shared/constants';\r\n\r\nconst generateQueryKey = ({\r\n sportEnum,\r\n states,\r\n competitionLevelEnums,\r\n userTitleEnums,\r\n page,\r\n myJobs,\r\n savedJobs\r\n} = {}) => [\r\n `${PATH_PATTERNS.jobOpeningsList}_fetchJobOpenings`,\r\n {\r\n sportEnum: `${sportEnum}`,\r\n states: `${states}`,\r\n competitionLevelEnums: `${competitionLevelEnums}`,\r\n userTitleEnums: `${userTitleEnums}`,\r\n myJobs: `${myJobs}`,\r\n savedJobs: `${savedJobs}`,\r\n page: `${page}`\r\n }\r\n];\r\n\r\nconst useFetchJobOpenings = ({\r\n params: { sportEnum, states, competitionLevelEnums, userTitleEnums, page, myJobs, savedJobs } = {},\r\n options\r\n} = {}) =>\r\n useQuery(\r\n generateQueryKey({ sportEnum, states, competitionLevelEnums, userTitleEnums, page, myJobs, savedJobs }),\r\n () => GetJobOpenings({ sportEnum, states, competitionLevelEnums, userTitleEnums, page, myJobs, savedJobs }),\r\n options\r\n );\r\n\r\nexport default useFetchJobOpenings;\r\n","import { useQuery } from '@tanstack/react-query';\r\n\r\nimport { GetJobOpeningsSearchOptions } from '@appPublic/shared/api/jobOpeningApi';\r\nimport { PATH_PATTERNS } from '@appPublic/routes/job-openings/shared/constants';\r\n\r\nconst generateQueryKey = () => [`${PATH_PATTERNS.jobOpeningsList}_fetchJobOpeningsSearchOptions`];\r\n\r\nconst useFetchJobOpeningsSearchOptions = ({ options } = {}) =>\r\n useQuery(generateQueryKey(), () => GetJobOpeningsSearchOptions(), options);\r\n\r\nexport default useFetchJobOpeningsSearchOptions;\r\n","import useParamTools from '@appCore/components/SearchFilters/useParamTools';\r\n\r\nimport { useJobOpeningsUrlBuilder } from '@appPublic/routes/job-openings/urlBuilder';\r\n\r\nconst useFilterTools = ({ searchOptions }) => {\r\n const jobOpeningsUrlBuilder = useJobOpeningsUrlBuilder();\r\n\r\n const derivedFilterDef = searchOptions && {\r\n primary: {\r\n label: 'All sports',\r\n selectionType: 'singleSelect',\r\n options: [\r\n { label: 'All sports', value: '' },\r\n ...searchOptions.SportOptions.map(opt => ({ label: opt.Label, value: opt.Value }))\r\n ],\r\n searchParamKey: 'sportEnum',\r\n requestParamKey: 'sportEnum'\r\n },\r\n secondary: [\r\n {\r\n label: 'State/Province',\r\n selectionType: 'singleSelect',\r\n options: searchOptions.StateOptions.map(opt => ({ label: opt.Label, value: `${opt.Value}` })),\r\n searchParamKey: 'state',\r\n requestParamKey: 'states'\r\n },\r\n {\r\n label: 'Level',\r\n selectionType: 'singleSelect',\r\n options: searchOptions.LevelOptions.map(opt => ({ label: opt.Label, value: `${opt.Value}` })),\r\n searchParamKey: 'level',\r\n requestParamKey: 'competitionLevelEnums'\r\n },\r\n {\r\n label: 'Position',\r\n selectionType: 'singleSelect',\r\n options: searchOptions.UserTitleOptions.map(opt => ({ label: opt.Label, value: `${opt.Value}` })),\r\n searchParamKey: 'position',\r\n requestParamKey: 'userTitleEnums'\r\n }\r\n ]\r\n };\r\n\r\n const paramTools = useParamTools({\r\n filterDef: derivedFilterDef\r\n });\r\n\r\n if (!paramTools) {\r\n return {};\r\n }\r\n\r\n const { deriveSearchParamsOnValuesChange, values, requestParams } = paramTools;\r\n\r\n return {\r\n filterProps: {\r\n filterDef: derivedFilterDef,\r\n onChange: ({ key, value }) => {\r\n jobOpeningsUrlBuilder\r\n .jobOpeningsList({ searchParams: deriveSearchParamsOnValuesChange({ values: { [key]: value } }) })\r\n .go();\r\n },\r\n onChangeMany: ({ values }) => {\r\n jobOpeningsUrlBuilder\r\n .jobOpeningsList({ searchParams: deriveSearchParamsOnValuesChange({ values }) })\r\n .go();\r\n },\r\n values\r\n },\r\n requestParams\r\n };\r\n};\r\n\r\nexport default useFilterTools;\r\n","import JobOpeningsListDisplay, {\r\n JobOpeningListItem\r\n} from '@appCore/routes/job-openings/components/JobOpeningsListDisplay';\r\nimport useURLParams from '@appCore/hooks/routeTools/useURLParams/useURLParams';\r\nimport ListWithFilters, {\r\n ListCount,\r\n ListPagingControls,\r\n DefaultListEmptyState,\r\n DefaultIndentedListItemLoadingSkeleton\r\n} from '@appCore/components/SearchFilters/layouts/ListWithFilters/ListWithFilters';\r\nimport PageTitle from '@appCore/components/PageTitle';\r\n\r\nimport ContentWrapper from '@appPublic/shared/components/layouts/ContentWrapper';\r\nimport { useJobOpeningsUrlBuilder } from '@appPublic/routes/job-openings/urlBuilder';\r\nimport { useCanonicalListPage } from '@appPublic/shared/hooks/useCanonical';\r\n\r\nimport useFetchJobOpenings from './useFetchJobOpenings';\r\nimport useFetchJobOpeningsSearchOptions from './useFetchJobOpeningsSearchOptions';\r\nimport useFilterTools from './useFilterTools';\r\n\r\nconst JobOpeningsList = props => {\r\n const { search: searchParams } = useURLParams();\r\n\r\n useCanonicalListPage();\r\n\r\n const jobOpeningsUrlBuilder = useJobOpeningsUrlBuilder();\r\n\r\n const { data: searchOptionsData, isLoading: searchOptionsIsLoading } = useFetchJobOpeningsSearchOptions({\r\n options: {\r\n useErrorBoundary: true\r\n }\r\n });\r\n\r\n const filterTools = useFilterTools({ searchOptions: searchOptionsData });\r\n\r\n const { data: searchResultsData, isLoading: searchResultsIsLoading } = useFetchJobOpenings({\r\n params: filterTools.requestParams,\r\n options: {\r\n enabled: !!filterTools?.requestParams,\r\n useErrorBoundary: true\r\n }\r\n });\r\n\r\n const pageTitle = (() => {\r\n const filterProps = filterTools?.filterProps;\r\n\r\n if (!filterProps) {\r\n return;\r\n }\r\n\r\n if (['sportEnum', 'level', 'state'].every(searchParamKey => !searchParams[searchParamKey])) {\r\n return `Coaching jobs`;\r\n }\r\n\r\n const sportString = searchParams.sportEnum\r\n ? filterProps.filterDef.primary.options.find(opt => opt.value === searchParams.sportEnum).label\r\n : '';\r\n const levelString = searchParams.level\r\n ? filterProps.filterDef.secondary\r\n .find(({ searchParamKey }) => searchParamKey === 'level')\r\n .options.find(opt => opt.value === searchParams.level).label\r\n : '';\r\n const stateString = searchParams.state\r\n ? filterProps.filterDef.secondary\r\n .find(({ searchParamKey }) => searchParamKey === 'state')\r\n .options.find(opt => opt.value === searchParams.state).label\r\n : '';\r\n\r\n return `${levelString && levelString + ' '}${\r\n sportString && (levelString ? sportString.toLowerCase() : sportString) + ' '\r\n }${levelString || sportString ? 'coaching' : 'Coaching'} jobs${stateString && ' in ' + stateString}`;\r\n })();\r\n\r\n return (\r\n <>\r\n <PageTitle title={pageTitle && `${pageTitle} | FieldLevel`} />\r\n <ContentWrapper>\r\n <ListWithFilters\r\n heading=\"Coaching jobs\"\r\n filterPropsIsLoading={searchOptionsIsLoading}\r\n filterProps={filterTools.filterProps}\r\n listCountRendering={\r\n searchResultsData && (\r\n <ListCount\r\n count={searchResultsData.TotalResultCount}\r\n itemNameSingular=\"Job Opening\"\r\n itemNamePlural=\"Job Openings\"\r\n />\r\n )\r\n }\r\n listIsLoading={searchResultsIsLoading}\r\n listSkeletonRendering={DefaultIndentedListItemLoadingSkeleton}\r\n listRendering={\r\n searchResultsData && (\r\n <JobOpeningsListDisplay\r\n jobOpenings={searchResultsData.Results}\r\n emptyStateRendering={\r\n <DefaultListEmptyState\r\n actionLabel=\"Clear all filters\"\r\n actionLinkProps={jobOpeningsUrlBuilder.jobOpeningsList().wiredLinkProps}\r\n />\r\n }\r\n renderJobOpeningsListItem={({ jobOpening, shouldLazyLoadLogos }) => (\r\n <JobOpeningListItem\r\n jobOpening={jobOpening}\r\n jobOpeningLinkProps={\r\n jobOpeningsUrlBuilder.jobOpeningsDetail({\r\n pathParams: { id: jobOpening.JobOpeningId }\r\n }).wiredLinkProps\r\n }\r\n shouldLazyLoadLogos={shouldLazyLoadLogos}\r\n />\r\n )}\r\n />\r\n )\r\n }\r\n pagingControlsRendering={\r\n searchResultsData && (\r\n <ListPagingControls\r\n buildLinkProps={({ page }) => {\r\n return jobOpeningsUrlBuilder.jobOpeningsList({\r\n searchParams: { ...searchParams, page }\r\n }).wiredLinkProps;\r\n }}\r\n currentPage={searchResultsData.Page}\r\n totalPages={searchResultsData.TotalPageCount}\r\n />\r\n )\r\n }\r\n />\r\n </ContentWrapper>\r\n </>\r\n );\r\n};\r\n\r\nexport default JobOpeningsList;\r\n","import http from '@appCore/services/http';\r\n\r\nconst baseUrl = '/api/JobOpeningApi';\r\n\r\nexport const GetJobOpening = ({ jobOpeningId }) => {\r\n return http.get(`${baseUrl}/jobopening/${jobOpeningId}`);\r\n};\r\n\r\nexport const GetJobOpenings = ({\r\n sportEnum,\r\n states,\r\n competitionLevelEnums,\r\n userTitleEnums,\r\n page,\r\n myJobs,\r\n savedJobs\r\n}) => {\r\n return http.get(`${baseUrl}/index`, {\r\n sportEnum,\r\n states,\r\n competitionLevelEnums,\r\n userTitleEnums,\r\n page,\r\n myJobs,\r\n savedJobs\r\n });\r\n};\r\n\r\nexport const GetJobOpeningsSearchOptions = () => {\r\n return http.get(`${baseUrl}/searchoptions`);\r\n};\r\n","import { useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nconst removeExistingCanonicalTag = () => {\r\n const existing = document.querySelector('head link[rel=\"canonical\"]');\r\n existing?.remove();\r\n};\r\n\r\nconst addCanonicalTag = ({ href = window.location.href } = {}) => {\r\n const link = document.createElement('link');\r\n link.setAttribute('rel', 'canonical');\r\n link.setAttribute('href', href);\r\n document.head.appendChild(link);\r\n return () => link.remove();\r\n};\r\n\r\n/**\r\n * This hook is intended to capture the use-case where a page may have various tracking-related (or otherwise\r\n * content-agnostic) search params in its URL, so we remove them from the canonical tag.\r\n */\r\nexport const useCanonicalNoSearchParams = () =>\r\n useCanonical({\r\n getHref: () => {\r\n const currentURL = new URL(window.location.href);\r\n currentURL.search = '';\r\n return currentURL.href;\r\n }\r\n });\r\n\r\n/**\r\n * This hook is intended to capture the desired canonical tag for \"list\" pages in app-public. It preserves\r\n * the url as-is, with the exception of searchParams.page, which will only be included in the href if it's > 1\r\n */\r\nexport const useCanonicalListPage = () => {\r\n useCanonical({\r\n getHref: () => {\r\n // We want to canonicalize the url as-is, unless the 'page' searchParam is <= 1\r\n const currentURL = new URL(window.location.href);\r\n const pageParam = currentURL.searchParams.get('page');\r\n if (pageParam) {\r\n const parsed = parseInt(pageParam, 10);\r\n if (!Number.isFinite(parsed) || parsed <= 1) {\r\n currentURL.searchParams.delete('page');\r\n }\r\n }\r\n return currentURL.href;\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * This hook may be used to dynamically add a `<link rel=\"canonical\" />` tag to the `<head>` of the document.\r\n * By default, the link's href value will be `window.location.href`, but you may pass a getHref function to\r\n * return any value you choose.\r\n *\r\n * Usage notes:\r\n * - When the hook is mounted, if a canonical link tag already exists in document.head, it will be removed\r\n * - The hook will only ever add one link tag to the document. When unmounted, it will be removed.\r\n * - The hook will invoke getHref() any time the location changes, so you may reliably accommodate changes to the\r\n * url (e.g. when searchParams change with filters, etc.) within your getHref() function.\r\n *\r\n * @param {object} params\r\n * @param {Function} [params.getHref] - This function should return the desired value of the link's href attribute\r\n */\r\nconst useCanonical = ({ getHref = () => window.location.href } = {}) => {\r\n useEffect(() => {\r\n removeExistingCanonicalTag();\r\n return addCanonicalTag({ href: getHref() });\r\n }, [useLocation()]);\r\n};\r\n\r\nexport default useCanonical;\r\n"],"names":["ORIENTATION_TYPES","horizontal","vertical","PRESENTATION_MODE_TYPES","details","short","defaultConfig","orientation","showAthleticAssociation","showSportLabel","urlBuilder","generateTeamProfileLinkProps","teamProfileLinkProps","mode","useHighSchoolDefaultLogo","lazyLoadLogo","TeamDetailsDisplay","_ref","_config$generateTeamP","team","onClick","options","children","config","includes","IS_DEV_MODE","generateDeprecationNotice","message","toLowerCase","legacyUrlBuilderObj","linkProps","call","TeamProfileLinkWrapper","href","props","_jsx","WiredLink","url","target","_Fragment","AthleticAssociationEnum","showSport","SportEnum","Id","logoSize","breakCache","_jsxs","Stack","noWrap","align","Item","className","unstyled","TeamLogo","shortName","ShortName","sportEnum","Value","size","teamId","TeamId","isPremium","IsPremium","organizationName","OrganizationName","lazy","fill","cx","TeamName","Label","City","State","TeamDetailsProps","PropTypes","isRequired","Object","values","propTypes","Sizes","Small","Base","Large","sizeToAvatarSize","useUserHeadshot","guid","liveUpdate","componentSize","avatarSize","imgSrc","setImgSrc","useState","imageSrcManager","getUserHeadshotSrc","useEffect","subscribeToUserHeadshotCache","onUpdated","UserHeadshot","Avatar","source","alt","showFieldLevelBadge","FieldLevelBadge","variant","badgeVariant","JOB_OPENINGS_ANALYTICS_CATEGORY","JOB_OPENINGS_ANALYTICS_LIST_ITEM_ACTION","PROMOTER_ROSTER_CATEGORY","PROMOTER_ROSTER_ATHLETE_SIGNUP_ACTION","isLoggingDisabled","window","FLAuthOptions","disableLogging","_logEvent","bootstrap","logEvent","AnalyticsTypeEnum","logEventLegacy","async","payload","getNatsAnalyticsUtils","category","action","arguments","length","undefined","label","value","path","logContextualizedEvent","analyticsTypeEnum","data","console","warn","natsEvent","Type","Action","Category","Path","Data","logClick","Click","logImpression","Impression","logPageView","PageView","params","states","competitionLevelEnums","userTitleEnums","page","myJobs","savedJobs","useQuery","concat","PATH_PATTERNS","jobOpeningsList","generateQueryKey","GetJobOpenings","GetJobOpeningsSearchOptions","searchOptions","jobOpeningsUrlBuilder","useJobOpeningsUrlBuilder","derivedFilterDef","primary","selectionType","SportOptions","map","opt","searchParamKey","requestParamKey","secondary","StateOptions","LevelOptions","UserTitleOptions","paramTools","useParamTools","filterDef","deriveSearchParamsOnValuesChange","requestParams","filterProps","onChange","_ref2","key","searchParams","go","onChangeMany","_ref3","search","useURLParams","useCanonicalListPage","searchOptionsData","isLoading","searchOptionsIsLoading","useFetchJobOpeningsSearchOptions","useErrorBoundary","filterTools","useFilterTools","searchResultsData","searchResultsIsLoading","useFetchJobOpenings","enabled","pageTitle","every","sportString","find","levelString","level","stateString","state","PageTitle","title","ContentWrapper","ListWithFilters","heading","filterPropsIsLoading","listCountRendering","ListCount","count","TotalResultCount","itemNameSingular","itemNamePlural","listIsLoading","listSkeletonRendering","DefaultIndentedListItemLoadingSkeleton","listRendering","JobOpeningsListDisplay","jobOpenings","Results","emptyStateRendering","DefaultListEmptyState","actionLabel","actionLinkProps","wiredLinkProps","renderJobOpeningsListItem","jobOpening","shouldLazyLoadLogos","JobOpeningListItem","jobOpeningLinkProps","jobOpeningsDetail","pathParams","id","JobOpeningId","pagingControlsRendering","ListPagingControls","buildLinkProps","_ref4","currentPage","Page","totalPages","TotalPageCount","baseUrl","GetJobOpening","jobOpeningId","http","get","useCanonicalNoSearchParams","useCanonical","getHref","currentURL","URL","location","pageParam","parsed","parseInt","Number","isFinite","delete","removeExistingCanonicalTag","existing","document","querySelector","remove","link","createElement","setAttribute","head","appendChild","addCanonicalTag","useLocation"],"sourceRoot":""}