{"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":""}