import dash
import dash_cytoscape as cyto
import dash_html_components as html
import dash_daq as daq
from dash.dependencies import Input, Output, State
app = dash.Dash(__name__)
app.layout = html.Div([
html.Div([
html.Button('Button', id='btn-node', n_clicks_timestamp=0)
]),
cyto.Cytoscape(
id='cytoscape-elements-basic',
layout={'name': 'preset'},
style={'width': '100%', 'height': '400px'},
elements=[]
)
])
@app.callback(
Output('cytoscape-elements-basic', 'elements'),
Input('btn-node', 'n_clicks_timestamp'),
State('cytoscape-elements-basic', 'elements'))
def update_elements(btn, elements):
some_list = [1,2,3]
if int(btn):
return [{'data': {'id': x}} for x in some_list]
return elements
if __name__ == '__main__':
app.run_server(debug=True)
aW1wb3J0IGRhc2gKaW1wb3J0IGRhc2hfY3l0b3NjYXBlIGFzIGN5dG8KaW1wb3J0IGRhc2hfaHRtbF9jb21wb25lbnRzIGFzIGh0bWwKaW1wb3J0IGRhc2hfZGFxIGFzIGRhcQpmcm9tIGRhc2guZGVwZW5kZW5jaWVzIGltcG9ydCBJbnB1dCwgT3V0cHV0LCBTdGF0ZQoKYXBwID0gZGFzaC5EYXNoKF9fbmFtZV9fKQoKYXBwLmxheW91dCA9IGh0bWwuRGl2KFsKCiAgICBodG1sLkRpdihbCiAgICAgICAgaHRtbC5CdXR0b24oJ0J1dHRvbicsIGlkPSdidG4tbm9kZScsIG5fY2xpY2tzX3RpbWVzdGFtcD0wKQogICAgXSksCgogICAgY3l0by5DeXRvc2NhcGUoCiAgICAgICAgaWQ9J2N5dG9zY2FwZS1lbGVtZW50cy1iYXNpYycsCiAgICAgICAgbGF5b3V0PXsnbmFtZSc6ICdwcmVzZXQnfSwKICAgICAgICBzdHlsZT17J3dpZHRoJzogJzEwMCUnLCAnaGVpZ2h0JzogJzQwMHB4J30sCiAgICAgICAgZWxlbWVudHM9W10KICAgICkKXSkKCkBhcHAuY2FsbGJhY2soCiAgICBPdXRwdXQoJ2N5dG9zY2FwZS1lbGVtZW50cy1iYXNpYycsICdlbGVtZW50cycpLAogICAgSW5wdXQoJ2J0bi1ub2RlJywgJ25fY2xpY2tzX3RpbWVzdGFtcCcpLAogICAgU3RhdGUoJ2N5dG9zY2FwZS1lbGVtZW50cy1iYXNpYycsICdlbGVtZW50cycpKQpkZWYgdXBkYXRlX2VsZW1lbnRzKGJ0biwgZWxlbWVudHMpOgoKICAgIHNvbWVfbGlzdCA9IFsxLDIsM10KCiAgICBpZiBpbnQoYnRuKToKCiAgICAgICAgcmV0dXJuIFt7J2RhdGEnOiB7J2lkJzogeH19IGZvciB4IGluIHNvbWVfbGlzdF0KCiAgICByZXR1cm4gZWxlbWVudHMKCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICBhcHAucnVuX3NlcnZlcihkZWJ1Zz1UcnVlKQ==