editor › Globals › PrioritizedGroupedList
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
- _group
- _insertElementIntoPriorityList
- _prioritize
- _updateGroups
- _updatePrioritizedElements
- prioritize
- removeElements
- setElements
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