code: def component_callbacks(self, app):
      if self.feature_input_component is None:
  
          @app.callback(
              Output("contributions-table-" + self.name, "children"),
              [
                  Input(
                      "contributions-table-index-" + self.name, "value"
                  ),
                  Input(
                      "contributions-table-depth-" + self.name, "value"
                  ),
                  Input(
                      "contributions-table-sorting-" + self.name,
                      "value",
                  ),
                  Input("pos-label-" + self.name, "value"),
              ],
          )
          def update_output_div(index, depth, sort, pos_label):
              if index is None or not self.explainer.index_exists(
                  index
              ):
                  raise PreventUpdate
              depth = None if depth is None else int(depth)
              contributions_table = dbc.Table.from_dataframe(
                  self.explainer.get_contrib_summary_df(
                      str(index),
                      topx=depth,
                      sort=sort,
                      pos_label=pos_label,
                  )
              )
  
              tooltip_cols = {}
              for tr in contributions_table.children[1].children:
                  # insert tooltip target id's into the table html.Tr() elements:
                  tds = tr.children
                  col = tds[0].children.split(" = ")[0]
                  if self.explainer.description(col) != "":
                      tr.id = (
                          f"contributions-table-hover-{col}-"
                          + self.name
                      )
                      tooltip_cols[col] = self.explainer.description(
                          col
                      )
  
              tooltips = [
                  dbc.Tooltip(
                      desc,
                      target=f"contributions-table-hover-{col}-"
                      + self.name,
                      placement="top",
                  )
                  for col, desc in tooltip_cols.items()
              ]
  
              output_div = html.Div([contributions_table, *tooltips])
              return output_div
  
      else:
  
          @app.callback(
              Output("contributions-table-" + self.name, "children"),
              [
                  Input(
                      "contributions-table-depth-" + self.name, "value"
                  ),
                  Input(
                      "contributions-table-sorting-" + self.name,
                      "value",
                  ),
                  Input("pos-label-" + self.name, "value"),
                  *self.feature_input_component._feature_callback_inputs,
              ],
          )
          def update_output_div(depth, sort, pos_label, *inputs):
              if not any([i is None for i in inputs]):
                  X_row = self.explainer.get_row_from_input(
                      inputs, ranked_by_shap=True
                  )
                  depth = None if depth is None else int(depth)
                  contributions_table = dbc.Table.from_dataframe(
                      self.explainer.get_contrib_summary_df(
                          X_row=X_row,
                          topx=depth,
                          sort=sort,
                          pos_label=pos_label,
                      )
                  )
  
                  tooltip_cols = {}
                  for tr in contributions_table.children[1].children:
                      # insert tooltip target id's into the table html.Tr() elements:
                      tds = tr.children
                      col = tds[0].children.split(" = ")[0]
                      if self.explainer.description(col) != "":
                          tr.id = (
                              f"contributions-table-hover-{col}-"
                              + self.name
                          )
                          tooltip_cols[
                              col
                          ] = self.explainer.description(col)
  
                  tooltips = [
                      dbc.Tooltip(
                          desc,
                          target=f"contributions-table-hover-{col}-"
                          + self.name,
                          placement="top",
                      )
                      for col, desc in tooltip_cols.items()
                  ]
  
                  output_div = html.Div(
                      [contributions_table, *tooltips]
                  )
                  return output_div
              raise PreventUpdate
  
imports: import dash
  from dash import html, dcc, Input, Output, State
  from dash.exceptions import PreventUpdate
  import dash_bootstrap_components
  from ..dashboard_methods import *
  from ..None import to_html
label_desc: Use image node_id 5 for calling the ShapContributionsTableComponent obj's underlying member method code with example usage: obj.component_callbacks(app) and returns: output_div, output_div