Index

src/app/pages/current-team/state/with-ordering.feature.ts

compareByGroupKey
compareByGroupKey(a: GroupByKey, b: GroupByKey)

Compares two groupBy keys for sorting

Parameters :
Name Type Optional Description
a GroupByKey No

First group key

b GroupByKey No

Second group key

Returns : number

Comparison result

compareByName
compareByName(a: PeopleItem, b: PeopleItem, order)

Compares two team members by last name

Parameters :
Name Type Optional Description
a PeopleItem No

First team member

b PeopleItem No

Second team member

order No

Comparison order (-1 for descending, 1 for ascending)

Returns : number

Comparison result

compareByNumericProperty
compareByNumericProperty(a: PeopleItem, b: PeopleItem, propertyMap: Map, order)

Compares two team members by a numeric property

Parameters :
Name Type Optional Description
a PeopleItem No

First team member

b PeopleItem No

Second team member

propertyMap Map No

Property map to compare by

order No

Comparison order (-1 for descending, 1 for ascending)

Returns : number

Comparison result

createGroupByKeyFn
createGroupByKeyFn(groupBy, store)

Creates a function to derive groupBy keys for team members

Parameters :
Name Optional Description
groupBy No

Selected grouping option

store No

Store containing people properties

Returns : GroupByKey

A function that derives group keys for team members

createGroupByKeyImpl
createGroupByKeyImpl(groupBy)

Creates implementation for deriving groupBy keys for a team member's role

Parameters :
Name Optional Description
groupBy No

Selected grouping option

Returns : GroupByKey

A function that derives group keys from a role

createSortFn
createSortFn(sortBy: SortBy, store: PeopleProps)

Creates a sorting function based on the selected sort option

Parameters :
Name Type Optional Description
sortBy SortBy No

Selected sort option

store PeopleProps No

Store containing people properties

Returns : number

A comparison function for sorting team members

groupKeyToLabel
groupKeyToLabel(key: GroupByKey)

Converts a groupBy key to a human-readable label

Parameters :
Name Type Optional Description
key GroupByKey No

Key to convert

Returns : string

Human-readable label

withOrdering
withOrdering()

Adds sorting and grouping capabilities for team members Supports multiple sort orders and grouping by role, start year, or end year

src/app/schemas/people.schema.ts

compareRolesByEndDateDesc
compareRolesByEndDateDesc(a: AnyRole, b: AnyRole)

Compare two roles by their end dates in descending order.

Parameters :
Name Type Optional Description
a AnyRole No

First role to compare

b AnyRole No

Second role to compare

Returns : number

Comparison result for sorting

src/app/pages/research-page/state/with-ordering.feature.ts

convertToListViewItem
convertToListViewItem(item: ResearchItem)

Converts a research item to a list view item format.

Parameters :
Name Type Optional Description
item ResearchItem No

Research item to convert

Returns : ListViewItem
createGroupByKeyFn
createGroupByKeyFn(groupBy)

Creates a function to extract the grouping key from a research item.

Parameters :
Name Optional Description
groupBy No

Selected grouping option

Returns : GroupByKey
createKeyLabelsMap
createKeyLabelsMap(types)

Creates a mapping of group keys to display labels.

Parameters :
Name Optional
types No
Returns : Signal<Record<GroupByKey, string>>
createSortByFn
createSortByFn(sortBy)

Creates a sorting function based on the selected sort option.

Parameters :
Name Optional Description
sortBy No

Selected sort option

Returns : unknown | undefined
groupByKeyToLabel
groupByKeyToLabel(key: GroupByKey, keyLabels: Record)

Converts a group key to its display label.

Parameters :
Name Type Optional Description
key GroupByKey No

Group key value

keyLabels Record No

Map of key labels

Returns : string
withOrdering
withOrdering()

Adds sorting and grouping capabilities for research items. Provides sorted and grouped views of filtered research items.

src/app/pages/research-page/state/with-filters.feature.ts

