code: def test_clsd009_clientside_callback_context_triggered(dash_duo):
      app = Dash(__name__, assets_folder="assets")
  
      app.layout = html.Div(
          [
              html.Button("btn0", id="btn0"),
              html.Button("btn1:0", id={"btn1": 0}),
              html.Button("btn1:1", id={"btn1": 1}),
              html.Button("btn1:2", id={"btn1": 2}),
              html.Div(
                  id="output-clientside",
                  style={"font-family": "monospace"},
              ),
          ]
      )
  
      app.clientside_callback(
          ClientsideFunction(
              namespace="clientside", function_name="triggered_to_str"
          ),
          Output("output-clientside", "children"),
          [Input("btn0", "n_clicks"), Input({"btn1": ALL}, "n_clicks")],
      )
  
      dash_duo.start_server(app)
  
      dash_duo.wait_for_text_to_equal("#output-clientside", "")
  
      dash_duo.find_element("#btn0").click()
  
      dash_duo.wait_for_text_to_equal(
          "#output-clientside",
          "btn0.n_clicks = 1",
      )
  
      dash_duo.find_element("button[id*='btn1\":0']").click()
      dash_duo.find_element("button[id*='btn1\":0']").click()
  
      dash_duo.wait_for_text_to_equal(
          "#output-clientside", '{"btn1":0}.n_clicks = 2'
      )
  
      dash_duo.find_element("button[id*='btn1\":2']").click()
  
      dash_duo.wait_for_text_to_equal(
          "#output-clientside",
          '{"btn1":2}.n_clicks = 1',
      )
  
imports: from multiprocessing import Value, Lock
  from dash import Dash, Input, Output, State, ClientsideFunction, ALL, html, dcc
  from selenium.webdriver.common.keys import Keys
label_desc: Use image node_id 8 for calling a global function with example usage: test_clsd009_clientside_callback_context_triggered(dash_duo) without return types