Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is there a way to have different tabs in an app ? #36

Closed
TheoLvs opened this issue Jun 23, 2017 · 20 comments
Closed

Is there a way to have different tabs in an app ? #36

TheoLvs opened this issue Jun 23, 2017 · 20 comments

Comments

@TheoLvs
Copy link

TheoLvs commented Jun 23, 2017

Hello,

Thanks for the library, it's great ! The live update callbacks work perfectly, it's an awesome feature.

The only thing thats seems to be missing when comparing to Shiny is the possibility to have different Tabs to build a proper dashboard. I guess this could be done with html and css, but it could be nice to have an object made for that.

Theo

@chriddyp
Copy link
Member

chriddyp commented Jul 21, 2017

Thanks Theo!

There is no Tab component yet but there might be one in the future. For now, you can either build your own component, contract us to build one, or use dash urls. I'll keep this issue updated with other advancements.

@chriddyp
Copy link
Member

I'm working this in plotly/dash-core-components#74
tabs

@Akronix
Copy link
Contributor

Akronix commented Sep 15, 2017

great! good job @chriddyp!
Would it be possible to be able to set an icon in the tab label instead of a string?

@chubukov
Copy link

chubukov commented Oct 4, 2017

Is there any plan to have the tabs function more as containers? Or is there some functionality already there that I'm missing?

E.g. say I want to have one tab show a couple of graphs, each with some interactivity. And under another tab, I want to have some other graphs and some other widgets. It seems to me that I would need to have every element's output have the tab state as input to the callback, and decide whether it should be visible based on the current tab state. Is that the intended usage? It would be awesome if that was automated by having the Tabs component have children, just like a div

@chriddyp
Copy link
Member

chriddyp commented Oct 4, 2017

It seems to me that I would need to have every element's output have the tab state as input to the callback, and decide whether it should be visible based on the current tab state. Is that the intended usage?

Yeah, that's the intended usage right now.

It would be awesome if that was automated by having the Tabs component have children

What would the syntax look like in your opinion? For example, maybe something like?

Tabs({
   'tab-1': html.Div(...),
   'tab-2': html.Div(...),
   'tab-3': html.Div(...),
}, tabs=[
    {'label': 'Tab 1', 'value': 'tab-1'},
    {'label': 'Tab 2', 'value': 'tab-2'},
    {'label': 'Tab 3', 'value': 'tab-3'}
)

@chubukov
Copy link

chubukov commented Oct 4, 2017

@chriddyp Yes, that's exactly what I had in mind. I fully admit to not having thought through it completely.

Or even something like

Tabs([
{'name':'tab1','contents':html.Div(...)},
{'name':'tab2','contents':html.Div(...)},
{'name':'tab3','contents':html.Div(...)},
])

@bbloks
Copy link

bbloks commented Oct 16, 2017

@chriddyp, great job!
Tabs definitely make Dash more attractive.
I've been playing around, making some graphs and also came across the search for tab containers, to store different content per tab. I really like the idea @chubukov mentions, another method could be maybe attaching an 'id' to each individual tab to relate content to?

@TrixPy
Copy link

TrixPy commented Oct 24, 2017

is there any idea, how to make tabs with different content?

@Akronix
Copy link
Contributor

Akronix commented Oct 24, 2017

hi again.
What about having a dynamic number of tabs, with a close tab for each tab and an add button for creating new tabs? Would it be easy to implement?

@kyleabeauchamp
Copy link

I think some sort of tab containers might streamline my workflow as well. My current workaround has also been to append the tab value to all of my callback Inputs, but my current challenge is having tab 3 depend on the DataFrame Table output of tab 2, which is hidden.

@kyleabeauchamp
Copy link

kyleabeauchamp commented Oct 26, 2017

My first idea on how to implement dependencies between tabs was to duplicate the content of tab 2, make it invisible and then create have the tab depend on the invisible intermediate result. Doing this via Div(..., hidden=True) seems to do the trick 👍

@chriddyp
Copy link
Member

Div(..., style="visibility: hidden"))

