Skip to content

Commit 8a6335d

Browse files
committed
Allow last column to be sub-cell scrolled to right edge if it is wider than the viewport
1 parent 0317b38 commit 8a6335d

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

src/js/scroll_panel.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,7 @@ export class RegularVirtualTableViewModel extends HTMLElement {
7979
${sub_cell_offsets}
8080
</style>
8181
<div class="rt-virtual-panel"></div>
82-
<div class="rt-scroll-table-clip">
83-
${slot}
84-
</div>
82+
<div class="rt-scroll-table-clip">${slot}</div>
8583
`;
8684

8785
const [, style, virtual_panel, table_clip] = this.shadowRoot.children;
@@ -298,6 +296,11 @@ export class RegularVirtualTableViewModel extends HTMLElement {
298296
cidx++;
299297
}
300298

299+
if (cidx < this._column_sizes.indices.length) {
300+
let viewport_width = this._column_sizes.indices.slice(0, this._view_cache.config.row_pivots.length).reduce((x, y) => x + y, 0);
301+
virtual_width += Math.max(0, this._column_sizes.indices[cidx] - (this._container_size.width - viewport_width) || 0);
302+
}
303+
301304
return virtual_width;
302305
}
303306

src/js/table.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,14 @@ export class RegularTableViewModel {
7373
async *draw(container_size, view_cache, selected_id, preserve_width, viewport, num_columns) {
7474
const { width: container_width, height: container_height } = container_size;
7575
const { view, config } = view_cache;
76-
let { data, row_headers, column_headers, metadata: data_listener_metadata, column_header_merge_depth, merge_headers = "both" } = await view(
77-
Math.floor(viewport.start_col),
78-
Math.floor(viewport.start_row),
79-
Math.ceil(viewport.end_col),
80-
Math.ceil(viewport.end_row)
81-
);
76+
let {
77+
data,
78+
row_headers,
79+
column_headers,
80+
metadata: data_listener_metadata,
81+
column_header_merge_depth,
82+
merge_headers = "both",
83+
} = await view(Math.floor(viewport.start_col), Math.floor(viewport.start_row), Math.ceil(viewport.end_col), Math.ceil(viewport.end_row));
8284

8385
const merge_row_headers = merge_headers === "both" || merge_headers === "row";
8486
const merge_column_headers = merge_headers === "both" || merge_headers === "column";

0 commit comments

Comments
 (0)