Source code for specdash.layout.tables

import dash_table
import dash_html_components as html
import dash_core_components as dcc
from specdash.config import DASH_TABLE_PAGE_SIZE

[docs]def get_dash_table(id_prefix, **extra_params): params = { #'id':{'type':'dashtable','index':id_prefix}, 'id': id_prefix, 'filter_action': "native", 'sort_action': "native", 'filter_action': "native", 'sort_action': "native", 'sort_mode': "multi", 'css':[{"selector": ".column-header--delete svg","rule": 'display: "none"'}, {"selector": ".column-header--delete::before","rule": 'content: "X"'}, #{'selector': '.export', 'rule': 'position: absolute;left: 13rem;bottom: -2rem;'}, # moves export button below table #{'selector': '.show-hide', 'rule': 'position: absolute;left: 17rem;bottom: -2rem !important;'}, # moves toggel button below table {'selector':'.dash-spreadsheet-menu', 'rule':'position: absolute;left: 11rem;bottom: -2rem'} #{ # "selector": 'td.cell--selected *, td.focused *', # "rule": 'backgroundColor: white !important;' #} ], 'style_table': {'overflowX': 'scroll','minWidth': '100%','fontSize': '0.8rem'}, 'style_cell': {'whiteSpace': 'normal','wordWrap': 'break-word','height': 'auto','textAlign':"right", 'borderLeft':"0px", 'borderRight':"0px",'borderTop':"0px", 'borderBottom':"0px"}, 'style_header': {'backgroundColor': 'rgb(250,250,250)','fontWeight': 'bold','fontSize': '0.8rem','borderTop':"1px solid rgb(150,150,150)"}, 'style_filter': {'backgroundColor': 'white','borderBottom':'1px rgb(250,250,250)'}, 'export_format': 'xlsx', 'export_headers': 'display', 'tooltip_delay': 0, 'tooltip_duration': None, 'page_action': 'native', 'page_size': DASH_TABLE_PAGE_SIZE, 'persistence':True, } for key in extra_params.keys(): params[key] = extra_params[key] table = dash_table.DataTable(**params) page_size_input = html.Span(['Page size: ',dcc.Input(id=id_prefix+"_page_size_input",type='number',min=0,step=1,value=DASH_TABLE_PAGE_SIZE, style={'maxWidth':'5rem'})]) return html.Span(children=[table,page_size_input])