aboutsummaryrefslogtreecommitdiff
path: root/api/pl.treksoft.kvision.data
diff options
context:
space:
mode:
Diffstat (limited to 'api/pl.treksoft.kvision.data')
-rw-r--r--api/pl.treksoft.kvision.data/-data-container/-init-.html18
-rw-r--r--api/pl.treksoft.kvision.data/-data-container/clear-on-update.html2
-rw-r--r--api/pl.treksoft.kvision.data/-data-container/data-container.html8
-rw-r--r--api/pl.treksoft.kvision.data/-data-container/index.html12
-rw-r--r--api/pl.treksoft.kvision.data/-data-container/on-update.html2
-rw-r--r--api/pl.treksoft.kvision.data/-data-updatable/index.html2
-rw-r--r--api/pl.treksoft.kvision.data/-sorter-type/-a-s-c.html14
-rw-r--r--api/pl.treksoft.kvision.data/-sorter-type/-d-e-s-c.html14
-rw-r--r--api/pl.treksoft.kvision.data/-sorter-type/index.html33
-rw-r--r--api/pl.treksoft.kvision.data/index.html11
10 files changed, 99 insertions, 17 deletions
diff --git a/api/pl.treksoft.kvision.data/-data-container/-init-.html b/api/pl.treksoft.kvision.data/-data-container/-init-.html
index 5fc34642..7bf3994d 100644
--- a/api/pl.treksoft.kvision.data/-data-container/-init-.html
+++ b/api/pl.treksoft.kvision.data/-data-container/-init-.html
@@ -8,24 +8,30 @@
<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.data</a>&nbsp;/&nbsp;<a href="index.html">DataContainer</a>&nbsp;/&nbsp;<a href="./-init-.html">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
-<a name="pl.treksoft.kvision.data.DataContainer$&lt;init&gt;(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))"></a>
-<code><span class="identifier">DataContainer</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/model">model</span><span class="symbol">:</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/filter">filter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/mapping">mapping</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a>&nbsp;<span class="symbol">=</span>&nbsp;VPanel()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code>
+<a name="pl.treksoft.kvision.data.DataContainer$&lt;init&gt;(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))"></a>
+<code><span class="identifier">DataContainer</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/model">model</span><span class="symbol">:</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/containerAdd">containerAdd</span><span class="symbol">:</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/filter">filter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/sorter">sorter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-comparable/index.html"><span class="identifier">Comparable</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/sorterType">sorterType</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../-sorter-type/index.html"><span class="identifier">SorterType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;{ SorterType.ASC }<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code>
<p>Creates DataContainer bound to given data model.</p>
<h3>Parameters</h3>
<p><a name="M"></a>
<code>M</code> - data model type</p>
<p><a name="C"></a>
<code>C</code> - visual component type</p>
+<p><a name="CONT"></a>
+<code>CONT</code> - container type</p>
<p><a name="model"></a>
<code>model</code> - data model of type <em>ObservableList</em></p>
<p><a name="factory"></a>
<code>factory</code> - a function which creates component C from data model at given index</p>
+<p><a name="container"></a>
+<code>container</code> - internal container</p>
+<p><a name="containerAdd"></a>
+<code>containerAdd</code> - function to add component C to the internal container CONT</p>
<p><a name="filter"></a>
<code>filter</code> - a filtering function</p>
-<p><a name="mapping"></a>
-<code>mapping</code> - a mapping function</p>
-<p><a name="container"></a>
-<code>container</code> - internal container (defaults to <a href="../../pl.treksoft.kvision.panel/-v-panel/index.html">VPanel</a>)</p>
+<p><a name="sorter"></a>
+<code>sorter</code> - a sorting function</p>
+<p><a name="sorterType"></a>
+<code>sorterType</code> - a sorting type selection function</p>
<p><a name="init"></a>
<code>init</code> - an initializer extension function</p>
<p><strong>Constructor</strong><br/>
diff --git a/api/pl.treksoft.kvision.data/-data-container/clear-on-update.html b/api/pl.treksoft.kvision.data/-data-container/clear-on-update.html
index 4d57fe8e..f427030a 100644
--- a/api/pl.treksoft.kvision.data/-data-container/clear-on-update.html
+++ b/api/pl.treksoft.kvision.data/-data-container/clear-on-update.html
@@ -9,7 +9,7 @@
<br/>
<h1>clearOnUpdate</h1>
<a name="pl.treksoft.kvision.data.DataContainer$clearOnUpdate()"></a>
-<code><span class="keyword">fun </span><span class="identifier">clearOnUpdate</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">fun </span><span class="identifier">clearOnUpdate</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span></code>
<p>Clears notification handler.</p>
<p><strong>Return</strong><br/>
current container</p>
diff --git a/api/pl.treksoft.kvision.data/-data-container/data-container.html b/api/pl.treksoft.kvision.data/-data-container/data-container.html
index 920b49cf..6c6029ef 100644
--- a/api/pl.treksoft.kvision.data/-data-container/data-container.html
+++ b/api/pl.treksoft.kvision.data/-data-container/data-container.html
@@ -8,9 +8,13 @@
<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.data</a>&nbsp;/&nbsp;<a href="index.html">DataContainer</a>&nbsp;/&nbsp;<a href="./data-container.html">dataContainer</a><br/>
<br/>
<h1>dataContainer</h1>
-<a name="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))"></a>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">&gt;</span> <a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">dataContainer</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/model">model</span><span class="symbol">:</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/filter">filter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/mapping">mapping</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a>&nbsp;<span class="symbol">=</span>&nbsp;VPanel()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">&gt;</span></code>
+<a name="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span> <a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">dataContainer</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/model">model</span><span class="symbol">:</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="data-container.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/containerAdd">containerAdd</span><span class="symbol">:</span>&nbsp;<a href="data-container.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/filter">filter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/sorter">sorter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-comparable/index.html"><span class="identifier">Comparable</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/sorterType">sorterType</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../-sorter-type/index.html"><span class="identifier">SorterType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;{ SorterType.ASC }<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span></code>
<p>DSL builder extension function.</p>
<p>It takes the same parameters as the constructor of the built component.</p>
+<a name="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))"></a>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">&gt;</span> <a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">dataContainer</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/model">model</span><span class="symbol">:</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/containerAdd">containerAdd</span><span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.panel/-v-panel/index.html"><span class="identifier">VPanel</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/filter">filter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/sorter">sorter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-comparable/index.html"><span class="identifier">Comparable</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/sorterType">sorterType</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../-sorter-type/index.html"><span class="identifier">SorterType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;{ SorterType.ASC }<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="../../pl.treksoft.kvision.panel/-v-panel/index.html"><span class="identifier">VPanel</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="../../pl.treksoft.kvision.panel/-v-panel/index.html"><span class="identifier">VPanel</span></a><span class="symbol">&gt;</span></code>
+<p>DSL builder extension function with VPanel default.</p>
+<p>It takes the same parameters as the constructor of the built component.</p>
</BODY>
</HTML>
diff --git a/api/pl.treksoft.kvision.data/-data-container/index.html b/api/pl.treksoft.kvision.data/-data-container/index.html
index c5db6a9b..d04561fb 100644
--- a/api/pl.treksoft.kvision.data/-data-container/index.html
+++ b/api/pl.treksoft.kvision.data/-data-container/index.html
@@ -8,7 +8,7 @@
<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.data</a>&nbsp;/&nbsp;<a href="./index.html">DataContainer</a><br/>
<br/>
<h1>DataContainer</h1>
-<code><span class="keyword">class </span><span class="identifier">DataContainer</span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">, </span><a href="../-data-updatable/index.html"><span class="identifier">DataUpdatable</span></a></code>
+<code><span class="keyword">class </span><span class="identifier">DataContainer</span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">, </span><a href="../-data-updatable/index.html"><span class="identifier">DataUpdatable</span></a></code>
<p>A container class with support for observable data model.</p>
<h3>Constructors</h3>
<table>
@@ -18,7 +18,7 @@
<p><a href="-init-.html">&lt;init&gt;</a></p>
</td>
<td>
-<code><span class="identifier">DataContainer</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/model">model</span><span class="symbol">:</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/filter">filter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/mapping">mapping</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a>&nbsp;<span class="symbol">=</span>&nbsp;VPanel()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code>
+<code><span class="identifier">DataContainer</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/model">model</span><span class="symbol">:</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/containerAdd">containerAdd</span><span class="symbol">:</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/filter">filter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/sorter">sorter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-comparable/index.html"><span class="identifier">Comparable</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/sorterType">sorterType</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../-sorter-type/index.html"><span class="identifier">SorterType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;{ SorterType.ASC }<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$<init>(com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.C)), pl.treksoft.kvision.data.DataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.CONT, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.M, pl.treksoft.kvision.data.DataContainer.C, pl.treksoft.kvision.data.DataContainer.CONT)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span></code>
<p>Creates DataContainer bound to given data model.</p>
</td>
</tr>
@@ -135,7 +135,7 @@
<p><a href="clear-on-update.html">clearOnUpdate</a></p>
</td>
<td>
-<code><span class="keyword">fun </span><span class="identifier">clearOnUpdate</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">fun </span><span class="identifier">clearOnUpdate</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span></code>
<p>Clears notification handler.</p>
</td>
</tr>
@@ -153,7 +153,7 @@
<p><a href="on-update.html">onUpdate</a></p>
</td>
<td>
-<code><span class="keyword">fun </span><span class="identifier">onUpdate</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$onUpdate(kotlin.Function0((kotlin.Unit)))/handler">handler</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">fun </span><span class="identifier">onUpdate</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$onUpdate(kotlin.Function0((kotlin.Unit)))/handler">handler</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span></code>
<p>Sets a notification handler called after every update.</p>
</td>
</tr>
@@ -461,8 +461,10 @@
<p><a href="data-container.html">dataContainer</a></p>
</td>
<td>
-<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">&gt;</span> <a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">dataContainer</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/model">model</span><span class="symbol">:</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/filter">filter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/mapping">mapping</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html"><span class="identifier">Pair</span></a><span class="symbol">&lt;</span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a>&nbsp;<span class="symbol">=</span>&nbsp;VPanel()<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function2((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((kotlin.collections.List((kotlin.Pair((kotlin.Int, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)))), )), pl.treksoft.kvision.core.Container, kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span> <a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">dataContainer</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/model">model</span><span class="symbol">:</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/container">container</span><span class="symbol">:</span>&nbsp;<a href="data-container.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/containerAdd">containerAdd</span><span class="symbol">:</span>&nbsp;<a href="data-container.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/filter">filter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/sorter">sorter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-comparable/index.html"><span class="identifier">Comparable</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/sorterType">sorterType</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../-sorter-type/index.html"><span class="identifier">SorterType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;{ SorterType.ASC }<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.CONT)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span></code>
<p>DSL builder extension function.</p>
+<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">&gt;</span> <a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">.</span><span class="identifier">dataContainer</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/model">model</span><span class="symbol">:</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/factory">factory</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html"><span class="identifier">Int</span></a><span class="symbol">,</span>&nbsp;<span class="identifier">ObservableList</span><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">&gt;</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/containerAdd">containerAdd</span><span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.panel/-v-panel/index.html"><span class="identifier">VPanel</span></a><span class="symbol">.</span><span class="symbol">(</span><a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/filter">filter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/sorter">sorter</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-comparable/index.html"><span class="identifier">Comparable</span></a><span class="symbol">&lt;</span><span class="identifier">*</span><span class="symbol">&gt;</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/sorterType">sorterType</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="../-sorter-type/index.html"><span class="identifier">SorterType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;{ SorterType.ASC }<span class="symbol">, </span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer.Companion$dataContainer(pl.treksoft.kvision.core.Container, com.lightningkite.kotlin.observable.list.ObservableList((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M)), kotlin.Function3((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Int, com.lightningkite.kotlin.observable.list.ObservableList(()), pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C)), kotlin.Function3((pl.treksoft.kvision.panel.VPanel, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Unit)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Boolean)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, kotlin.Comparable((kotlin.Any)))), kotlin.Function0((pl.treksoft.kvision.data.SorterType)), kotlin.Function1((pl.treksoft.kvision.data.DataContainer((pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.M, pl.treksoft.kvision.data.DataContainer.Companion.dataContainer.C, pl.treksoft.kvision.panel.VPanel)), kotlin.Unit)))/init">init</span><span class="symbol">:</span>&nbsp;<a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="../../pl.treksoft.kvision.panel/-v-panel/index.html"><span class="identifier">VPanel</span></a><span class="symbol">&gt;</span><span class="symbol">.</span><span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">)</span><span class="symbol">: </span><a href="./index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="data-container.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="data-container.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="../../pl.treksoft.kvision.panel/-v-panel/index.html"><span class="identifier">VPanel</span></a><span class="symbol">&gt;</span></code>
+<p>DSL builder extension function with VPanel default.</p>
</td>
</tr>
</tbody>
diff --git a/api/pl.treksoft.kvision.data/-data-container/on-update.html b/api/pl.treksoft.kvision.data/-data-container/on-update.html
index 97e7df54..a625809a 100644
--- a/api/pl.treksoft.kvision.data/-data-container/on-update.html
+++ b/api/pl.treksoft.kvision.data/-data-container/on-update.html
@@ -9,7 +9,7 @@
<br/>
<h1>onUpdate</h1>
<a name="pl.treksoft.kvision.data.DataContainer$onUpdate(kotlin.Function0((kotlin.Unit)))"></a>
-<code><span class="keyword">fun </span><span class="identifier">onUpdate</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$onUpdate(kotlin.Function0((kotlin.Unit)))/handler">handler</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">&gt;</span></code>
+<code><span class="keyword">fun </span><span class="identifier">onUpdate</span><span class="symbol">(</span><span class="identifier" id="pl.treksoft.kvision.data.DataContainer$onUpdate(kotlin.Function0((kotlin.Unit)))/handler">handler</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="index.html"><span class="identifier">DataContainer</span></a><span class="symbol">&lt;</span><a href="index.html#M"><span class="identifier">M</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#C"><span class="identifier">C</span></a><span class="symbol">,</span>&nbsp;<a href="index.html#CONT"><span class="identifier">CONT</span></a><span class="symbol">&gt;</span></code>
<p>Sets a notification handler called after every update.</p>
<h3>Parameters</h3>
<p><a name="handler"></a>
diff --git a/api/pl.treksoft.kvision.data/-data-updatable/index.html b/api/pl.treksoft.kvision.data/-data-updatable/index.html
index d1c815ce..c6fbfb71 100644
--- a/api/pl.treksoft.kvision.data/-data-updatable/index.html
+++ b/api/pl.treksoft.kvision.data/-data-updatable/index.html
@@ -30,7 +30,7 @@
<p><a href="../-data-container/index.html">DataContainer</a></p>
</td>
<td>
-<code><span class="keyword">class </span><span class="identifier">DataContainer</span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">, </span><a href="./index.html"><span class="identifier">DataUpdatable</span></a></code>
+<code><span class="keyword">class </span><span class="identifier">DataContainer</span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="../../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">, </span><a href="./index.html"><span class="identifier">DataUpdatable</span></a></code>
<p>A container class with support for observable data model.</p>
</td>
</tr>
diff --git a/api/pl.treksoft.kvision.data/-sorter-type/-a-s-c.html b/api/pl.treksoft.kvision.data/-sorter-type/-a-s-c.html
new file mode 100644
index 00000000..bd62af2d
--- /dev/null
+++ b/api/pl.treksoft.kvision.data/-sorter-type/-a-s-c.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SorterType.ASC - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.data</a>&nbsp;/&nbsp;<a href="index.html">SorterType</a>&nbsp;/&nbsp;<a href="./-a-s-c.html">ASC</a><br/>
+<br/>
+<h1>ASC</h1>
+<a name="pl.treksoft.kvision.data.SorterType.ASC"></a>
+<code><span class="identifier">ASC</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.data/-sorter-type/-d-e-s-c.html b/api/pl.treksoft.kvision.data/-sorter-type/-d-e-s-c.html
new file mode 100644
index 00000000..88c6aa01
--- /dev/null
+++ b/api/pl.treksoft.kvision.data/-sorter-type/-d-e-s-c.html
@@ -0,0 +1,14 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SorterType.DESC - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.data</a>&nbsp;/&nbsp;<a href="index.html">SorterType</a>&nbsp;/&nbsp;<a href="./-d-e-s-c.html">DESC</a><br/>
+<br/>
+<h1>DESC</h1>
+<a name="pl.treksoft.kvision.data.SorterType.DESC"></a>
+<code><span class="identifier">DESC</span></code>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.data/-sorter-type/index.html b/api/pl.treksoft.kvision.data/-sorter-type/index.html
new file mode 100644
index 00000000..14bfbb60
--- /dev/null
+++ b/api/pl.treksoft.kvision.data/-sorter-type/index.html
@@ -0,0 +1,33 @@
+<HTML>
+<HEAD>
+<meta charset="UTF-8">
+<title>SorterType - kvision</title>
+<link rel="stylesheet" href="../../../style.css">
+</HEAD>
+<BODY>
+<a href="../../index.html">kvision</a>&nbsp;/&nbsp;<a href="../index.html">pl.treksoft.kvision.data</a>&nbsp;/&nbsp;<a href="./index.html">SorterType</a><br/>
+<br/>
+<h1>SorterType</h1>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">SorterType</span></code>
+<p>Sorter types.</p>
+<h3>Enum Values</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<p><a href="-a-s-c.html">ASC</a></p>
+</td>
+<td>
+</td>
+</tr>
+<tr>
+<td>
+<p><a href="-d-e-s-c.html">DESC</a></p>
+</td>
+<td>
+</td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/api/pl.treksoft.kvision.data/index.html b/api/pl.treksoft.kvision.data/index.html
index b3430917..e848b334 100644
--- a/api/pl.treksoft.kvision.data/index.html
+++ b/api/pl.treksoft.kvision.data/index.html
@@ -35,7 +35,7 @@
<p><a href="-data-container/index.html">DataContainer</a></p>
</td>
<td>
-<code><span class="keyword">class </span><span class="identifier">DataContainer</span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">, </span><a href="-data-updatable/index.html"><span class="identifier">DataUpdatable</span></a></code>
+<code><span class="keyword">class </span><span class="identifier">DataContainer</span><span class="symbol">&lt;</span><span class="identifier">M</span><span class="symbol">, </span><span class="identifier">C</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.core/-component/index.html"><span class="identifier">Component</span></a><span class="symbol">, </span><span class="identifier">CONT</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">:</span>&nbsp;<a href="../pl.treksoft.kvision.core/-widget/index.html"><span class="identifier">Widget</span></a><span class="symbol">, </span><a href="../pl.treksoft.kvision.core/-container/index.html"><span class="identifier">Container</span></a><span class="symbol">, </span><a href="-data-updatable/index.html"><span class="identifier">DataUpdatable</span></a></code>
<p>A container class with support for observable data model.</p>
</td>
</tr>
@@ -48,6 +48,15 @@
<p>Interface for updatable container.</p>
</td>
</tr>
+<tr>
+<td>
+<p><a href="-sorter-type/index.html">SorterType</a></p>
+</td>
+<td>
+<code><span class="keyword">enum</span> <span class="keyword">class </span><span class="identifier">SorterType</span></code>
+<p>Sorter types.</p>
+</td>
+</tr>
</tbody>
</table>
</BODY>