Protected
_itemsThe items in the list.
A read-only copy of items in the list.
We don't allow adding new items to the ItemList via setting new properties, nor do we allow modifying existing items directly.
Use toObject instead.
Private
createInternal
Proxies an item's content, adding the itemName
readonly property to it.
The item's content (objects only)
The item's key
Proxied content
createItemContentProxy({ foo: 'bar' }, 'myItem');
// { foo: 'bar', itemName: 'myItem' }
Replace an item and/or priority in the list, only if it is already present.
If content
or priority
are null
, these values will not be replaced.
If the provided key
is not present, nothing will happen.
The key of the item in the list
The item's new content
The item's new priority
Please use the setContent and setPriority methods to replace items and their priorities. This method will be removed in Flarum 2.0.
Replace priority and not content.
items.replace('myItem', null, 10);
Replace content and not priority.
items.replace('myItem', <p>My new value.</p>);
Replace content and priority.
items.replace('myItem', <p>My new value.</p>, 10);
Replaces an item's content, if the provided item key exists.
If the provided key
is not present, an error will be thrown.
The key of the item in the list
The item's new content
Replace item content.
items.setContent('myItem', <p>My new value.</p>);
Replace item content and priority.
items
.setContent('myItem', <p>My new value.</p>)
.setPriority('myItem', 10);
If the provided key
is not present in the ItemList.
Replaces an item's priority, if the provided item key exists.
If the provided key
is not present, an error will be thrown.
The key of the item in the list
The item's new priority
Replace item priority.
items.setPriority('myItem', 10);
Replace item priority and content.
items
.setPriority('myItem', 10)
.setContent('myItem', <p>My new value.</p>);
If the provided key
is not present in the ItemList.
Convert the list into an array of item content arranged by priority.
This does not preserve the original types of primitives and proxies
all content values to make itemName
accessible on them.
NOTE: If your ItemList holds primitive types (such as numbers, booleans
or strings), these will be converted to their object counterparts if you do
not provide true
to this function.
NOTE: Modifying any objects in the final array may also update the content of the original ItemList.
Optional
keepPrimitives: falseConverts item content to objects and sets the
itemName
property on them.
Convert the list into an array of item content arranged by priority.
Content values that are already objects will be proxied and have
itemName
accessible on them. Primitive values will not have the
itemName
property accessible.
NOTE: Modifying any objects in the final array may also update the content of the original ItemList.
Converts item content to objects and sets the
itemName
property on them.
A read-only map of all keys to their respective items in no particular order.
We don't allow adding new items to the ItemList via setting new properties, nor do we allow modifying existing items directly. You should use the add, setContent and setPriority methods instead.
To match the old behaviour of the ItemList.items
property, call
Object.values(ItemList.toObject())
.
const items = new ItemList();
items.add('b', 'My cool value', 20);
items.add('a', 'My value', 10);
items.toObject();
// {
// a: { content: 'My value', priority: 10, itemName: 'a' },
// b: { content: 'My cool value', priority: 20, itemName: 'b' },
// }
Generated using TypeDoc v0.24.8
The
ItemList
class collects items and then arranges them into an array by priority.