nbarjun's picture
Upload 763 files
8e17be6 verified
from components.figures import build_figure
from dash import Input, Output, State, MATCH
def register_gas_plot(app, aconc, lts, prod, trace_library):
@app.callback(
Output({"type": "gas-figure", "key": MATCH}, "figure"),
Input({"type": "trace-selector", "key": MATCH}, "value"),
State("active-gas", "data"),
State({"type": "trace-selector", "key": MATCH}, "id"),
)
def update_plot(selected, gas, selector_id):
# if not selected:
# selected = [gas]
fig_key = selector_id["key"]
if fig_key == "aconc":
if not selected:
selected = [gas]
return build_figure(aconc, selected, trace_library['gases'])
elif fig_key == "lts":
if not selected:
selected = [gas]
return build_figure(lts, selected, trace_library['gases'])
elif fig_key == "prod":
# Ensure selected is a list of valid columns
if not selected or not any(s in prod[gas].columns for s in selected):
selected = sorted(set(prod[gas].columns) & \
set(list(trace_library['production'].keys())[:-3]))
return build_figure(prod[gas], selected, trace_library['production'])