class_docstr: Bridge pattern decoupling the application part from SmartExplainer and SmartPlotter.
  Attributes
  ----------
  explainer: object
      SmartExplainer instance to point to.
class_docstr_tok: ["Bridge","pattern","decoupling","the","application","part","from","SmartExplainer","and","SmartPlotter",".","Attributes","--","--","--","--","--","explainer",":","object","SmartExplainer","instance","to","point","to","."]
docstr: Initialize callbacks for each fullscreen button
  the callback alter style of the component (height, ...)
  Returns
  -------
  dict
      Style of the component
docstr_tok: ["Initialize","callbacks","for","each","fullscreen","button","the","callback","alter","style","of","the","component","(","height",",","...",")","Returns","--","--","--","-","dict","Style","of","the","component"]
code: def callback_fullscreen_buttons(self):
      """
      Initialize callbacks for each fullscreen button
      the callback alter style of the component (height, ...)
      Returns
      -------
      dict
          Style of the component
      """
      app = self.app
      components_to_init = dict(
          [
              (graph, "graph")
              for graph in self.components["graph"].keys()
          ]
      )
      components_to_init["dataset"] = "table"
      for component_id, component_type in components_to_init.items():
          component_property = (
              "style" if component_type == "graph" else "style_table"
          )
  
          @app.callback(
              [
                  Output(f"card_{component_id}", "style"),
                  Output(f"{component_id}", component_property),
              ],
              [
                  Input(f"ember_{component_id}", "n_clicks"),
                  Input(f"ember_{component_id}", "data-component-type"),
                  Input(f"ember_{component_id}", "data-component-id"),
              ],
          )
          def ember(click, data_component_type, data_component_id):
              """
              Function used to set style of cards and components.
              Prediction picking graph style is different than the other
              graph because it is placed in a tab.
              ---------------------------------------------------------------
              click: click on zoom button
              data_component_type: component type
              data_component_id: component id
              --------------------------------------------------------------
              return style of cards and style of components
              """
              click = 2 if click is None else click
              toggle_on = True if click % 2 == 0 else False
              if toggle_on:
                  # Style for graph
                  style_component = {"height": "21.6rem"}
                  this_style_card = {
                      "height": "22rem",
                      "zIndex": 900,
                  }
                  # Style for prediction picking graph
                  if data_component_id == "prediction_picking":
                      style_component = {
                          "height": "20.6rem",
                      }
                      this_style_card = {
                          "height": "20.8rem",
                          "zIndex": 901,
                      }
                  # Style for the Dataset
                  if data_component_type == "table":
                      style_component = {
                          "maxHeight": "23rem",
                      }
                      this_style_card = {
                          "height": "24.1rem",
                          "zIndex": 900,
                      }
                  return this_style_card, style_component
  
              else:
                  # Style when zoom button is clicked
                  this_style_card = {
                      "height": "70vh",
                      "width": "auto",
                      "zIndex": 998,
                      "position": "fixed",
                      "top": "55px",
                      "bottom": 0,
                      "left": 0,
                      "right": 0,
                  }
                  style_component = {
                      "height": "89vh",
                      "maxHeight": "89vh",
                  }
                  return this_style_card, style_component
  
imports: import copy
  import dash
  from dash import dash_table
  import dash_daq
  from dash import no_update
  from dash.exceptions import PreventUpdate
  import dash_bootstrap_components
  from dash import dcc
  from dash import html
  from dash import MATCH, ALL
  from dash.dependencies import Output, Input, State
  from flask import Flask
  import pandas
  import plotly.graph_objs
  import random
  import re
  from math import log10
  from shapash.webapp.utils.utils import check_row, get_index_type, round_to_k
  from shapash.webapp.utils.MyGraph import MyGraph
  from shapash.utils.utils import truncate_str
  from shapash.webapp.utils.explanations import Explanations
  from shapash.webapp.utils.callbacks import select_data_from_prediction_picking, select_data_from_str_filters, select_data_from_bool_filters, select_data_from_numeric_filters, select_data_from_date_filters, get_feature_from_clicked_data, get_feature_from_features_groups, get_group_name, get_indexes_from_datatable, update_click_data_on_subset_changes, get_figure_zoom, get_feature_contributions_sign_to_show, update_features_to_display, get_id_card_features, get_id_card_contrib, create_id_card_data, create_id_card_layout, get_feature_filter_options, create_dropdown_feature_filter, create_filter_modalities_selection
label_desc: Use image node_id 10 for calling the SmartApp obj's underlying member method code with example usage: obj.callback_fullscreen_buttons() and returns: this_style_card,  style_component, this_style_card,  style_component