This PR proposes to fix the misaligned rows issue by adding invisible cells in both the fixed columns and unfixed columns sections of the table. With some tweaks, this allows both fixed and unfixed cells to calculate their size based on the entire table's content, making sure that both size have the same size/height.
Afterwards the fixed rows can be coerced into having the correct width. With some extra tweaks for Firefox.
Percy browser versions have been updated for both dash-table and dash-table-python-v0 in order for the snapshots to match local behavior.
A lot of the changes in the PR is fixing the test logic to handle the added phantom-cell.
Current implementation slows down rendering for fixed table significantly (about 2.5x slower) but is significantly better than previous attempts (about 10-20x slower). Still investigating what can be done to reduce the overhead.
Possible secondary strategies:
Changing the default page_size from 250 to 100 would provide significant performance mitigation for default usage while not impacting usability significantly.
Closes #649
This PR proposes to fix the misaligned rows issue by adding invisible cells in both the fixed columns and unfixed columns sections of the table. With some tweaks, this allows both fixed and unfixed cells to calculate their size based on the entire table's content, making sure that both size have the same size/height.
Afterwards the fixed rows can be coerced into having the correct width. With some extra tweaks for Firefox.
Percy browser versions have been updated for both
dash-table
anddash-table-python-v0
in order for the snapshots to match local behavior.A lot of the changes in the PR is fixing the test logic to handle the added
phantom-cell
.Current implementation slows down rendering for fixed table significantly (about 2.5x slower) but is significantly better than previous attempts (about 10-20x slower). Still investigating what can be done to reduce the overhead.
Possible secondary strategies:
page_size
from 250 to 100 would provide significant performance mitigation for default usage while not impacting usability significantly.