countsByKey
countsByKey(items, keyFn, filterFn?)

Counts occurrences of keys derived from items.

Parameters :
Name Optional Description
items No

Accessor for items to count

keyFn No

Key selector returning one or many keys per item

filterFn Yes
Returns : Signal<Record<string, number>>
createFilteredBy
createFilteredBy(items, options, filterFn)

Filters items by selected options using a provided predicate.

Parameters :
Name Optional Description
items No

Accessor for all items

options No

Accessor for selected option IDs

filterFn No

Predicate that checks item against selected options

Returns : Signal<T[]>
createYearList
createYearList(startYear: number)

Builds a descending list of years starting at startYear.

Parameters :
Name Type Optional Description
startYear number No

Inclusive starting year

Returns : number[]
filterOptionsByIds
filterOptionsByIds(options, ids)

Filters options by selected IDs.

Parameters :
Name Optional Description
options No

Accessor for all options

ids No

Accessor for selected option IDs

Accessor for typed search list options

normalizeSearchString
normalizeSearchString(str: string)

Normalizes search text for case/diacritic-insensitive matching.

Parameters :
Name Type Optional Description
str string No

Raw input string

Returns : string
optionsToFilter
optionsToFilter(base: FilterOptionCategory, selected, options?)

Merges base filter config with current selection and options.

Parameters :
Name Type Optional Description
base FilterOptionCategory No

Base filter definition

selected No

Current selected options accessor

options Yes

Optional dynamic options accessor

Returns : Signal<FilterOptionCategory<Opt>>
optionsToSet
optionsToSet(...options: undefined)

Builds a set of selected option IDs across multiple selections.

Parameters :
Name Optional Description
options No

Accessors returning selected option arrays

Returns : Signal<Set<Opt>>
researchTypesToOptions
researchTypesToOptions(researchTypes)

Converts research type definitions to typed search list options.

Parameters :
Name Optional Description
researchTypes No

Accessor for research type definitions

Accessor for typed search list options

toSentenceCase
toSentenceCase(str: string)

Converts a string to sentence case.

Parameters :
Name Type Optional Description
str string No

Raw input string

Returns : string
withFilters
withFilters()

Adds filtering capabilities for research items. Provides filtered item lists, counts, and filter option signals.

src/app/resolvers/person.resolver.ts

createPersonResolver
createPersonResolver(baseUrl: string)

Resolver to load person data by slug

Parameters :
Name Type Optional Description
baseUrl string No

Base URL for person content

A resolve function that fetches and parses person data

src/app/pages/current-team/state/with-people.feature.ts

createRolesPropertyMap
createRolesPropertyMap(people, getProperty, reducer)

Creates a map of people to a derived property from their roles

Parameters :
Name Optional Description
people No

List of people

getProperty No

Function to extract the desired property from a role

reducer No

Function to reduce the list of properties to a single value

Returns : Map<PeopleItem, R>

Map of people to the derived property

sortRoleByDateDesc
sortRoleByDateDesc(a: AnyRole, b: AnyRole)

Sorts roles by end date in descending order (most recent first)

Parameters :
Name Type Optional Description
a AnyRole No

First role

b AnyRole No

Second role

Returns : number

Comparison result

withPeople
withPeople()

Adds people data, role mappings, and query methods

src/app/pages/current-team/state/current-team.store.ts

createWritableStateSlice
createWritableStateSlice(stateSignal: Signal, set)

Creates a WritableSignal wrapper around a read-only state signal and setter function. Used to bridge ngrx signal store state with APIs that expect WritableSignal.

Parameters :
Name Type Optional Description
stateSignal Signal No
  • The read-only signal from the store
set No
  • The setter function to update the state
Returns : WritableSignal<T>

A WritableSignal that wraps the state signal

src/app/pages/research-page/state/research.store.ts

createWritableStateSlice
createWritableStateSlice(stateSignal: Signal, set)

Creates a writable signal slice from a readonly signal and setter function.

