def render(self): els = [] graph_attrs = { 'config': dict( displayModeBar=False, responsive=True, ) } if self.graph is not None: deepupdate(graph_attrs, self.graph) graph = dcc.Graph(id='%s-graph' % self.id, className='slider-card__graph', **graph_attrs) els.append(graph) if self.slider: slider_args = ['min', 'max', 'step', 'value', 'marks'] assert set(self.slider.keys()).issubset(set(slider_args)) slider_el = dcc.Slider( id='%s-slider' % self.id, vertical=True, className='mb-4', **self.slider, ) els.append(html.Div(slider_el, className='slider-card__slider')) return els
def load(self): data = {} defaults = self.load_data_from_directory(self.directory) for dirname, dirpath in list_subdirectories(self.directory): data[dirname] = deepcopy(defaults) self.load_data_from_directory(dirpath) deepupdate(self.load_data_from_directory(dirpath), data[dirname]) return data
def make_layout(**kwargs): fontStack = '\'Inter\', sans-serif' params = dict( margin=dict( t=30, r=15, l=60, b=40, ), yaxis=dict( rangemode='tozero', hoverformat='.3r', separatethousands=True, anchor='free', domain=[0.02, 1], tickfont=dict( family=fontStack, size=13, ), gridwidth=1, gridcolor='#ccc', fixedrange=True, ), xaxis=dict(showgrid=True, showline=False, anchor='free', domain=[0.01, 1], tickfont=dict( family=fontStack, size=13, ), gridwidth=1, gridcolor='#ccc', fixedrange=True), font=dict(family=fontStack), separators=', ', plot_bgcolor='#fff', ) if 'legend' not in kwargs and 'showlegend' not in kwargs: params['showlegend'] = False deepupdate(params, kwargs) if 'title' in params: params['title'] = '<b>%s</b>' % params['title'] # ret = go.Layout(**params) return params
def render(self, is_top_row: bool = True) -> dbc.Card: els = [] graph_attrs = { 'config': dict( displayModeBar=False, responsive=True, ) } if self.graph is not None: deepupdate(graph_attrs, self.graph) els.append( dcc.Graph(id='%s-graph' % self.id, className='slider-card__graph', **graph_attrs)) if self.slider: slider_args = ['min', 'max', 'step', 'value', 'marks'] assert set(self.slider.keys()).issubset(set(slider_args)) slider_el = dcc.Slider( id='%s-slider' % self.id, vertical=True, className='mb-4', **self.slider, ) els.append(html.Div(slider_el, className='slider-card__slider')) classes = ['mb-4'] if self.downstream_card: classes.append('card-border-bottom') if self.upstream_card: classes.append('card-border-top') classes.append('grid-downstream-card') elif not is_top_row: classes.append('grid-unconnected-downstream-card') card = dbc.Card( dbc.CardBody(children=[ html.Div(els, className="slider-card__content"), self.extra_content, ]), className=' '.join(classes), ) if self.link_to_page: return html.A(card, href=self.link_to_page.path) else: return card