This is the interface implemented by the composite building blocks of a scene graph in a CanvasComponent.
Remarks
It is meant to group multiple ICanvasObject instances as a logic unit. The interface is not meant to be implemented by application programmers. Instances implementing this interface can be retrieved from the factory methods in the canvas control.
This interface extends the IListEnumerable<T> interface to allow for easy iteration and determination of the size of the group. Note that the default implementation is based on a linked list, thus index-based iteration is not recommended.
Type Details
- yfiles module
- view-component
- yfiles-umd modules
- All view modules
- Legacy UMD name
- yfiles.view.ICanvasObjectGroup
See Also
Properties
Gets or sets the descriptor instance that interprets the userObject during rendering, hit testing, and bounds calculation.
Defined in
Gets or sets a flag that indicates whether ICanvasObject needs to be updated during the next call to invalidate.
Remarks
false if the visual is created or updated.See Also
Defined in
Gets the first item in the rendering list of this group or null.
Remarks
for (
let canvasObject = canvasObjectGroup.firstChild;
canvasObject !== null;
canvasObject = canvasObject.nextSibling
) {
// do something with canvasObject
}See Also
Gets or sets the parent group of this instance.
Defined in
Gets the last item in the rendering list of this group or null.
Remarks
for (
let canvasObject = canvasObjectGroup.lastChild;
canvasObject !== null;
canvasObject = canvasObject.previousSibling
) {
// do something with canvasObject
}Gets the next item in the list of rendered items that is owned by this element's group.
Remarks
null.Defined in
Gets the previous item in the list of rendered items that is owned by this element's group.
Remarks
null.Defined in
Gets the number of elements in this collection.
Overrides
Gets or sets the user object associated with this instance.
Remarks
See Also
Defined in
Gets or sets the visibility state of this instance.
Remarks
See Also
Defined in
Methods
Moves this instance exactly behind the reference item in the referenced item's group rendering list, so that it will be rendered directly above the given reference.
Remarks
This method returns the current instance so that calls can be chained, e.g. object.Above(other).Raise().
Observe that this instance will move into the referenced item's group if needed.
Returns
- ↪ICanvasObject
thisso that calls can be chained.
See Also
Defined in
Adds a child element to the scene graph as a child of this group.
Remarks
The descriptor will be queried for the various rendering related implementations for the given userObject at rendering time.
Although it it possible to support arbitrary userObjects with a custom ICanvasObjectDescriptor implementation, it is usually more convenient to provide an IVisualCreator instance and use one of the predefined ICanvasObjectDescriptor instances like ALWAYS_DIRTY_INSTANCE.
Parameters
A map of options to pass to the method.
- userObject - Object
- The user object to associate with this child element. This object will be passed to the
descriptor's methods. - descriptor - ICanvasObjectDescriptor
- An implementation of the ICanvasObjectDescriptor interface that will be passed the
userObjectto provide the various implementations that are used during rendering. If no descriptor is passed, ALWAYS_DIRTY_INSTANCE is used by the default implementation.
Returns
- ↪ICanvasObject
- A handle that can be used to control the rendering order and to later remove the element from the scene graph, again.
Examples
Providing an IVisualCreator instance as userObject
const canvasObject = graphComponent.backgroundGroup.addChild(
new RectangleVisualCreator(rectangle),
ICanvasObjectDescriptor.ALWAYS_DIRTY_INSTANCE
)Using a userObject which implements ILookup and returns its own IVisualCreator.
// the node provides an IVisualCreator via its lookup
const canvasObject = graphComponent.backgroundGroup.addChild(
node,
ICanvasObjectDescriptor.ALWAYS_DIRTY_LOOKUP
)Visuals provided as userObject can be used "as is"
const image = window.document.createElementNS(
'http://www.w3.org/2000/svg',
'image'
)
image.setAttributeNS(
'http://www.w3.org/1999/xlink',
'href',
'resources/background.png'
)
image.x.baseVal.value = 1
image.y.baseVal.value = 1
image.width.baseVal.value = 100
image.height.baseVal.value = 100
const visual = new SvgVisual(image)
graphComponent.rootGroup.addChild(
visual,
ICanvasObjectDescriptor.VISUAL
)See Also
Adds a new ICanvasObjectGroup to this group in the current scene graph.
Remarks
null userObject.Returns
- ↪ICanvasObjectGroup
- A handle to the newly created group that can be used to control the rendering order and to later remove the group from the scene graph, again.
See Also
Creates a wrapped enumerable that has one or several elements appended to it.
Remarks
items any special if they are array-like or enumerable-like.Parameters
A map of options to pass to the method.
- items - ICanvasObject
- The item(s) to prepend to the enumeration
Returns
- ↪IEnumerable<ICanvasObject>
- A new live view over the original enumerable that has each of the
itemsappended to it.
Examples
const list = List.fromArray([1, 2, 3, 4])
const appendedEnumerable = list.append(5, 6)
console.log(appendedEnumerable.toArray()) // yields [1,2,3,4,5,6]
// show live updates
list.add(4.5)
console.log(appendedEnumerable.toArray()) // yields [1,2,3,4,4.5,5,6]See Also
Overrides
Returns the element at the given index in this enumerable.
Parameters
A map of options to pass to the method.
- index - number
- The index of the element to return. Supports relative indexing from the end of the enumerable when passed a negative index. In other words, if a negative number is used, the returned element will be found by counting back from the end of the enumerable.
Returns
- ↪ICanvasObject
- The element at the given
index, orundefinedif the index is not within the range of this enumerable.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4])
console.log(enumerable.at(0)) // yields 1
console.log(enumerable.at(-1)) // yields 4
console.log(enumerable.at(5)) // yields undefinedOverrides
Moves this instance exactly before the reference item in the referenced item's group rendering list, so that it will be rendered directly behind the given reference.
Remarks
This method returns the current instance so that calls can be chained, e.g. object.Below(other).Lower().
Observe that this instance will move into the referenced item's group if needed.
Returns
- ↪ICanvasObject
thisso that calls can be chained.
See Also
Defined in
Concatenates this enumerable with the given other elements in a new dynamic IEnumerable<T>.
Remarks
Parameters
A map of options to pass to the method.
- elements - Object
- Rest arguments to be appended. In case the elements are enumerable-like, too, they will be will be enumerated after the others have been enumerated. But this can also be simple objects of type
Tin which case they will be appended to the enumerable just like with append
Returns
- ↪IEnumerable<ICanvasObject>
- A dynamic composite enumerable.
Examples
const enumerable1 = IEnumerable.from([1, 2])
const enumerable2 = IEnumerable.from([3, 4])
console.log(enumerable1.concat(enumerable2).toArray()) // yields [1,2,3,4]
// single values can be used, too
console.log(enumerable1.concat(3, 4).toArray()) // yields [1,2,3,4]
// arrays are flattened
console.log(enumerable1.concat([5, 6], [7, 8]).toArray()) // now contains [1,2,5,6,7,8]
// works with arrays and array-like collections, too
console.log(enumerable1.concat([3, 4]).toArray()) // yields [1,2,3,4]const list1 = List.fromArray([1, 2])
const list2 = List.fromArray([3, 4])
const result = list1.concat(list2)
console.log(result.toArray()) // yields [1,2,3,4]
list1.add(2.5)
// result changed also
console.log(result.toArray()) // yields [1,2,2.5,3,4]
list2.add(5)
// result changed also
console.log(result.toArray()) // yields [1,2,2.5,3,4,5]See Also
Overrides
distinct
(keySelector?: function(ICanvasObject):Object, thisArg?: Object) : IEnumerable<ICanvasObject>Creates a wrapped enumerable that yields each element only once.
Remarks
Parameters
A map of options to pass to the method.
- keySelector - function(ICanvasObject):Object
- The optional function that determines the key to determine distinctness of the elements. If omitted, the element itself is used.
Signature Details
function(element: ICanvasObject) : ObjectA function which creates a key for the givenelement.Parameters
- element - ICanvasObject
- The element to get the key for.
Returns
- Object
- The key for the element.
- thisArg - Object
- The optional object to use for
thisin thekeySelectorfunction.
Returns
- ↪IEnumerable<ICanvasObject>
- A new live view over the original enumerable that yields each element with a given key at most once.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 3, 4])
const result = enumerable.distinct()
console.log(result.toArray()) // yields [1,2,3,4]See Also
Overrides
Returns the element at the given index in this enumerable.
Remarks
Parameters
A map of options to pass to the method.
- index - number
- The index of the element to return.
Returns
- ↪ICanvasObject
- The element at the given
index.
Throws
- Exception({ name: 'ArgumentError' })
- If the
indexis not within the range of this enumerable.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4])
const element = enumerable.elementAt(0)
console.log(element) // yields 1See Also
Deprecation warning
Use IEnumerable.at instead.Overrides
every
(predicate: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : booleanDetermines whether every element of the enumerable matches the given predicate.
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A predicate function which returns
trueif the element matches a condition.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪boolean
trueif all elements of the enumerable match the givenpredicate,falseotherwise.
Throws
- Exception({ name: 'ArgumentError' })
predicateisnull.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4])
console.log(enumerable.every((item) => item < 5)) // true
console.log(enumerable.every((item) => item < 4)) // falseOverrides
filter
(predicate: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : IEnumerable<ICanvasObject>Returns a dynamic IEnumerable<T> of the elements of this enumerable which match the given predicate.
Remarks
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A predicate function which returns
trueif the given element should be included in the resulting enumerable.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪IEnumerable<ICanvasObject>
- A dynamic enumerable of the elements which match the given
predicate.
Examples
const enumerable = IEnumerable.from([10, 2, 30, 4, 5, 6])
const result = enumerable.filter((item) => item < 5)
console.log(result.toArray()) // yields [2,4]const list = List.fromArray([10, 2, 30, 4, 5, 6])
const result = list.filter((item) => item < 5)
list.add(1)
// result changed also
console.log(result.toArray()) // yields [2,4,1]Overrides
find
(predicate?: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : ICanvasObjectReturns the first element of this enumerable, the first element of the enumerable that matches a given predicate if specified, or null if there is no such element.
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A predicate function which returns
trueif the given element should be returned.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪ICanvasObject
- The first element of this enumerable, its first element that matches a given predicate, or
nullif there is no such element.
Examples
const enumerable = IEnumerable.from([10, 2, 3, 9, 5, 6])
console.log(enumerable.find((item) => item < 5)) // yields 2
// no matches with the given predicate
console.log(enumerable.find((item) => item < 2)) // yields nullOverrides
findIndex
(predicate: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : numberSearches the enumerable for the first item for which predicate returns true and returns its index.
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A predicate function which returns
trueif an item matches the search conditions.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪number
- The index of the first item for which
predicatereturnstrueor -1 if there is no such item in the enumerable.
Overrides
findLast
(predicate?: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : ICanvasObjectReturns the last element of this enumerable, the last element of the enumerable that matches a given predicate if specified, or null if there is no such element.
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A predicate function which returns
trueif the given element should be returned.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪ICanvasObject
- The last element of this enumerable, its last element that matches a given predicate, or
nullif there is no such element.
Examples
const enumerable = IEnumerable.from([10, 2, 3, 9, 5, 6])
console.log(enumerable.findLast((item) => item < 5)) // yields 3
// no matches with the given predicate
console.log(enumerable.findLast((item) => item < 2)) // yields nullOverrides
findLastIndex
(predicate: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : numberSearches the enumerable for the last item for which predicate returns true and returns its index.
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A predicate function which returns
trueif an item matches the search conditions.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪number
- The index of the last item for which
predicatereturnstrueor -1 if there is no such item in the enumerable.
Overrides
first
(predicate?: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : ICanvasObjectReturns the first element of this enumerable or the first element of this enumerable that matches a given predicate, if specified.
Remarks
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A function which returns
trueif the given element should be returned.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪ICanvasObject
- The first matching element of this enumerable.
Throws
- Exception({ name: 'InvalidOperationError' })
- If this enumerable does not contain a matching element.
Examples
const enumerable = IEnumerable.from([10, 2, 3, 9, 5, 6])
console.log(enumerable.first((item) => item < 5)) // yields 2
// no matches with the given predicate
console.log(enumerable.first((item) => item < 2)) // throws exceptionSee Also
Overrides
firstOrDefault
(predicate?: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : ICanvasObjectReturns the first element of this enumerable, the first element of this enumerable that matches a given predicate, if specified, or null if there is no such element.
Remarks
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A predicate function which returns
trueif the given element should be returned.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪ICanvasObject
- The first element of this enumerable, its first element that matches a given predicate, or
nullif there is no such element.
Examples
const enumerable = IEnumerable.from([10, 2, 3, 9, 5, 6])
console.log(enumerable.firstOrDefault((item) => item < 5)) // yields 2
// no matches with the given predicate
console.log(enumerable.firstOrDefault((item) => item < 2)) // yields nullSee Also
Deprecation warning
Use IEnumerable.find or IEnumerable.at instead.Overrides
flatMap
<TResult>(selector: function(ICanvasObject, number, IEnumerable<ICanvasObject>):IEnumerable<TResult>, thisArg?: Object) : IEnumerable<TResult>Returns a flattened dynamic IEnumerable<T> of this enumerable using the given selector function which returns an enumerable for each element of this enumerable.
Remarks
Type Parameters
- TResult
Parameters
A map of options to pass to the method.
- selector - function(ICanvasObject, number, IEnumerable<ICanvasObject>):IEnumerable<TResult>
- A function which returns an enumerable for each element of this enumerable.
Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : IEnumerable<TResult>The selector to use for the IEnumerable<T>.A function which returns a result of type IEnumerable<T> for eachelement.Parameters
- element - ICanvasObject
- The current element create a result for.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- IEnumerable<TResult>
- A result of type
of TResultcreated from theelement.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪IEnumerable<TResult>
- A flattened dynamic enumerable of the enumerables provided for each element of this enumerable.
Examples
const enumerable = IEnumerable.from([1, 2, 3])
const result = enumerable.flatMap((item) =>
IEnumerable.from([item, item * 2])
)
console.log(result.toArray()) // yields [1,2,2,4,3,6]const enumerable = IEnumerable.from<number>([1, 2, 3])
const result = enumerable.flatMap((item) =>
IEnumerable.from<number>([item, item * 2])
)
console.log(result.toArray()) // yields [1,2,2,4,3,6]const list = List.fromArray([[1], [2], [3]])
const result = list.flatMap((item) => IEnumerable.from([item[0] * 2]))
list.add([4])
// result changed also
console.log(result.toArray()) // yields [2,4,6,8]const list = List.fromArray<number[]>([[1], [2], [3]])
const result = list.flatMap((item) =>
IEnumerable.from<number>([item[0] * 2])
)
list.add([4])
// result changed also
console.log(result.toArray()) // yields [2,4,6,8]Overrides
Iterates this enumerable and invokes the given function for each element with the element, its index, and this enumerable as arguments.
Parameters
A map of options to pass to the method.
- action - function(ICanvasObject, number, IEnumerable<ICanvasObject>):void
- The function to call for each element.
Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>)An action to execute for each element of an IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4])
enumerable.forEach((item) => console.log(item)) // 1 2 3 4
// accessing the index
enumerable.forEach((item, index) =>
console.log(`Item #${index} is ${item}`)
)Overrides
Gets the i-th element in the collection.
Parameters
A map of options to pass to the method.
- i - number
- the zero-based index of the item in this collection
Returns
- ↪ICanvasObject
- the item for the given index
Throws
- Exception({ name: 'ArgumentError' })
iis not a valid index in the IListEnumerable<T>.
Defined in
Gets an IEnumerator<T> which can be used to enumerate the items this instance represents.
Remarks
for(let item of enumerable){}) protocol.Returns
- ↪IEnumerator<ICanvasObject>
- The IEnumerator<T> which can be used to iterate over the items in this instance
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4])
const enumerator = enumerable.getEnumerator()
while (enumerator.moveNext()) {
console.log(enumerator.current)
}
// 1 2 3 4
// enumerators can be reused
enumerator.reset()
while (enumerator.moveNext()) {
console.log(enumerator.current)
}
// 1 2 3 4Implements
groupBy
<TKey,TResult>(keySelector: function(ICanvasObject, number, IEnumerable<ICanvasObject>):TKey, resultCreator?: function(TKey, IEnumerable<ICanvasObject>, number):TResult, thisArg?: Object) : IEnumerable<TResult>Groups the elements in the enumerable according to the equality of a key.
Remarks
keySelector will be used to retrieve a key. All elements with the same key will be provided to the optional resultCreator function that receives both the key, and an IEnumerable<T> of the elements that match that key to create a resulting object that will be yielded by this enumerable. Note that the resulting enumerable does not necessarily preserve the order of the (first) appearance of their elements in the original sequence. The elements of each group passed to the resultCreator are in the order of their original appearance.Type Parameters
- TKey
- The type of the key elements.
- TResult
- The type of the created elements.
Parameters
A map of options to pass to the method.
- keySelector - function(ICanvasObject, number, IEnumerable<ICanvasObject>):TKey
- A function which selects from each element the key.
Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : TKeyA function which creates a key for the givenelement.Parameters
- element - ICanvasObject
- The element to get the key for.
- index - number
- The index of the element in the underlying
. - source - IEnumerable<ICanvasObject>
- The underlying
Returns
- TKey
- resultCreator - function(TKey, IEnumerable<ICanvasObject>, number):TResult
- An optional function which transforms each group of elements and their common key into a resulting object. If omitted, the default implementation will create arrays of length 2 where the first element is the key and the second element is an IEnumerable<TSource> of the elements with the corresponding key.
Signature Details
function(key: TKey, group: IEnumerable<ICanvasObject>, index: number) : TResultA function which transforms a group of elements and their common key into a resulting object.Parameters
- key - TKey
- The key of the provided group.
- group - IEnumerable<ICanvasObject>
- The group of elements with the given key.
- index - number
- The index of the group.
Returns
- TResult
- A resulting object for the given group with the given key.
- thisArg - Object
- The optional value to use as
thiswhen executing thekeySelectorandresultCreator.
Returns
- ↪IEnumerable<TResult>
- An enumeration of groups of the original enumerable.
Examples
const enumerable = IEnumerable.from([
{ type: 'A', amount: 1 },
{ type: 'A', amount: 2 },
{ type: 'B', amount: 4 }
])
// without result creator
const groups1 = enumerable.groupBy((element) => element.type)
for (const g of groups1) {
console.log(`Type is ${g[0]} and has ${g[1].length} members.`)
}
// Type is A and has 2 members.
// Type is B and has 1 members.
// with result creator
const groups2 = enumerable.groupBy(
(element) => element.type,
(type, elements) => ({
type,
amount: elements.sum((item) => item.amount)
})
)
console.log(groups2.toArray()) // yields [{"type":"A","amount":4},{"type":"B","amount":4}]const enumerable = IEnumerable.from([
{ type: 'A', amount: 1 },
{ type: 'A', amount: 2 },
{ type: 'B', amount: 4 }
])
// without result creator
const groups1 = enumerable.groupBy<string, string>(
(element) => element.type
)
for (const g of groups1) {
console.log(`Type is ${g[0]} and has ${g[1].length} members.`)
}
// Type is A and has 2 members.
// Type is B and has 1 members.
// with result creator
const groups2 = enumerable.groupBy(
(element) => element.type,
(type, elements) => ({
type,
amount: elements!.sum((item) => item.amount)
})
)
console.log(groups2.toArray()) // yields [{"type":"A","amount":4},{"type":"B","amount":4}]const val = IEnumerable.ofRange(1, 10)
.groupBy(
(value, index) => index % 2,
(key, items, index) => [`key ${index % 2}`, items.toArray()]
)
.toArray()
// [
// ["key 0",[1,3,5,7,9]],
// ["key 1",[2,4,6,8,10]]
// ]const val = IEnumerable.ofRange(1, 10)
.groupBy(
(value, index) => index % 2,
(key, items, index) => [`key ${index % 2}`, items!.toArray()]
)
.toArray()
// [
// ["key 0",[1,3,5,7,9]],
// ["key 1",[2,4,6,8,10]]
// ]const enumerable = IEnumerable.from([
{ value: 0, key: 'a' },
{ value: 1, key: 'b' },
{ value: 2, key: 'b' },
{ value: 3, key: 'a' }
])
const obj = Object.fromEntries(
enumerable.groupBy(
(item) => item.key,
(key, items) => [key, items.toArray()]
)
)
// {
// a: [{value:0, key:a}, {value:3, key:a}],
// b: [{value:1, key:b}, {value:2, key:b}]
// }const enumerable: IEnumerable<{ value: number; key: string }> =
IEnumerable.from([
{ value: 0, key: 'a' },
{ value: 1, key: 'b' },
{ value: 2, key: 'b' },
{ value: 3, key: 'a' }
])
const obj = Object.fromEntries(
enumerable.groupBy(
(item) => item.key,
(key, items) => [key, items!.toArray()]
) as Iterable<[unknown, unknown]>
)
// {
// a: [{value:0, key:a}, {value:3, key:a}],
// b: [{value:1, key:b}, {value:2, key:b}]
// }Overrides
Determines whether the given value is part of this enumerable.
Parameters
A map of options to pass to the method.
- value - ICanvasObject
- The value to search for.
Returns
- ↪boolean
trueif this enumerable contains the given value,falseotherwise.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4])
console.log(enumerable.includes(2)) // true
console.log(enumerable.includes(5)) // falseOverrides
The index of the given item in the enumerable.
Parameters
A map of options to pass to the method.
- item - ICanvasObject
- The item to search for.
- fromIndex - number
Returns
- ↪number
- The index of the given item in the enumerable.
-1if the item is not in the enumerable.
Overrides
last
(predicate?: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : ICanvasObjectReturns the last element of this enumerable or the last element of this enumerable that matches a given predicate, if specified.
Remarks
Array.findLast" method. Consider using that method instead.Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A function which returns
trueif the given element should be returned.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪ICanvasObject
- The last element of this enumerable.
Throws
- Exception({ name: 'InvalidOperationError' })
- If the enumerable is empty.
Examples
const enumerable1 = IEnumerable.from([1, 2, 3, 4])
console.log(enumerable1.last()) // yields 4
// if the enumerable is empty then an exception will be thrown
const enumerable2 = IEnumerable.from([])
console.log(enumerable2.last()) // throws exceptionSee Also
Overrides
lastOrDefault
(predicate?: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : ICanvasObjectReturns the last element of this enumerable, the last element of this enumerable that matches a given predicate, if specified, or null if there is no such element.
Remarks
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A predicate function which returns
trueif the given element should be returned.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪ICanvasObject
- The last element of the enumerable or
null.
Examples
const enumerable1 = IEnumerable.from([1, 2, 3, 4])
console.log(enumerable1.lastOrDefault()) // yields 4
// if the enumerable is empty then null will be returned
const enumerable2 = IEnumerable.from([])
console.log(enumerable2.lastOrDefault()) // yields nullSee Also
Deprecation warning
Use IEnumerable.findLast or IEnumerable.at instead.Overrides
Moves this instance one step closer to the beginning of the group rendering list, so that it will be rendered behind its current predecessor.
Remarks
object.Lower().Lower()Returns
- ↪ICanvasObject
thisso that calls can be chained.
Defined in
map
<TResult>(selector: function(ICanvasObject, number, IEnumerable<ICanvasObject>):TResult, thisArg?: Object) : IEnumerable<TResult>Returns a dynamic IEnumerable<T> of this enumerable using the given selector function which returns a new object for each element of this enumerable.
Remarks
Type Parameters
- TResult
- The type of the mapped elements.
Parameters
A map of options to pass to the method.
- selector - function(ICanvasObject, number, IEnumerable<ICanvasObject>):TResult
- A function which converts each element into a new element of the type
TResult.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : TResultThe selector to use for the IEnumerable<T>.A function which returns a result of typeTResultfor eachelement.Parameters
- element - ICanvasObject
- The current element create a result for.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- TResult
- A result of type
TResultcreated from theelement.
- thisArg - Object
- The optional value to use as
thiswhen executing theselector.
Returns
- ↪IEnumerable<TResult>
- A dynamic enumerable of the results of the provided function.
Examples
const enumerable = IEnumerable.from([1, 2, 3])
const result = enumerable.map((item) => item * 2)
console.log(result.toArray()) // yields [2, 4, 6]
// with index
const result2 = enumerable.map((item, index) => item * index)
console.log(result2.toArray()) // yields [0, 2, 6]
// with index and enumerable
const result3 = enumerable.map(
(item, index, enumerable) =>
`Item no ${index} of ${enumerable.size} is ${item}`
)
console.log(result3.toArray())
// ["Item no 0 of 3 is 1","Item no 1 of 3 is 2","Item no 2 of 3 is 3"]const enumerable = IEnumerable.from([1, 2, 3])
const result = enumerable.map((item) => item * 2)
console.log(result.toArray()) // yields [2, 4, 6]
// with index
const result2 = enumerable.map((item, index) => item * index)
console.log(result2.toArray()) // yields [0, 2, 6]
// with index and enumerable
const result3 = enumerable.map(
(item, index, enumerable) =>
`Item no ${index} of ${enumerable!.size} is ${item}`
)
console.log(result3.toArray())
// ["Item no 0 of 3 is 1","Item no 1 of 3 is 2","Item no 2 of 3 is 3"]const list = List.fromArray([1, 2, 3])
const result = list.map((item) => item * 2)
list.add(4)
// result changed also
console.log(result.toArray()) // yields [2,4,6,8]Overrides
Converts this untyped enumerable into an enumerable with the given type.
Remarks
Type Parameters
- TResult
Returns
- ↪IEnumerable<TResult>
- A typed enumerable.
Overrides
orderBy
<TKey>(keySelector?: function(ICanvasObject):TKey, comparer?: function(TKey, TKey):number, thisArg?: Object) : IEnumerable<ICanvasObject>Yields an ordered enumerable of the elements given a key selection function and optional comparison function and creates a ordered view of the enumerable.
Remarks
Type Parameters
- TKey
Parameters
A map of options to pass to the method.
- keySelector - function(ICanvasObject):TKey
- The function that determines the key for sorting the elements. If omitted, the element itself is used.
Signature Details
function(element: ICanvasObject) : TKeyA function which creates a key for the givenelement.Parameters
- element - ICanvasObject
- The element to get the key for.
Returns
- TKey
- The key for the element.
- comparer - function(TKey, TKey):number
- A function with the signature
function(key1, key2):Numberwhich is used for the sort operation to compare the key elements in the enumerable. May be omitted.Signature Details
function(value1: TKey, value2: TKey) : numberCompares the given values.Parameters
- value1 - TKey
- The first value to compare.
- value2 - TKey
- The second value to compare.
Returns
- number
- A value less than 0 if value 1 is smaller than value2, 0 if both values are equal, greater than 0 otherwise.
- thisArg - Object
Returns
- ↪IEnumerable<ICanvasObject>
- An enumeration of groups of the original enumerable.
Examples
const enumerable = IEnumerable.from([
{ type: 'name-6', rank: 8 },
{ type: 'name-23', rank: 4 },
{ type: 'name-3', rank: 5 }
])
// order by the elements' rank, without a comparer function
const sortedEnumerable1 = enumerable.orderBy((entry) => entry.rank)
console.log(sortedEnumerable1.toArray())
// [{ "type": "name-23", "rank": 4 }, { "type": "name-3", "rank": 5 }, { "type": "name-6", "rank": 8 }]
// order by the elements' type using numeric collation to get a more "natural" order, with a comparer function
const collator = new Intl.Collator(undefined, {
numeric: true,
sensitivity: 'base'
})
const sortedEnumerable2 = enumerable.orderBy(
(entry) => entry.type,
collator.compare
)
console.log(sortedEnumerable2.toArray())
// [{ "type": "name-3", "rank": 5 }, { "type": "name-6", "rank": 8 },{ "type": "name-23", "rank": 4 }]Overrides
orderByDescending
<TKey>(keySelector?: function(ICanvasObject):TKey, comparer?: function(TKey, TKey):number, thisArg?: Object) : IEnumerable<ICanvasObject>Yields an ordered enumerable of the elements given a key selection function and optional comparison function and creates a ordered view of the enumerable where the elements are yielded in descending order.
Remarks
Type Parameters
- TKey
Parameters
A map of options to pass to the method.
- keySelector - function(ICanvasObject):TKey
- The function that determines the key for sorting the elements. If omitted, the element itself is used.
Signature Details
function(element: ICanvasObject) : TKeyA function which creates a key for the givenelement.Parameters
- element - ICanvasObject
- The element to get the key for.
Returns
- TKey
- The key for the element.
- comparer - function(TKey, TKey):number
- A function with the signature
function(key1, key2):Numberwhich is used for the sort operation to compare the key elements in the enumerable. May be omitted.Signature Details
function(value1: TKey, value2: TKey) : numberCompares the given values.Parameters
- value1 - TKey
- The first value to compare.
- value2 - TKey
- The second value to compare.
Returns
- number
- A value less than 0 if value 1 is smaller than value2, 0 if both values are equal, greater than 0 otherwise.
- thisArg - Object
Returns
- ↪IEnumerable<ICanvasObject>
- An enumeration of groups of the original enumerable.
Examples
const enumerable = IEnumerable.from([
{ type: 'A' },
{ type: 'B' },
{ type: 'C' },
{ type: 'D' }
])
// order by the elements' types, without a comparer function
const sortedEnumerable1 = enumerable.orderByDescending(
(entry) => entry.type
)
console.log(sortedEnumerable1.toArray())
// [{ "type": "D" }, { "type": "C" }, { "type": "B" }, { "type": "A" }]Overrides
Creates a wrapped enumerable that has on or several elements prepended to it.
Parameters
A map of options to pass to the method.
- items - ICanvasObject
- The item(s) to prepend to the enumeration
Returns
- ↪IEnumerable<ICanvasObject>
- A new live view over the original enumerable that has
itemsprepended to it.
Examples
const enumerable1 = IEnumerable.from([1, 2, 3, 4])
console.log(enumerable1.prepend(0).toArray()) // yields [0,1,2,3,4]
// more than one value can be used too
const enumerable2 = IEnumerable.from([3, 4, 5, 6])
console.log(enumerable2.prepend(1, 2).toArray()) // yields [1,2,3,4,5,6]See Also
Overrides
Moves this instance one step closer to the end of the group rendering list, so that it will be rendered on top of its current successor.
Remarks
object.Raise().Raise().Raise()Returns
- ↪ICanvasObject
thisso that calls can be chained.
Defined in
reduce
<TAccumulate>(accumulator: function(TAccumulate, ICanvasObject, number, IEnumerable<ICanvasObject>):TAccumulate, initialValue: TAccumulate) : TAccumulateApplies the accumulator function to this elements of this enumerable.
Type Parameters
- TAccumulate
- The type of the accumulated value.
Parameters
A map of options to pass to the method.
- accumulator - function(TAccumulate, ICanvasObject, number, IEnumerable<ICanvasObject>):TAccumulate
- A function which "adds" (accumulates) a value depending on the element and index to the initial value and returns the result.
Signature Details
function(total: TAccumulate, element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : TAccumulateThe accumulator to use for the IEnumerable<T>.A function which returns a result of typeTAccumulateas an accumulation oftotalandelement.Parameters
- total - TAccumulate
- The previously returned value of the function.
- element - ICanvasObject
- The current element to accumulate.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- TAccumulate
- A result of type
TAccumulatecreated from theelement.
- initialValue - TAccumulate
- The initial value for the accumulator. Omit/use the reduce overload if you don't want to specify an initial value.
Returns
- ↪TAccumulate
- The result of the accumulation.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4, 5])
const result = enumerable.reduce(
(accumulator, currentValue) => Math.max(accumulator, currentValue),
0
)
console.log(result) // expected output: 5See Also
Overrides
reduce
(accumulator: function(ICanvasObject, ICanvasObject, number, IEnumerable<ICanvasObject>):ICanvasObject) : ICanvasObjectApplies the accumulator function to this elements of this enumerable.
Parameters
A map of options to pass to the method.
- accumulator - function(ICanvasObject, ICanvasObject, number, IEnumerable<ICanvasObject>):ICanvasObject
- A function which "adds" (accumulates) a value depending on the element and index to the initial value and returns the result.
Signature Details
function(total: ICanvasObject, element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : ICanvasObjectThe accumulator to use for the IEnumerable<T>.A function which returns a result of typeTAccumulateas an accumulation oftotalandelement.Parameters
- total - ICanvasObject
- The previously returned value of the function.
- element - ICanvasObject
- The current element to accumulate.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- ICanvasObject
- A result of type
TAccumulatecreated from theelement.
Returns
- ↪ICanvasObject
- The result of the accumulation.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4, 5])
const result = enumerable.reduce(
(accumulator, currentValue) => accumulator + currentValue
)
console.log(result) // expected output: 15See Also
Overrides
reduceRight
<TAccumulate>(accumulator: function(TAccumulate, ICanvasObject, number, IEnumerable<ICanvasObject>):TAccumulate, initialValue: TAccumulate) : TAccumulateApplies the accumulator function to this elements of this enumerable in reverse order.
Type Parameters
- TAccumulate
- The type of the accumulated value.
Parameters
A map of options to pass to the method.
- accumulator - function(TAccumulate, ICanvasObject, number, IEnumerable<ICanvasObject>):TAccumulate
- A function which "adds" (accumulates) a value depending on the element and index to the seed value and returns the result.
Signature Details
function(total: TAccumulate, element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : TAccumulateThe accumulator to use for the IEnumerable<T>.A function which returns a result of typeTAccumulateas an accumulation oftotalandelement.Parameters
- total - TAccumulate
- The previously returned value of the function.
- element - ICanvasObject
- The current element to accumulate.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- TAccumulate
- A result of type
TAccumulatecreated from theelement.
- initialValue - TAccumulate
- The initial value for the accumulator. Omit/use the reduceRight overload if you don't want to specify an initial value.
Returns
- ↪TAccumulate
- The final value of the accumulation.
Examples
const enumerable = IEnumerable.from(['a', 'b', 'c', 'd'])
const result = enumerable.reduceRight(
(accumulator, currentValue) => currentValue + accumulator,
'.'
)
console.log(result) // yields 'abcd.'See Also
Overrides
reduceRight
(accumulator: function(ICanvasObject, ICanvasObject, number, IEnumerable<ICanvasObject>):ICanvasObject) : ICanvasObjectApplies the accumulator function to this elements of this enumerable in reverse order.
Parameters
A map of options to pass to the method.
- accumulator - function(ICanvasObject, ICanvasObject, number, IEnumerable<ICanvasObject>):ICanvasObject
- A function which "adds" (accumulates) a value depending on the element and index to the seed value and returns the result.
Signature Details
function(total: ICanvasObject, element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : ICanvasObjectThe accumulator to use for the IEnumerable<T>.A function which returns a result of typeTAccumulateas an accumulation oftotalandelement.Parameters
- total - ICanvasObject
- The previously returned value of the function.
- element - ICanvasObject
- The current element to accumulate.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- ICanvasObject
- A result of type
TAccumulatecreated from theelement.
Returns
- ↪ICanvasObject
- The result of the accumulation.
Examples
const enumerable = IEnumerable.from([
[0, 1],
[2, 3],
[4, 5]
])
const result = enumerable.reduceRight((accumulator, currentValue) =>
accumulator.concat(currentValue)
)
console.log(result) // yields [4,5,2,3,0,1]See Also
Overrides
Removes this item from the scene graph it currently belongs to.
Creates a wrapped view of an enumerable which skips the given amount of elements.
Parameters
A map of options to pass to the method.
- amount - number
- The number of elements to skip at the beginning.
Returns
- ↪IEnumerable<ICanvasObject>
- A new live view over the original enumerable that skips
amountelements.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4, 5, 6, 7])
const result = enumerable.skip(3)
console.log(result.toArray()) // yields [4,5,6,7]See Also
Overrides
skipWhile
(predicate: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : IEnumerable<ICanvasObject>Creates a wrapped view of an enumerable which skips a number of elements at the beginning while the given predicate yields true.
Remarks
predicate yields true for the elements of the original enumerable, the elements are skipped. The new enumeration will start with the first element for which the predicate yields false. All subsequent elements will be yielded.Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- The predicate function that determines what elements should be skipped. While the predicate yields
truefor the provided item, the element will not be yielded.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin the predicatefunction.
Returns
- ↪IEnumerable<ICanvasObject>
- A new live view over the original enumerable that discards elements at the beginnging of the original enumeration while the predicate yields
true.
Examples
const enumerable = IEnumerable.from([
'a',
'b',
'c',
'd',
'a',
'b',
'c',
'd'
])
const result = enumerable.skipWhile(
(element) => element.charCodeAt(0) < 'c'.charCodeAt(0)
)
console.log(result.toArray()) // yields ["c", "d", "a", "b", "c", "d"]See Also
Overrides
some
(predicate?: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : booleanDetermines whether this enumerable contains any elements matching the given predicate.
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A function which returns
trueif the element matches a condition.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪boolean
- Whether this enumerable contains any elements matching the given
predicate.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4, 5, 6, 7])
const result = enumerable.some((item) => item % 2 === 0)
console.log(result) // trueOverrides
sum
(selector: function(ICanvasObject, number, IEnumerable<ICanvasObject>):number, thisArg?: Object) : numberCalculates the sum of the elements of this enumerable.
Parameters
A map of options to pass to the method.
- selector - function(ICanvasObject, number, IEnumerable<ICanvasObject>):number
- A function which returns a numeric value for the given element.
Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : numberThe selector to use for the IEnumerable<T>.A function which returns a result of typeTResultfor eachelement.Parameters
- element - ICanvasObject
- The current element create a result for.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- number
- A result of type
TResultcreated from theelement.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪number
- The sum of the elements of the enumerable.
Examples
const enumerable = IEnumerable.from([
{ type: 'A', amount: 3 },
{ type: 'B', amount: 2 },
{ type: 'C', amount: 2 },
{ type: 'D', amount: 5 }
])
const result = enumerable.sum((element) => element.amount)
console.log(result) // yields 12Overrides
Creates a dynamic view of this enumerable with the given number of elements taken from the start or end of this enumerable.
Parameters
A map of options to pass to the method.
- count - number
- The number of elements in the created enumerable. If the number is positive, the elements are taken from the beginning, otherwise, the elements are taken from the end.
Returns
- ↪IEnumerable<ICanvasObject>
- A dynamic iew of this enumerable with the given number of elements.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4, 5, 6, 7])
// positive parameter means taking elements from the beginning of the enumerable
console.log(enumerable.take(2).toArray()) // yields [1,2]
// negative parameter means taking elements from the end of the enumerable
console.log(enumerable.take(-2).toArray()) // yields [6,7]See Also
Overrides
takeWhile
(predicate: function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean, thisArg?: Object) : IEnumerable<ICanvasObject>Returns a dynamic IEnumerable<T> that contains the elements from this enumerable as long as the given predicate is true.
Remarks
Parameters
A map of options to pass to the method.
- predicate - function(ICanvasObject, number, IEnumerable<ICanvasObject>):boolean
- A function which returns
trueas long as the elements should be added to the returned enumerable.Signature Details
function(element: ICanvasObject, index: number, source: IEnumerable<ICanvasObject>) : booleanThe predicate to use for IEnumerable<T>.Parameters
- element - ICanvasObject
- The current element to test.
- index - number
- The element's index in the
- source - IEnumerable<ICanvasObject>
- The enumerable this function is called upon.
Returns
- boolean
trueif the item matches the condition.
- thisArg - Object
- The optional object to use for
thisin thefunction.
Returns
- ↪IEnumerable<ICanvasObject>
- A dynamic enumerable that is a subset of the original enumerable.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 30, 4, 5])
const result = enumerable.takeWhile((item) => item < 5)
console.log(result.toArray()) // yields [1,2,3]Overrides
Creates an array with the elements of this enumerable.
Moves this instance to the beginning of the group rendering list, so that it will be rendered behind all other items in the same group.
Remarks
object.ToBack().Raise().Raise()Returns
- ↪ICanvasObject
thisso that calls can be chained.
Defined in
Moves this instance to the end of the group rendering list, so that it will be rendered in front of all other items in the same group.
Remarks
object.ToFront().Lower()Returns
- ↪ICanvasObject
thisso that calls can be chained.
Defined in
Creates a List<T> with the values of this enumerable.
Returns an dynamic enumerable which contains the elements of this enumerable in reverse order.
Remarks
Returns
- ↪IEnumerable<ICanvasObject>
- A dynamic enumerable which contains the elements of the original enumerable in reverse order.
Examples
const enumerable = IEnumerable.from([1, 2, 3, 4, 5])
const result = enumerable.toReversed()
console.log(result.toArray()) // yields [5,4,3,2,1]const list = List.fromArray([1, 2, 3, 4, 5])
const result = list.toReversed()
list.add(0)
// result changed also
console.log(result.toArray()) // yields [0,5,4,3,2,1]