Parameters :
Name Type Optional Description
stateSignal Signal No

Source readonly signal

set No

Setter used to update the state

Returns : WritableSignal<T>

src/app/pages/current-team/state/with-filters.feature.ts

createYearList
createYearList(startYear: number)

Create a list of years from startYear to current year

Parameters :
Name Type Optional Description
startYear number No
  • The starting year
Returns : number[]

Array of years in descending order

withFilters
withFilters()

Adds filtering capabilities for team members Filters by team type (current/past), role, active year, and search text

src/app/utils/research-item-images.ts

getImageUrl
getImageUrl(item: ResearchItem)

Gets image url and uses the appropriate placeholder if none is provided.

Parameters :
Name Type Optional Description
item ResearchItem No

Research item

Returns : string

image url

src/app/utils/refined-roles.ts

getRefinedRoleTypeLabel
getRefinedRoleTypeLabel(type: RefinedRoleType)

Gets the display label for a given refined role type

Parameters :
Name Type Optional Description
type RefinedRoleType No

Role type

Returns : string

The display label for the role type

refineRoleType
refineRoleType(role: AnyRole)

Derives a refined role type from a given role based on its type and degree (if applicable)

Parameters :
Name Type Optional Description
role AnyRole No

The role to refine

Returns : RefinedRoleType

The refined role type

src/app/utils/navigation-error-handler.ts

handleNavigationError
handleNavigationError(event: NavigationError)

Handles navigation errors by logging and redirecting to appropriate error pages

Parameters :
Name Type Optional Description
event NavigationError No

Navigation error event

Returns : RedirectCommand

Redirect command to the appropriate error page

selectRedirectPath
selectRedirectPath(event: NavigationError)

Selects the appropriate redirect path based on the navigation error

Parameters :
Name Type Optional Description
event NavigationError No

Navigation error event

Returns : string

Either the 404 or 500 error page path

src/app/pages/research-page/state/serialization.ts

parseCategories
parseCategories(value)

Parses category query parameter into category options.

Parameters :
Name Optional Description
value No

Raw query value

Returns : [] | null
parseEnum
parseEnum(enumObj: T, value)

Parses a string value into a matching enum member, case-insensitive.

Parameters :
Name Type Optional Description
enumObj T No
value No

Raw input

Returns : unknown | null
parseEventIds
parseEventIds(value)

Parses event query parameter into event options.

Parameters :
Name Optional Description
value No

Raw query value

Returns : [] | null
parseFundingIds
parseFundingIds(value)

Parses funding query parameter into funding options.

Parameters :
Name Optional Description
value No

Raw query value

Returns : [] | null
parseGroupBy
parseGroupBy(value)

Parses group-by query parameter into group enum.

Parameters :
Name Optional Description
value No

Raw query value

Returns : string | null
parseOptions
parseOptions(options, value)

Parses comma-separated option IDs into option objects, preserving order.

Parameters :
Name Optional Description
options No
value No

Raw query value

Returns : [] | null
parsePeopleIds
parsePeopleIds(value)

Parses people IDs from comma-separated query parameter.

Parameters :
Name Optional Description
value No

Raw query value

Returns : [] | null
parsePublicationIds
parsePublicationIds(value)

Parses publication IDs from comma-separated query parameter.

Parameters :
Name Optional Description
value No

Raw query value

Returns : [] | null
parseSearch
parseSearch(value)

Parses search text from query parameter.

Parameters :
Name Optional Description
value No

Raw query value

Returns : string | null
parseSortBy
parseSortBy(value)

Parses sort-by query parameter into sort enum.

Parameters :
Name Optional Description
value No

Raw query value

Returns : SortBy
parseView
parseView(value)

Parses view query parameter into a view enum.

Parameters :
Name Optional Description
value No

Raw query value

Returns : View
parseYears
parseYears(value)

Parses year query parameter into year options.

Parameters :
Name Optional Description
value No

Raw query value

