code: def build_drilldown_title(
      data_id, all_inputs, click_point, props, val_prop
  ):
      data = global_state.get_data(data_id)
  
      def _build_val(col, val):
          if classify_type(find_dtype(data[col])) == "D":
              return json_date(convert_date_val_to_date(val))
          return val
  
      if "text" in click_point:  # Heatmaps
          strs = []
          for dim in click_point["text"].split("<br>"):
              prop, val = dim.split(": ")
              strs.append("{} ({})".format(prop, val))
          return "{}: {}".format(text("Drilldown for"), ", ".join(strs))
  
      strs = []
      frame_col = all_inputs.get("animate_by")
      if frame_col:
          strs.append(
              "{} ({})".format(frame_col, click_point.get("customdata"))
          )
      for prop in props:
          prop = make_list(prop)
          val_key = prop[0]
          if click_point.get(val_key) is not None:
              col = make_list(all_inputs.get(prop[-1]))[0]
              strs.append(
                  "{} ({})".format(
                      col, _build_val(col, click_point.get(val_key))
                  )
              )
  
      val_prop = make_list(val_prop)
      val_key = val_prop[0]
      val_col = make_list(all_inputs.get(val_prop[-1]))[0]
      agg = AGGS[all_inputs.get("agg") or "raw"]
      strs.append(
          "{} {} ({})".format(
              agg,
              val_col,
              _build_val(val_col, click_point.get(val_key)),
          )
      )
      return "{}: {}".format(text("Drilldown for"), ", ".join(strs))
  
file_path: dtale/dtale/dash_application/drilldown_modal.py
imports: import numpy
  import pandas
  from dash.dependencies import Input, Output, State
  import dtale.global_state
  from dtale.charts.utils import AGGS
  from dtale.dash_application.charts import build_chart, bar_builder, build_axes, chart_builder_passthru
  from dtale.dash_application.exceptions import DtalePreventUpdate
  from dtale.dash_application.layout.utils import build_cols, build_option, build_selections
  from dtale.utils import classify_type, dict_merge, find_dtype, is_app_root_defined, json_date, json_float, make_list, get_dtypes
  from dtale.query import build_query, handle_predefined, run_query
  from dtale.charts.utils import MAX_GROUPS, ZAXIS_CHARTS, build_group_inputs_filter, convert_date_val_to_date
  from dtale.translations import text
label_desc: Use image node_id 3 for calling a global function with example usage: build_drilldown_title(data_id, all_inputs, click_point, props, val_prop) and returns: str, val, str, json_date