commonMain.SelectAll.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of selection Show documentation
Show all versions of selection Show documentation
A collection of drawing/charting utilities
The newest version!
package com.juul.krayon.selection
import com.juul.krayon.element.Element
import com.juul.krayon.element.ElementSelector
/** See analogous [d3 function](https://github.com/d3/d3-selection#selection_selectAll). */
public fun Selection.selectAll(
selector: ElementSelector,
): Selection = selectAll { queryAll(selector) }
/** See analogous [d3 function](https://github.com/d3/d3-selection#selection_selectAll). */
public inline fun Selection.selectAll(
crossinline select: E1.(Arguments) -> Sequence,
): Selection {
val arguments = Arguments.Buffer()
return Selection(
groups.flatMap { group ->
group.nodes.asSequence()
.withIndex()
.filter { (_, node) -> node != null }
.map { (index, node) ->
node as Element
Group(
node,
node.select(arguments(node.data as D, index, group.nodes))
.onEach { it.data = node.data }
.toList(),
)
}
},
)
}