TreeArrayNode Interface
A TreeNode which implements 'readonly T[]' and the array mutation APIs.
Signature
/** @sealed */
export interface TreeArrayNode<TAllowedTypes extends Unenforced<ImplicitAllowedTypes> = ImplicitAllowedTypes, out T = [TAllowedTypes] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TAllowedTypes> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, in TNew = [TAllowedTypes] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes> : InsertableTreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, in TMoveFrom = ReadonlyArrayNode> extends ReadonlyArrayNode<T>
Extends: ReadonlyArrayNode<T>
Type Parameters
Parameter | Constraint | Default | Description |
---|---|---|---|
TAllowedTypes | Unenforced<ImplicitAllowedTypes> | ImplicitAllowedTypes | Schema for types which are allowed as members of this array. |
T | [TAllowedTypes] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TAllowedTypes> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes> | Use Default: Do not specify. Type of values to read from the array. | |
TNew | [TAllowedTypes] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes> : InsertableTreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes> | Use Default: Do not specify. Type of values to write into the array. | |
TMoveFrom | ReadonlyArrayNode | Use Default: Do not specify. Type of node from which children can be moved into this array. |
Methods
Method | Return Type | Description |
---|---|---|
insertAt(index, value) | void | Inserts new item(s) at a specified location. |
insertAtEnd(value) | void | Inserts new item(s) at the end of the array. |
insertAtStart(value) | void | Inserts new item(s) at the start of the array. |
moveRangeToEnd(sourceStart, sourceEnd) | void | Moves the specified items to the end of the array. |
moveRangeToEnd(sourceStart, sourceEnd, source) | void | Moves the specified items to the end of the array. |
moveRangeToIndex(destinationGap, sourceStart, sourceEnd) | void |
Moves the specified items to the desired location within the array. WARNING - This API is easily misused. Please read the documentation for the |
moveRangeToIndex(destinationGap, sourceStart, sourceEnd, source) | void |
Moves the specified items to the desired location within the array. WARNING - This API is easily misused. Please read the documentation for the |
moveRangeToStart(sourceStart, sourceEnd) | void | Moves the specified items to the start of the array. |
moveRangeToStart(sourceStart, sourceEnd, source) | void | Moves the specified items to the start of the array. |
moveToEnd(sourceIndex) | void | Moves the specified item to the end of the array. |
moveToEnd(sourceIndex, source) | void | Moves the specified item to the end of the array. |
moveToIndex(destinationGap, sourceIndex) | void |
Moves the specified item to the desired location in the array. WARNING - This API is easily misused. Please read the documentation for the |
moveToIndex(destinationGap, sourceIndex, source) | void |
Moves the specified item to the desired location in the array. WARNING - This API is easily misused. Please read the documentation for the |
moveToStart(sourceIndex) | void | Moves the specified item to the start of the array. |
moveToStart(sourceIndex, source) | void | Moves the specified item to the start of the array. |
removeAt(index) | void | Removes the item at the specified location. |
removeRange(start, end) | void | Removes all items between the specified indices. |
values() | IterableIterator<T> | Returns a custom IterableIterator which throws usage errors if concurrent editing and iteration occurs. |
Method Details
insertAt
Inserts new item(s) at a specified location.
Signature
insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
Parameters
Parameter | Type | Description |
---|---|---|
index | number | The index at which to insert value . |
value | readonly (TNew | IterableTreeArrayContent<TNew>)[] | The content to insert. |
Error Handling
Throws if index
is not in the range [0, array.length
).
insertAtEnd
Inserts new item(s) at the end of the array.
Signature
insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
Parameters
Parameter | Type | Description |
---|---|---|
value | readonly (TNew | IterableTreeArrayContent<TNew>)[] | The content to insert. |
insertAtStart
Inserts new item(s) at the start of the array.
Signature
insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
Parameters
Parameter | Type | Description |
---|---|---|
value | readonly (TNew | IterableTreeArrayContent<TNew>)[] | The content to insert. |
moveRangeToEnd
Moves the specified items to the end of the array.
Signature
moveRangeToEnd(sourceStart: number, sourceEnd: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
sourceStart | number | The starting index of the range to move (inclusive). |
sourceEnd | number | The ending index of the range to move (exclusive) |
Error Handling
Throws if either of the input indices are not in the range [0, array.length
) or if sourceStart
is greater than sourceEnd
. if any of the input indices are not in the range [0, array.length
], or if sourceStart
is greater than sourceEnd
.
moveRangeToEnd
Moves the specified items to the end of the array.
Signature
moveRangeToEnd(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
Parameters
Parameter | Type | Description |
---|---|---|
sourceStart | number | The starting index of the range to move (inclusive). |
sourceEnd | number | The ending index of the range to move (exclusive) |
source | TMoveFrom | The source array to move items out of. |
Error Handling
Throws if the types of any of the items being moved are not allowed in the destination array, if either of the input indices are not in the range [0, array.length
) or if sourceStart
is greater than sourceEnd
. if any of the input indices are not in the range [0, array.length
], or if sourceStart
is greater than sourceEnd
.
moveRangeToIndex
Moves the specified items to the desired location within the array.
WARNING - This API is easily misused. Please read the documentation for the destinationGap
parameter carefully.
Signature
moveRangeToIndex(destinationGap: number, sourceStart: number, sourceEnd: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
destinationGap | number |
The location *between* existing items that the moved item should be moved to. WARNING - For example, if the array contains items - So moving This interpretation of - Move to the start of the array: This interpretation of - Move item B before its predecessor: Notice the asymmetry between |
sourceStart | number | The starting index of the range to move (inclusive). |
sourceEnd | number | The ending index of the range to move (exclusive) |
Error Handling
Throws if any of the input indices are not in the range [0, array.length
) or if sourceStart
is greater than sourceEnd
. if any of the input indices are not in the range [0, array.length
], or if sourceStart
is greater than sourceEnd
.
moveRangeToIndex
Moves the specified items to the desired location within the array.
WARNING - This API is easily misused. Please read the documentation for the destinationGap
parameter carefully.
Signature
moveRangeToIndex(destinationGap: number, sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
Parameters
Parameter | Type | Description |
---|---|---|
destinationGap | number |
The location *between* existing items that the moved item should be moved to. WARNING - For example, if the array contains items - So moving This interpretation of - Move to the start of the array: This interpretation of - Move item B before its predecessor: Notice the asymmetry between |
sourceStart | number | The starting index of the range to move (inclusive). |
sourceEnd | number | The ending index of the range to move (exclusive) |
source | TMoveFrom | The source array to move items out of. |
Error Handling
Throws if the types of any of the items being moved are not allowed in the destination array, if any of the input indices are not in the range [0, array.length
], or if sourceStart
is greater than sourceEnd
.
moveRangeToStart
Moves the specified items to the start of the array.
Signature
moveRangeToStart(sourceStart: number, sourceEnd: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
sourceStart | number | The starting index of the range to move (inclusive). |
sourceEnd | number | The ending index of the range to move (exclusive) |
Error Handling
Throws if either of the input indices are not in the range [0, array.length
) or if sourceStart
is greater than sourceEnd
. if any of the input indices are not in the range [0, array.length
], or if sourceStart
is greater than sourceEnd
.
moveRangeToStart
Moves the specified items to the start of the array.
Signature
moveRangeToStart(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
Parameters
Parameter | Type | Description |
---|---|---|
sourceStart | number | The starting index of the range to move (inclusive). |
sourceEnd | number | The ending index of the range to move (exclusive) |
source | TMoveFrom | The source array to move items out of. |
Error Handling
Throws if the types of any of the items being moved are not allowed in the destination array, if either of the input indices are not in the range [0, array.length
) or if sourceStart
is greater than sourceEnd
. if any of the input indices are not in the range [0, array.length
], or if sourceStart
is greater than sourceEnd
.
moveToEnd
Moves the specified item to the end of the array.
Signature
moveToEnd(sourceIndex: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
sourceIndex | number | The index of the item to move. |
Error Handling
Throws if sourceIndex
is not in the range [0, array.length
).
moveToEnd
Moves the specified item to the end of the array.
Signature
moveToEnd(sourceIndex: number, source: TMoveFrom): void;
Parameters
Parameter | Type | Description |
---|---|---|
sourceIndex | number | The index of the item to move. |
source | TMoveFrom | The source array to move the item out of. |
Error Handling
Throws if sourceIndex
is not in the range [0, array.length
).
moveToIndex
Moves the specified item to the desired location in the array.
WARNING - This API is easily misused. Please read the documentation for the destinationGap
parameter carefully.
Signature
moveToIndex(destinationGap: number, sourceIndex: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
destinationGap | number |
The location *between* existing items that the moved item should be moved to. WARNING - For example, if the array contains items - So moving This interpretation of - Move to the start of the array: This interpretation of - Move item B before its predecessor: Notice the asymmetry between |
sourceIndex | number | The index of the item to move. |
Error Handling
Throws if any of the input indices are not in the range [0, array.length
).
moveToIndex
Moves the specified item to the desired location in the array.
WARNING - This API is easily misused. Please read the documentation for the destinationGap
parameter carefully.
Signature
moveToIndex(destinationGap: number, sourceIndex: number, source: TMoveFrom): void;
Parameters
Parameter | Type | Description |
---|---|---|
destinationGap | number |
The location *between* existing items that the moved item should be moved to. WARNING - For example, if the array contains items - So moving This interpretation of - Move to the start of the array: This interpretation of - Move item B before its predecessor: Notice the asymmetry between |
sourceIndex | number | The index of the item to move. |
source | TMoveFrom | The source array to move the item out of. |
Error Handling
Throws if any of the source index is not in the range [0, array.length
), or if the index is not in the range [0, array.length
].
moveToStart
Moves the specified item to the start of the array.
Signature
moveToStart(sourceIndex: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
sourceIndex | number | The index of the item to move. |
Error Handling
Throws if sourceIndex
is not in the range [0, array.length
).
moveToStart
Moves the specified item to the start of the array.
Signature
moveToStart(sourceIndex: number, source: TMoveFrom): void;
Parameters
Parameter | Type | Description |
---|---|---|
sourceIndex | number | The index of the item to move. |
source | TMoveFrom | The source array to move the item out of. |
Error Handling
Throws if sourceIndex
is not in the range [0, array.length
).
removeAt
Removes the item at the specified location.
Signature
removeAt(index: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
index | number | The index at which to remove the item. |
Error Handling
Throws if index
is not in the range [0, array.length
).
removeRange
Removes all items between the specified indices.
Signature
removeRange(start?: number, end?: number): void;
Remarks
The default values for start and end are computed when this is called, and thus the behavior is the same as providing them explicitly, even with respect to merge resolution with concurrent edits. For example, two concurrent transactions both emptying the array with node.removeRange()
then inserting an item, will merge to result in the array having both inserted items.
Parameters
Parameter | Modifiers | Type | Description |
---|---|---|---|
start | optional | number | The starting index of the range to remove (inclusive). Defaults to the start of the array. |
end | optional | number | The ending index of the range to remove (exclusive). Defaults to array.length . |
Error Handling
Throws if start
is not in the range [0, array.length
].
Throws if end
is less than start
. If end
is not supplied or is greater than the length of the array, all items after start
are removed.
values
Returns a custom IterableIterator which throws usage errors if concurrent editing and iteration occurs.
Signature
values(): IterableIterator<T>;
Returns
Return type: IterableIterator<T>