code: def build_input_options(df, extended_aggregation=[], **inputs):
      """
      Builds dropdown options for (X, Y, Z, Group, Barsort & Y-Axis Ranges) with filtering based on currently selected
      values for the following inputs: x, y, z, group.
      """
      chart_type, x, y, z, group = (
          inputs.get(p) for p in ["chart_type", "x", "y", "z", "group"]
      )
      col_opts = list(build_cols(df.columns, get_dtypes(df)))
      group_val, z_val = (
          (None, z) if chart_type in ZAXIS_CHARTS else (group, None)
      )
      x_options = [
          build_option(c, l)
          for c, l in col_opts
          if c not in build_selections(y, z_val, group_val)
      ]
      y_filter = build_selections(x, group_val, z_val)
      y_multi_options = [
          build_option(c, l) for c, l in col_opts if c not in y_filter
      ]
      y_single_options = [
          build_option(c, l) for c, l in col_opts if c not in y_filter
      ]
      z_options = [
          build_option(c)
          for c in df.columns
          if c not in build_selections(x, y, group_val)
      ]
      group_options = [
          build_option(c, l)
          for c, l in col_opts
          if c not in build_selections(x, y, z_val)
      ]
      final_cols = build_final_cols(
          y,
          z,
          inputs.get("agg"),
          extended_aggregation
          if chart_type not in NON_EXT_AGGREGATION
          else [],
      )
      barsort_options = [
          build_option(o) for o in build_selections(x, final_cols)
      ]
      yaxis_options = [build_option(y2) for y2 in final_cols or []]
      return (
          x_options,
          y_multi_options,
          y_single_options,
          z_options,
          group_options,
          barsort_options,
          yaxis_options,
          [build_option(c, l) for c, l in col_opts],
      )
  
imports: import json
  import dash_bootstrap_components
  import dash_colorscales
  import dash_daq
  import os
  import plotly
  from pkg_resources import parse_version
  from six import PY3
  from dtale.dash_application import dcc, html
  import dtale.dash_application.custom_geojson
  import dtale.dash_application.extended_aggregations
  import dtale.global_state
  from dtale.charts.utils import AGGS, ANIMATION_CHARTS, ANIMATE_BY_CHARTS, YAXIS_CHARTS, ZAXIS_CHARTS, NON_EXT_AGGREGATION, build_final_cols, find_group_vals
  from dtale.column_builders import get_cleaner_configs
  from dtale.constants import CHART_JOINER_CHAR
  from dtale.dash_application.layout.utils import build_input, build_option, build_tab, build_cols, build_hoverable, build_selections, show_style, FREQS, FREQ_LABELS
  from dtale.translations import text
  from dtale.query import build_query, handle_predefined, inner_build_query, run_query
  from dtale.utils import ChartBuildingError, classify_type, coord_type, get_dtypes, is_app_root_defined, make_list
label_desc: Use image node_id 20 for calling a global function with example usage: build_input_options(df, extended_aggregation) and returns: x_options,  y_multi_options,  y_single_options,  z_options,  group_options,  barsort_options,  yaxis_options,  unknown