Returns : [] | null
serializeCategories
serializeCategories(options)

Serializes selected categories to query parameter format.

Parameters :
Name Optional Description
options No

Selected categories

Returns : string | null
serializeEventIds
serializeEventIds(ids)

Serializes selected events to query parameter format.

Parameters :
Name Optional Description
ids No

Selected event IDs

Returns : string | null
serializeFundingIds
serializeFundingIds(ids)

Serializes selected funding options to query parameter format.

Parameters :
Name Optional Description
ids No

Selected funding IDs

Returns : string | null
serializeOptions
serializeOptions(options)

Serializes selected options to a comma-delimited string for query params.

Parameters :
Name Optional Description
options No

Selected options

Returns : string | null
serializePeopleIds
serializePeopleIds(ids)

Serializes people IDs to comma-delimited string.

Parameters :
Name Optional Description
ids No

People IDs

Returns : string | null
serializePublicationIds
serializePublicationIds(ids)

Serializes publication IDs to comma-delimited string.

Parameters :
Name Optional Description
ids No

Publication IDs

Returns : string | null
serializeYears
serializeYears(options)

Serializes selected years to query parameter format.

Parameters :
Name Optional Description
options No

Selected years

Returns : string | null

src/app/pages/current-team/state/serialization.ts

parseEnum
parseEnum(enumObj: T, value)

Parses an unknown value into an enum value

Parameters :
Name Type Optional Description
enumObj T No
  • The enum object to match against
value No
  • The value to parse
Returns : unknown | null

The matched enum value or null if not found

parseGroupBy
parseGroupBy(value)

Parses a URL query param value into a GroupBy enum

Parameters :
Name Optional Description
value No
  • The group query param
Returns : GroupBy | null

The parsed GroupBy value or null

parseOptions
parseOptions(options, value)

Parses a comma-separated string into an array of matching options

Parameters :
Name Optional Description
options No
  • Available options to match against
value No
  • Comma-separated string of option IDs
Returns : [] | null

Array of matched options or null if none found

parseRoles
parseRoles(value)

Parses a URL query param value into role type options

Parameters :
Name Optional Description
value No
  • Comma-separated role IDs
Returns : [] | null

Array of matched role options or null

parseSearch
parseSearch(value)

Parses a URL query param value into a search string

Parameters :
Name Optional Description
value No
  • The search query param
Returns : string | null

The search string or null

parseSortBy
parseSortBy(value)

Parses a URL query param value into a SortBy enum

Parameters :
Name Optional Description
value No
  • The sort query param
Returns : SortBy | null

The parsed SortBy value or null

parseTeamType
parseTeamType(value)

Parses a URL query param value into a TeamType enum

Parameters :
Name Optional Description
value No
  • The query param value
Returns : TeamType

The parsed TeamType, defaults to Current

parseYears
parseYears(value)

Parses a URL query param value into year options

Parameters :
Name Optional Description
value No
  • Comma-separated year values
Returns : [] | null

Array of matched year options or null

serializeRoles
serializeRoles(options)

Serializes role options into a comma-separated string for URL

Parameters :
Name Optional Description
options No
  • Array of role options to serialize
Returns : string | null

Comma-separated string of role IDs or null

serializeYears
serializeYears(options)

Serializes year options into a comma-separated string for URL

Parameters :
Name Optional Description
options No
  • Array of year options to serialize
Returns : string | null

Comma-separated string of years or null

src/app/schemas/research.schema.ts

uniqueValues
uniqueValues(items)

Remove duplicate items from an array

Parameters :
Name Optional Description
items No

Array of items

Returns : T[]

Array with unique items

src/app/pages/research-page/state/with-research.feature.ts

withResearch
withResearch()

Provides core research data management. Stores research items, people, publication type definitions, and tags.

src/app/pages/research-page/state/with-view.feature.ts

withView
withView()

Manages view mode for research items (gallery or list). Automatically sets list view for certain categories on initial load.

results matching ""

    No results matching ""