code: def construct_plot_graph(n_clicks, *folder_list):
      it = iter(folder_list)
      file_list: List[Path] = []
      for folder, files in zip(it, it):
          if not all((folder, files)):
              continue
          else:
              files = (
                  [files] if not isinstance(files, list) else file_list
              )
              for file in files:
                  file_list.append((Path(folder).joinpath(file)))
  
      ctx = callback_context
      if (
          len(ctx.triggered)
          and "plot-button" in ctx.triggered[0]["prop_id"]
      ):
          if len(file_list):
              # Create two graphs, a dynamic plotly-resampler graph and a coarse graph
              dynamic_fig: FigureResampler = visualize_multiple_files(
                  file_list
              )
              coarse_fig: go.Figure = go.Figure(
                  FigureResampler(
                      dynamic_fig, default_n_shown_samples=3_000
                  )
              )
  
              coarse_fig.update_layout(
                  title="<b>coarse view</b>", height=250
              )
              coarse_fig.update_layout(
                  margin=dict(l=0, r=0, b=0, t=40, pad=10)
              )
              coarse_fig.update_layout(showlegend=False)
              coarse_fig._config = coarse_fig._config.update(
                  {"modeBarButtonsToAdd": ["drawrect"]}
              )
  
              dynamic_fig._global_n_shown_samples = 1000
              dynamic_fig.update_layout(
                  title="<b>dynamic view<b>", height=450
              )
              dynamic_fig.update_layout(
                  margin=dict(l=0, r=0, b=40, t=40, pad=10)
              )
              dynamic_fig.update_layout(
                  legend=dict(
                      orientation="h",
                      y=-0.11,
                      xanchor="right",
                      x=1,
                      font_size=18,
                  )
              )
  
              return coarse_fig, dynamic_fig, Serverside(dynamic_fig)
      else:
          return no_update
  
file_path: plotly-resampler/examples/dash_apps/13_coarse_fine.py
imports: from __future__ import annotations
  from pathlib import Path
  from typing import List
  import dash_bootstrap_components
  import plotly.graph_objects
  from dash import Input, Output, State, callback_context, dcc, html, no_update
  from dash_extensions.enrich import DashProxy, Serverside, ServersideOutputTransform
  from utils.callback_helpers import get_selector_states, multiple_folder_file_selector
  from utils.graph_construction import visualize_multiple_files
  from plotly_resampler import FigureResampler
label_desc: Use image node_id 2 for calling a global function with example usage: construct_plot_graph(n_clicks) and returns: no_update, coarse_fig,  dynamic_fig,  Serverside