Added Each to std wvc library.

This commit is contained in:
JesseBrault0709 2024-05-31 10:15:47 +02:00
parent 24cd67b3ef
commit 93cf3905ae

View File

@ -0,0 +1,27 @@
package groowt.view.component.web.lib
import groowt.view.View
import groowt.view.component.runtime.DefaultComponentWriter
import org.jetbrains.annotations.Nullable
class Each extends DelegatingWebViewComponent {
private final Collection items
private final @Nullable Closure transform
Each(Map attr) {
items = attr.items
transform = attr.transform
}
@Override
protected View getDelegate() {
return { Writer w ->
def cw = new DefaultComponentWriter(w, this.context.renderContext, this.context)
items.forEach {
cw << (transform ? transform(it) : it)
}
}
}
}