Skip to content

editorGlobalsPrioritizedGroupedList

Class: PrioritizedGroupedList ‹T

This represents a list of elements that have priorities (numbers) and belong to certain groups (strings). It will sort by priority and group within each priority level. Updates to this data structure can be performed incrementally.

Type parameters

T

Hierarchy

  • PrioritizedGroupedList

Index

Constructors

Properties

Methods

Constructors

constructor

+ new PrioritizedGroupedList(priorityFn: function, groupFn: function): PrioritizedGroupedList

Defined in src/util/PrioritizedGroupedList.ts:17

Parameters:

priorityFn: function

returns an element's priority

▸ (element: T): number

Parameters:

Name Type
element T

groupFn: function

returns an element's group name

▸ (element: T): string

Parameters:

Name Type
element T

Returns: PrioritizedGroupedList

Properties

Private elements

elements: Set‹T› = new Set()

Defined in src/util/PrioritizedGroupedList.ts:14


Private Readonly groupFn

groupFn: function

Defined in src/util/PrioritizedGroupedList.ts:16

Type declaration:

▸ (element: T): string

Parameters:

Name Type
element T

Private prioritizedGroupedList

prioritizedGroupedList: Array‹IPriorityLevel‹T›› | null

Defined in src/util/PrioritizedGroupedList.ts:17


Private Readonly priorityFn

priorityFn: function

Defined in src/util/PrioritizedGroupedList.ts:15

Type declaration:

▸ (element: T): number

Parameters:

Name Type
element T

Methods

Private _group

_group(priorityLevel: IPriorityLevel‹T›): void

Defined in src/util/PrioritizedGroupedList.ts:148

Parameters:

Name Type
priorityLevel IPriorityLevel‹T›

Returns: void


Private _insertElementIntoPriorityList

_insertElementIntoPriorityList(element: T, prioritizedElements: Array‹IPriorityLevel‹T››): void

Defined in src/util/PrioritizedGroupedList.ts:108

Parameters:

Name Type
element T
prioritizedElements Array‹IPriorityLevel‹T››

Returns: void


Private _prioritize

_prioritize(elements: Set‹T›, previousPrioritization?: Array‹IPriorityLevel‹T››): IPriorityLevel‹T›[]

Defined in src/util/PrioritizedGroupedList.ts:61

Parameters:

Name Type
elements Set‹T›
previousPrioritization? Array‹IPriorityLevel‹T››

Returns: IPriorityLevel‹T›[]


Private _updateGroups

_updateGroups(elementGroups: Map‹string, T[]›): void

Defined in src/util/PrioritizedGroupedList.ts:169

Parameters:

Name Type
elementGroups Map‹string, T[]›

Returns: void


Private _updatePrioritizedElements

_updatePrioritizedElements(prioritizedElements: Array‹IPriorityLevel‹T››): void

Defined in src/util/PrioritizedGroupedList.ts:76

Parameters:

Name Type
prioritizedElements Array‹IPriorityLevel‹T››

Returns: void


prioritize

prioritize(): IPriorityLevel‹T›[]

Defined in src/util/PrioritizedGroupedList.ts:52

This will sort and group the elements, re-using the previous results, if possible.

Note: Elements are sorted by descending priority.

Returns: IPriorityLevel‹T›[]

the prioritized, grouped elements


removeElements

removeElements(filter: function): void

Defined in src/util/PrioritizedGroupedList.ts:36

Parameters:

filter: function

should evaluate to true for elements that should be removed

▸ (T: any): boolean

Parameters:

Name Type
T any

Returns: void


setElements

setElements(elements: Set‹T›): void

Defined in src/util/PrioritizedGroupedList.ts:28

Parameters:

Name Type
elements Set‹T›

Returns: void