@kyleabeauchamp - note that the syntax for hiding and showing content with CSS is style={'display': 'none'} and style={'display': 'block'}

@kyleabeauchamp
Copy link

Thanks, I've updated my previous comment to avoid propagating my CSS-ignorance.

@aeweiwi
Copy link

aeweiwi commented Nov 10, 2017

Thanks guys for this amazing effort in bringing Dash to Python.
I liked the idea of @chriddyp of how to use Tabs

I am playing around with Tabs and currently facing a problem of keeping states of input while switching from the "input tab" to the "report tab".

Here is a small code snippet example:

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, Event, State

app = dash.Dash()
tabs_list = [{"label":"input tab", "value": 0},
{"label":"report tab", "value": 1}]

app.layout = html.Div([dcc.Tabs(tabs = tabs_list,
value='ui_form_tab', id='tabs',
vertical='False'),
html.Div(id='tab_output')])

@app.callback(Output('tab_output', 'children'),
[Input('tabs', 'value')])
def display_tab_content(value):
if value == 0:
return html.Div([dcc.Dropdown(id='drp_process',
options=[{'label': 'a', 'value':'a'},
{'label':'b', 'value':'b'}],
value='input')])
elif value==1:
return html.Div(html.H1('I AM YOUR REPORT {0}'.format(value)))

if name == 'main':
app.run_server(host='0.0.0.0', port=8050, debug=True)

Any solution for that ?

@abcorep
Copy link

abcorep commented Nov 13, 2017

@kyleabeauchamp @chriddyp @chubukov I was wondering if you guys have an example of how exactly to append the tab value to all of the callbacks inputs and use the hidden divs. Sorry about my ignorance, but I'm completely new to Dash, plotly and Python as well.

@chubukov
Copy link

chubukov commented Nov 14, 2017

@abcorep Something like this. It's a little messy, perhaps someone has a cleaner example.


import dash
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input,Output

div_1=html.Div(['Bananas'],id='div_1')
div_2=html.Div(['Durian'],id='div_2')

tabs=dcc.Tabs(
        tabs=[
            {'label': 'Delicious', 'value': 'tab_1'},
            {'label': 'Not delicious', 'value': 'tab_2'},
        ],
        value='tab_1',
        id='tabs'
)
app = dash.Dash()
app.layout = html.Div([
    tabs,
    div_1,
    div_2
])

@app.callback(
    Output('div_1','style'),
    [Input('tabs','value'),
    ])
def update_div1_visible(tab_val):
    if tab_val=='tab_1':
        return {'display':'block'}
    else:
        return {'display':'none'}
    
@app.callback(
    Output('div_2','style'),
    [Input('tabs','value'),
    ])
def update_div2_visible(tab_val):
    if tab_val=='tab_2':
        return {'display':'block'}
    else:
        return {'display':'none'}

app.server.run()

@abcorep
Copy link

abcorep commented Nov 14, 2017

@chubukov, it's much cleaner now, thank you very much. I'll try this workaround in my applications. 👍

@FunmiKesa
Copy link

Thanks guys for this amazing effort in bringing Dash to Python.
I liked the idea of @chriddyp of how to use Tabs

I am playing around with Tabs and currently facing a problem of keeping states of input while switching from the "input tab" to the "report tab".

Here is a small code snippet example:

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, Event, State

app = dash.Dash()
tabs_list = [{"label":"input tab", "value": 0},
{"label":"report tab", "value": 1}]

app.layout = html.Div([dcc.Tabs(tabs = tabs_list,
value='ui_form_tab', id='tabs',
vertical='False'),
html.Div(id='tab_output')])

@app.callback(Output('tab_output', 'children'),
[Input('tabs', 'value')])
def display_tab_content(value):
if value == 0:
return html.Div([dcc.Dropdown(id='drp_process',
options=[{'label': 'a', 'value':'a'},
{'label':'b', 'value':'b'}],
value='input')])
elif value==1:
return html.Div(html.H1('I AM YOUR REPORT {0}'.format(value)))

if name == 'main':
app.run_server(host='0.0.0.0', port=8050, debug=True)

Any solution for that ?

