text: # -*- coding: utf-8 -*-
  
  
  def default_graph_layout_options():
      """
      Default layout options for all graphs.
      :returns: a dict of default options.
      """
      return {
          "paper_bgcolor": "rgb(52, 58, 64)",
          "plot_bgcolor": "rgb(52, 58, 64)",
          "font": {
              "color": "rgba(255, 255, 255, 1)",
              # Bootstrap 4 font family.
              "family": '-apple-system, BlinkMacSystemFont, "Segoe UI", '
              'Roboto, "Helvetica Neue", Arial, sans-serif, '
              '"Apple Color Emoji", "Segoe UI Emoji", '
              '"Segoe UI Symbol"',
              "size": 14,
          },
          "margin": {"b": 80, "t": 80},
          "xaxis": {
              "titlefont": {"color": "rgba(255, 255, 255, 0.5)"},
              "gridcolor": "rgba(0, 0, 0, 0.25)",
              "zerolinecolor": "rgba(0, 0, 0, 0.5)",
          },
          "yaxis": {
              "titlefont": {"color": "rgba(255, 255, 255, 0.5)"},
              "gridcolor": "rgba(0, 0, 0, 0.25)",
              "zerolinecolor": "rgba(0, 0, 0, 0.5)",
          },
      }
  
  
  def rangeselector_date():
      """
      Graph date range selectors settings for 1w, 2w, 1m, 3m, and all.
      :returns: a dict of settings for the selectors.
      """
      return {
          "bgcolor": "rgb(35, 149, 86)",
          "activecolor": "rgb(25, 108, 62)",
          "buttons": [
              {"count": 7, "label": "1w", "step": "day", "stepmode": "backward"},
              {"count": 14, "label": "2w", "step": "day", "stepmode": "backward"},
              {"count": 1, "label": "1m", "step": "month", "stepmode": "backward"},
              {"count": 3, "label": "3m", "step": "month", "stepmode": "backward"},
              {"step": "all"},
          ],
      }
  
  
  def split_graph_output(output):
      """
      Split out of a Plotly graph in to html and javascript.
      :param output: a string of html and javascript comprising the graph.
      :returns: a tuple of the the graph's html and javascript.
      """
      html, js = output.split("<script")
      js = "<script" + js
      return html, js
  