docstr: Composite for the whatif component:
  
  Args:
      explainer (Explainer): explainer object constructed with either
                  ClassifierExplainer() or RegressionExplainer()
      title (str, optional): Title of tab or page. Defaults to
                  "Individual Predictions".
      name (str, optional): unique name to add to Component elements.
                  If None then random uuid is generated to make sure
                  it's unique. Defaults to None.
      hide_title (bool, optional): hide title. Defaults to True.
      hide_selector(bool, optional): hide all pos label selectors. Defaults to True.
      hide_whatifindexselector (bool, optional): hide ClassifierRandomIndexComponent
          or RegressionRandomIndexComponent
      hide_inputeditor (bool, optional): hide FeatureInputComponent
      hide_whatifprediction (bool, optional): hide PredictionSummaryComponent
      hide_whatifcontributiongraph (bool, optional): hide ShapContributionsGraphComponent
      hide_whatifcontributiontable (bool, optional): hide ShapContributionsTableComponent
      hide_whatifpdp (bool, optional): hide PdpComponent
      index_check (bool, optional): only pass valid indexes from random index
          selector to feature input. Defaults to True.
      n_input_cols (int, optional): number of columns to divide the feature inputs into.
          Defaults to 4.
      sort ({'abs', 'high-to-low', 'low-to-high', 'importance'}, optional): sorting of shap values.
                  Defaults to 'importance'.
code: def __init__(
      self,
      explainer,
      title="What if...",
      name=None,
      hide_whatifindexselector=False,
      hide_inputeditor=False,
      hide_whatifprediction=False,
      hide_whatifcontributiongraph=False,
      hide_whatifpdp=False,
      hide_whatifcontributiontable=False,
      hide_title=True,
      hide_selector=True,
      index_check=True,
      n_input_cols=4,
      sort="importance",
      **kwargs,
  ):
      """Composite for the whatif component:
  
      Args:
          explainer (Explainer): explainer object constructed with either
                      ClassifierExplainer() or RegressionExplainer()
          title (str, optional): Title of tab or page. Defaults to
                      "Individual Predictions".
          name (str, optional): unique name to add to Component elements.
                      If None then random uuid is generated to make sure
                      it's unique. Defaults to None.
          hide_title (bool, optional): hide title. Defaults to True.
          hide_selector(bool, optional): hide all pos label selectors. Defaults to True.
          hide_whatifindexselector (bool, optional): hide ClassifierRandomIndexComponent
              or RegressionRandomIndexComponent
          hide_inputeditor (bool, optional): hide FeatureInputComponent
          hide_whatifprediction (bool, optional): hide PredictionSummaryComponent
          hide_whatifcontributiongraph (bool, optional): hide ShapContributionsGraphComponent
          hide_whatifcontributiontable (bool, optional): hide ShapContributionsTableComponent
          hide_whatifpdp (bool, optional): hide PdpComponent
          index_check (bool, optional): only pass valid indexes from random index
              selector to feature input. Defaults to True.
          n_input_cols (int, optional): number of columns to divide the feature inputs into.
              Defaults to 4.
          sort ({'abs', 'high-to-low', 'low-to-high', 'importance'}, optional): sorting of shap values.
                      Defaults to 'importance'.
      """
      super().__init__(explainer, title, name)
  
      if "hide_whatifcontribution" in kwargs:
          print(
              "Warning: hide_whatifcontribution will be deprecated, use hide_whatifcontributiongraph instead!"
          )
          self.hide_whatifcontributiongraph = kwargs[
              "hide_whatifcontribution"
          ]
  
      self.input = FeatureInputComponent(
          explainer,
          hide_selector=hide_selector,
          n_input_cols=self.n_input_cols,
          **update_params(kwargs, hide_index=False),
      )
  
      if self.explainer.is_classifier:
          self.index = ClassifierRandomIndexComponent(
              explainer, hide_selector=hide_selector, **kwargs
          )
          self.prediction = ClassifierPredictionSummaryComponent(
              explainer,
              feature_input_component=self.input,
              hide_star_explanation=True,
              hide_selector=hide_selector,
              **kwargs,
          )
      elif self.explainer.is_regression:
          self.index = RegressionRandomIndexComponent(
              explainer, **kwargs
          )
          self.prediction = RegressionPredictionSummaryComponent(
              explainer, feature_input_component=self.input, **kwargs
          )
  
      self.contribgraph = ShapContributionsGraphComponent(
          explainer,
          feature_input_component=self.input,
          hide_selector=hide_selector,
          sort=sort,
          **kwargs,
      )
      self.contribtable = ShapContributionsTableComponent(
          explainer,
          feature_input_component=self.input,
          hide_selector=hide_selector,
          sort=sort,
          **kwargs,
      )
  
      self.pdp = PdpComponent(
          explainer,
          feature_input_component=self.input,
          hide_selector=hide_selector,
          **kwargs,
      )
  
      self.index_connector = IndexConnector(
          self.index,
          self.input,
          explainer=explainer if index_check else None,
      )
  
imports: import dash_bootstrap_components
  from dash import html
  from ..explainers import RandomForestExplainer, XGBExplainer
  from ..dashboard_methods import *
  from .classifier_components import *
  from .regression_components import *
  from .overview_components import *
  from .connectors import *
  from .shap_components import *
  from .decisiontree_components import *
  from ..None import to_html
label_desc: Use image node_id 1 to create a new WhatIfComposite object from inherited base classes: ExplainerComponent with example: obj = WhatIfComposite(explainer, title, name, hide_whatifindexselector, hide_inputeditor, hide_whatifprediction, hide_whatifcontributiongraph, hide_whatifpdp, hide_whatifcontributiontable, hide_title, hide_selector, index_check, n_input_cols, sort)