Does anyone have a solution to keeping the states of input while switching between tabs?

@Akronix
Copy link
Contributor

Akronix commented Oct 3, 2018

Does anyone have a solution to keeping the states of input while switching between tabs?

I guess you would need an intermediate callback to save the state of those input as json into a hidden div in the browser, before to change the tab_output value.

BTW, why is this issue still open? It should be resolved after plotly/dash-core-components#74 is already merged and released.

@ned2
Copy link
Contributor

ned2 commented Oct 16, 2018

The new revision to the Tabs component was merged over in plotly/dash-core-components#213

@ned2 ned2 closed this as completed Oct 16, 2018
HammadTheOne pushed a commit to HammadTheOne/dash that referenced this issue May 22, 2021
* Update generate-components to use prop-types for PropTypes (supporting React 16)
Update components to use prop-types
Move react (and react-dom) to peerDependencies to support multiple versions (15.4+ and 16.0+)
Add package-lock.json

* Update tests to include __init__ for finding tests package.

* 0.8.1

* 0.9.0

* Bump version to 0.9.0 and update CHANGELOG

* Remove mismatched components from previous release

* Add back Base.react.js

* integration tests

* rerun publish

* trigger ci build

* Update generate-components to use prop-types for PropTypes (supporting React 16)
Update components to use prop-types
Move react (and react-dom) to peerDependencies to support multiple versions (15.4+ and 16.0+)
Add package-lock.json

* Update tests to include __init__ for finding tests package.

* 0.8.1

* 0.9.0

* Bump version to 0.9.0 and update CHANGELOG

* Remove mismatched components from previous release

* Add back Base.react.js
HammadTheOne pushed a commit to HammadTheOne/dash that referenced this issue May 28, 2021
* Update generate-components to use prop-types for PropTypes (supporting React 16)
Update components to use prop-types
Move react (and react-dom) to peerDependencies to support multiple versions (15.4+ and 16.0+)
Add package-lock.json

* Update tests to include __init__ for finding tests package.

* 0.8.1

* 0.9.0

* Bump version to 0.9.0 and update CHANGELOG

* Remove mismatched components from previous release

* Add back Base.react.js

* integration tests

* rerun publish

* trigger ci build

* Update generate-components to use prop-types for PropTypes (supporting React 16)
Update components to use prop-types
Move react (and react-dom) to peerDependencies to support multiple versions (15.4+ and 16.0+)
Add package-lock.json

* Update tests to include __init__ for finding tests package.

* 0.8.1

* 0.9.0

* Bump version to 0.9.0 and update CHANGELOG

* Remove mismatched components from previous release

* Add back Base.react.js
HammadTheOne pushed a commit to HammadTheOne/dash that referenced this issue May 28, 2021
* Virtualization (plotly#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 (plotly#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 (plotly#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
HammadTheOne pushed a commit to HammadTheOne/dash that referenced this issue May 28, 2021
* 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 (plotly#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 (plotly#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 (plotly#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
HammadTheOne pushed a commit that referenced this issue Jul 23, 2021
* 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
HammadTheOne pushed a commit that referenced this issue Jul 23, 2021
* 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
HammadTheOne pushed a commit that referenced this issue Jul 23, 2021
* Update generate-components to use prop-types for PropTypes (supporting React 16)
Update components to use prop-types
Move react (and react-dom) to peerDependencies to support multiple versions (15.4+ and 16.0+)
Add package-lock.json

* Update tests to include __init__ for finding tests package.

* 0.8.1

* 0.9.0

* Bump version to 0.9.0 and update CHANGELOG

* Remove mismatched components from previous release

* Add back Base.react.js

* integration tests

* rerun publish

* trigger ci build

* Update generate-components to use prop-types for PropTypes (supporting React 16)
Update components to use prop-types
Move react (and react-dom) to peerDependencies to support multiple versions (15.4+ and 16.0+)
Add package-lock.json

* Update tests to include __init__ for finding tests package.

* 0.8.1

* 0.9.0

* Bump version to 0.9.0 and update CHANGELOG

* Remove mismatched components from previous release

* Add back Base.react.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests