@@ -92,6 +92,8 @@ const parseColumnsConfiguration = (columns, currentProfile) => {
9292 * @property {boolean } verticallScrollEnabled if true, enable vertical (table internal) scroll in case of overflow,
9393 * whole page vertical scroll otherwise. Note that for this option to work,
9494 * all predecesors of the node returned by this function must have display property column-flex and height: 100%
95+ * @property {boolean } singleWrapper have effect only when some scroll is enabled.
96+ * If true all divs wrapping table element are merged to single on.
9597 */
9698
9799/**
@@ -134,6 +136,7 @@ export const table = (
134136 horizontalScrollEnabled = false ,
135137 freezeFirstColumn = false ,
136138 verticalScrollEnabled = false ,
139+ singleWrapper = false ,
137140 } = tableConfiguration || { } ;
138141 const { idKey, displayedColumns } = parseColumnsConfiguration ( columns , currentProfile ) ;
139142
@@ -147,12 +150,14 @@ export const table = (
147150 }
148151
149152 const scrollEnabled = horizontalScrollEnabled || verticalScrollEnabled ;
150- const wrapperClassesExpression = scrollEnabled ? '.sticky-table-wrapper.scroll-auto' : '' ;
151-
152153 const optionalTableClassesExpression = freezeFirstColumn && horizontalScrollEnabled ? '.freeze-first-column' : '' ;
153154
154- const wrappedTableNode = h (
155- wrapperClassesExpression ,
155+ const firstLevelWrapperClasses =
156+ ( verticalScrollEnabled ? '.sticky-table-wrapper' : '' ) +
157+ ( singleWrapper && scrollEnabled ? '.scroll-auto' : '' ) ;
158+
159+ let wrappedTableNode = h (
160+ firstLevelWrapperClasses ,
156161 h (
157162 `table.table.table-hover.shadow-level1${ optionalTableClassesExpression } ` ,
158163 {
@@ -168,6 +173,11 @@ export const table = (
168173 ] ,
169174 ) ,
170175 ) ;
176+
177+ if ( scrollEnabled && ! singleWrapper ) {
178+ wrappedTableNode = h ( '.scroll-auto' , wrappedTableNode ) ;
179+ }
180+
171181 return scrollEnabled && ! verticalScrollEnabled
172182 ? h ( '' , wrappedTableNode ) // Disable y-scroll
173183 : wrappedTableNode ;
0 commit comments