-
-
Notifications
You must be signed in to change notification settings - Fork 73
Conversation
- define base virtualization strategies - define additional props - add tscript support to project
- refactor controlledtable and table
# Conflicts: # dash_table/bundle.js # src/lib/components/Table.js
- no strategy & fe page strategy basics
- update props - update fe and none strategy
- fix bug for when to create a new virtualizer
- copy/paste
- legacy behavior support (n-items + trailing)
- the build..
- fix cell key
- remove legacy (tail rows + display rows) - be page virtualization strategy - first be python prototypes
- placeholder for filter and sort - placeholder for prototype / "state" readonly props
Running into some contradicting requirements between the fixed rows and the dropdown. Fixed rows require 'overflow-y: scroll', while the dropdown requires the overflow to be visible. Looking into what can be done.. |
Update: So yeah.. this is a bit of a pickle.. the structure is as follow: container -> spreadsheet -> rows -> cells -> Dropdown / Select -> menu container: provides the relative positioning Decoupling the positioning and overflow allow for this type of scenario, but we would need the menu to be created as a child of container for the spreadsheet overflow / clipping to be prevented. Not sure there's enough flexibility with the Dropdown package to do something like that.. reading through the Dropdown & Select repos to gather intel for a solution, we are not the first ones to encounter this issue. |
src/dash-table/components/Cell.js
Outdated
menu.style.top = (parentBoundingRect.y + parentBoundingRect.height) - relativeBoundingRect.y; | ||
menu.style.left = parentBoundingRect.x - relativeBoundingRect.x; | ||
menu.style.width = parentBoundingRect.width; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The dropdown gets clipped by the overflow: auto/hidden/scroll.. to move around that, we make it absolutely positioned, find the relative parent and calculate the absolute position needed for it to be placed directly beneath its parent. Since the relative parent is above the element with overflow set, it does not get clipped.
Answering to: #37 (comment) Oh, nice! I did not test this on FF, only on Safari and Chrome. Updating + I'll test against Edge tomorrow. |
I'm noticing this odd intermittent thing with horizontal scroll. If you look carefully in the input cell, it looks like the |
Also experiencing weird stuff with the dropdowns (they cover the border/box-shadow) |
Answering to: #37 (comment) @chriddyp Updated to fix the scrolling issue when the table/column is not editable; when editable the problem was present before the PR, this is not a regression, I'll open an independent issue based on your comment and prioritize. |
Answering to: #37 (comment) @chriddyp Overriding user agent defaults for table and input (Chrome -> 13px, FF -> 16px) |
Follow up to: #37 (comment) Dropdown + fixed columns clipping fixed |
@chriddyp Please have another go at it! Thx. Haven't fixed the dropdown styling, will fix it after or as part of the merge with your changes, as they impacted dropdowns too. |
* Virtualization (#36) * virtualization - define base virtualization strategies - define additional props - add tscript support to project * virtualization - refactor controlledtable and table * virtualization - no strategy & fe page strategy basics * virtualization - update props - update fe and none strategy * virtualization - fix bug for when to create a new virtualizer * virtualization * virtualization - copy/paste * virtualization - legacy behavior support (n-items + trailing) * virtualization - the build.. * virtualization - fix cell key * virtualization * virtualization - remove legacy (tail rows + display rows) - be page virtualization strategy - first be python prototypes * remove expanded_rows and collapsable logic * fix lint * - refactor virtualization strategies - placeholder for filter and sort - placeholder for prototype / "state" readonly props * - viewport props (viewport dataframe & indices) - ramda @types * virtualization * - virtualizer through memoize / controlled component instead of state * fix render loop caused by virtualization when linked to BE * be and fe usage examples * restructure project * refactor project structure * clean up * refactor virtualization (wip) * clean up fe/be virtualization + paging + examples * fix lint * virtualization * version 3.0.0dev * revert * revert * revert * fix lint * fix pyling * fix pylint * pagination display * pagination display * fix demo code... * fix pr comments * fix pylint * add tslint to build * Fixed rows columns (#37) * virtualization - define base virtualization strategies - define additional props - add tscript support to project * virtualization - refactor controlledtable and table * virtualization - no strategy & fe page strategy basics * virtualization - update props - update fe and none strategy * virtualization - fix bug for when to create a new virtualizer * virtualization * virtualization - copy/paste * virtualization - legacy behavior support (n-items + trailing) * virtualization - the build.. * virtualization - fix cell key * virtualization * virtualization - remove legacy (tail rows + display rows) - be page virtualization strategy - first be python prototypes * remove expanded_rows and collapsable logic * fix lint * - refactor virtualization strategies - placeholder for filter and sort - placeholder for prototype / "state" readonly props * - viewport props (viewport dataframe & indices) - ramda @types * virtualization * - virtualizer through memoize / controlled component instead of state * fix render loop caused by virtualization when linked to BE * be and fe usage examples * restructure project * refactor project structure * clean up * refactor virtualization (wip) * clean up fe/be virtualization + paging + examples * fix lint * virtualization * version 3.0.0dev * revert * revert * revert * fix lint * fix pyling * fix pylint * pagination display * pagination display * fix demo code... * fix pr comments * fix pylint * add tslint to build * refactor ControlledTable component + updates * improve fixed rows * refactor logic for creating headers and rows * fixed columns * build * remove <Fragment> usage for 15.x support * fix lint * improve/fix styling in fixed_columns mode * fixed rows and columns (wip) * refactor some styling * fix rendering with fixed columns * fix binding * demo app * fix frozen columns (th cells) height * change default cell width * overflow scroll only if necessary * dropdown not clipped by container/overflow * fix percy test * update builds * update table style * clean up styles * fix FF styling * not editable div instead of input * fix header width * no-clipping dropdown + clipping fixed columns * fix fixed columns * Merge with master * readme update * sort * update python build * fix sort * rename version * rebuild python dist * 3.0 performance (#43) * performance improvements - use stylesheet element instead of inline styles for components - refactor stylesheets usage (facade) - switch out inputs for divs when inactive - refactor cell component to simplify props - update dataframe on blur instead of all changes * remove testing div wrapper * tslint - allow class arrow functions * fix regression in stylesheet * build python dist * cell reorder * fix dropdown regression * - improve stylesheet facade - fix column width bug - improve fixed columns / rows styling * fix dropdown menu regressions * sanitize stylesheet columns overrides (w/ and w/o units) * fix lint * fix click when value is undefined|null|empty * fix deletable columns * n_fixed_columns must take hidden columns into consideration * fix typo * fix header merge with fixed columns * update readme / limitations * fix fixed cell rendering after columns props change * fix fixed columns when hidden is not first or last of merged group * fix lint * cell alignment * fix dropdown alignment
* virtualization - define base virtualization strategies - define additional props - add tscript support to project * virtualization - refactor controlledtable and table * virtualization - no strategy & fe page strategy basics * virtualization - update props - update fe and none strategy * virtualization - fix bug for when to create a new virtualizer * virtualization * virtualization - copy/paste * virtualization - legacy behavior support (n-items + trailing) * virtualization - the build.. * virtualization - fix cell key * virtualization * virtualization - remove legacy (tail rows + display rows) - be page virtualization strategy - first be python prototypes * remove expanded_rows and collapsable logic * fix lint * - refactor virtualization strategies - placeholder for filter and sort - placeholder for prototype / "state" readonly props * - viewport props (viewport dataframe & indices) - ramda @types * virtualization * - virtualizer through memoize / controlled component instead of state * fix render loop caused by virtualization when linked to BE * be and fe usage examples * restructure project * refactor project structure * clean up * refactor virtualization (wip) * clean up fe/be virtualization + paging + examples * fix lint * virtualization * version 3.0.0dev * revert * revert * revert * fix lint * fix pyling * fix pylint * pagination display * pagination display * fix demo code... * fix pr comments * fix pylint * add tslint to build * refactor ControlledTable component + updates * improve fixed rows * refactor logic for creating headers and rows * Virtualization (#36) * virtualization - define base virtualization strategies - define additional props - add tscript support to project * virtualization - refactor controlledtable and table * virtualization - no strategy & fe page strategy basics * virtualization - update props - update fe and none strategy * virtualization - fix bug for when to create a new virtualizer * virtualization * virtualization - copy/paste * virtualization - legacy behavior support (n-items + trailing) * virtualization - the build.. * virtualization - fix cell key * virtualization * virtualization - remove legacy (tail rows + display rows) - be page virtualization strategy - first be python prototypes * remove expanded_rows and collapsable logic * fix lint * - refactor virtualization strategies - placeholder for filter and sort - placeholder for prototype / "state" readonly props * - viewport props (viewport dataframe & indices) - ramda @types * virtualization * - virtualizer through memoize / controlled component instead of state * fix render loop caused by virtualization when linked to BE * be and fe usage examples * restructure project * refactor project structure * clean up * refactor virtualization (wip) * clean up fe/be virtualization + paging + examples * fix lint * virtualization * version 3.0.0dev * revert * revert * revert * fix lint * fix pyling * fix pylint * pagination display * pagination display * fix demo code... * fix pr comments * fix pylint * add tslint to build * fixed columns * build * remove <Fragment> usage for 15.x support * fix lint * improve/fix styling in fixed_columns mode * fixed rows and columns (wip) * refactor some styling * fix rendering with fixed columns * fix binding * demo app * fix frozen columns (th cells) height * change default cell width * overflow scroll only if necessary * dropdown not clipped by container/overflow * fix percy test * update builds * update table style * clean up styles * cypress e2e stub * e2e stub * e2e stub * e2e stub * e2e stub * e2e stub * Fixed rows columns (#37) * virtualization - define base virtualization strategies - define additional props - add tscript support to project * virtualization - refactor controlledtable and table * virtualization - no strategy & fe page strategy basics * virtualization - update props - update fe and none strategy * virtualization - fix bug for when to create a new virtualizer * virtualization * virtualization - copy/paste * virtualization - legacy behavior support (n-items + trailing) * virtualization - the build.. * virtualization - fix cell key * virtualization * virtualization - remove legacy (tail rows + display rows) - be page virtualization strategy - first be python prototypes * remove expanded_rows and collapsable logic * fix lint * - refactor virtualization strategies - placeholder for filter and sort - placeholder for prototype / "state" readonly props * - viewport props (viewport dataframe & indices) - ramda @types * virtualization * - virtualizer through memoize / controlled component instead of state * fix render loop caused by virtualization when linked to BE * be and fe usage examples * restructure project * refactor project structure * clean up * refactor virtualization (wip) * clean up fe/be virtualization + paging + examples * fix lint * virtualization * version 3.0.0dev * revert * revert * revert * fix lint * fix pyling * fix pylint * pagination display * pagination display * fix demo code... * fix pr comments * fix pylint * add tslint to build * refactor ControlledTable component + updates * improve fixed rows * refactor logic for creating headers and rows * fixed columns * build * remove <Fragment> usage for 15.x support * fix lint * improve/fix styling in fixed_columns mode * fixed rows and columns (wip) * refactor some styling * fix rendering with fixed columns * fix binding * demo app * fix frozen columns (th cells) height * change default cell width * overflow scroll only if necessary * dropdown not clipped by container/overflow * fix percy test * update builds * update table style * clean up styles * fix FF styling * not editable div instead of input * fix header width * no-clipping dropdown + clipping fixed columns * fix fixed columns * Merge with master * readme update * sort * update python build * fix sort * rename version * performance improvements - use stylesheet element instead of inline styles for components - refactor stylesheets usage (facade) - switch out inputs for divs when inactive - refactor cell component to simplify props - update dataframe on blur instead of all changes * remove testing div wrapper * tslint - allow class arrow functions * fix regression in stylesheet * rebuild python dist * build python dist * cell reorder * fix dropdown regression * high level navigation and typing test * navigation and selection tests in typescript using cypress * remove old code * refactor + cypress tests against Python BE / functional in CI * add percy snapshots in JS * update python tests * pylint * pylint * pylint * pylint * pylint * pylint * pylint * python3 map changed * - improve stylesheet facade - fix column width bug - improve fixed columns / rows styling * fix dropdown menu regressions * sanitize stylesheet columns overrides (w/ and w/o units) * fix lint * 3.0 performance (#43) * performance improvements - use stylesheet element instead of inline styles for components - refactor stylesheets usage (facade) - switch out inputs for divs when inactive - refactor cell component to simplify props - update dataframe on blur instead of all changes * remove testing div wrapper * tslint - allow class arrow functions * fix regression in stylesheet * build python dist * cell reorder * fix dropdown regression * - improve stylesheet facade - fix column width bug - improve fixed columns / rows styling * fix dropdown menu regressions * sanitize stylesheet columns overrides (w/ and w/o units) * fix lint * fix click when value is undefined|null|empty * fix deletable columns * n_fixed_columns must take hidden columns into consideration * fix typo * fix header merge with fixed columns * update readme / limitations * fix fixed cell rendering after columns props change * fix fixed columns when hidden is not first or last of merged group * fix lint * cell alignment * fix dropdown alignment * fix e2e tests * fix column width regression on navigate + test * - improve keyboard navigation - add tests for keyboard navigation - add tests for column width - improve stability of python BE for tests * remove now renderer useless eslint file * clean up tests implementation * fix PR comments * fix dropdown keyboard navigation * pr - remove commented code
Fixed columns and fixed rows
Started restructuring styles and making them more efficient