@@ -120,8 +120,8 @@ internal fun AnyFrame.toHtmlData(
120
120
val scripts = mutableListOf<String >()
121
121
val queue = LinkedList <Pair <AnyFrame , Int >>()
122
122
123
- fun AnyFrame.columnToJs (col : AnyCol , rowsLimit : Int ): ColumnDataForJs {
124
- val values = rows().take(rowsLimit)
123
+ fun AnyFrame.columnToJs (col : AnyCol , rowsLimit : Int? ): ColumnDataForJs {
124
+ val values = if (rowsLimit != null ) rows().take(rowsLimit) else rows( )
125
125
val scale = if (col.isNumber()) col.asNumbers().scale() else 1
126
126
val format = if (scale > 0 ) {
127
127
RendererDecimalFormat .fromPrecision(scale)
@@ -158,7 +158,7 @@ internal fun AnyFrame.toHtmlData(
158
158
queue.add(this to rootId)
159
159
while (! queue.isEmpty()) {
160
160
val (nextDf, nextId) = queue.pop()
161
- val rowsLimit = if (nextId == rootId) configuration.rowsLimit else 5
161
+ val rowsLimit = if (nextId == rootId) configuration.rowsLimit else configuration.nestedRowsLimit
162
162
val preparedColumns = nextDf.columns().map { nextDf.columnToJs(it, rowsLimit) }
163
163
val js = tableJs(preparedColumns, nextId, rootId, nextDf.nrow)
164
164
scripts.add(js)
@@ -189,7 +189,7 @@ public fun <T> DataFrame<T>.toHTML(
189
189
cellRenderer : CellRenderer = org.jetbrains.kotlinx.dataframe.jupyter.DefaultCellRenderer ,
190
190
getFooter : (DataFrame <T >) -> String = { "DataFrame [${it.size}]" },
191
191
): HtmlData {
192
- val limit = configuration.rowsLimit
192
+ val limit = configuration.rowsLimit ? : Int . MAX_VALUE
193
193
194
194
val footer = getFooter(this )
195
195
val bodyFooter = buildString {
@@ -210,7 +210,8 @@ public fun <T> DataFrame<T>.toHTML(
210
210
}
211
211
212
212
public data class DisplayConfiguration (
213
- var rowsLimit : Int = 20 ,
213
+ var rowsLimit : Int? = 20 ,
214
+ var nestedRowsLimit : Int? = 5 ,
214
215
var cellContentLimit : Int = 40 ,
215
216
var cellFormatter : RowColFormatter <* , * >? = null ,
216
217
var decimalFormat : RendererDecimalFormat = RendererDecimalFormat .DEFAULT ,
0 commit comments