class_docstr: Base class for FigureWidget. The FigureWidget class is code-generated as a
  subclass
class_docstr_tok: ["Base","class","for","FigureWidget",".","The","FigureWidget","class","is","code-generated","as","a","subclass"]
docstr: Process Plotly.relayout message from the frontend
docstr_tok: ["Process","Plotly.relayout","message","from","the","frontend"]
code: def _handler_js2py_relayout(self, change):
      """
      Process Plotly.relayout message from the frontend
      """
  
      # Receive message
      # ---------------
      relayout_msg = change["new"]
  
      if not relayout_msg:
          self._js2py_relayout = None
          return
  
      relayout_data = relayout_msg["relayout_data"]
      source_view_id = relayout_msg["source_view_id"]
  
      if "lastInputTime" in relayout_data:
          # Remove 'lastInputTime'. Seems to be an internal plotly
          # property that is introduced for some plot types, but it is not
          # actually a property in the schema
          relayout_data.pop("lastInputTime")
  
      # Perform relayout
      # ----------------
      self.plotly_relayout(
          relayout_data=relayout_data, source_view_id=source_view_id
      )
  
      self._js2py_relayout = None
  
imports: import uuid
  from importlib import import_module
  import os
  import numbers
  import ipywidgets
  from traitlets import List, Unicode, Dict, observe, Integer
  from .basedatatypes import BaseFigure, BasePlotlyType
  from .callbacks import BoxSelector, LassoSelector, InputDeviceState, Points
  from .serializers import custom_serializers
  from .version import __frontend_version__
label_desc: Use image node_id 13 for calling the BaseFigureWidget obj's underlying member method code with example usage: obj._handler_js2py_relayout(change) without return types