#' Dark IDS theme for \link[highcharter]{highcharter}
#'
#' @param fontFamily              font family
#' @param fontSize                default font size
#' @param textColor               default text color
#' @param lowContrastColor        color with low contrast to background
#' @param highContrastColor       color with high contrast to background
#' @param palette                 array of colors to be used for different series
#' @param backgroundColor         background color
#' @param titleColor              color of the title text
#' @param subtitleColor           color of the subtitle text
#' @param gridLineColor           color of grid lines
#' @param axisLabelColor          color of the axis labels
#' @param axisLineColor           color of the axis lines
#' @param minorGridLineColor      color of minor grid lines
#' @param tickColor               color of axis ticks
#' @param axisTitleColor          color of axis titles
#' @param tooltipBackgroundColor  background color for tool tips
#' @param tooltipColor            foreground color for tool tips
#' @param dataLabelColor          color of data point labels
#' @param boxplotFillColor        color for box plot fills
#' @param candlestickColor        color the candle stick part of error bars
#' @param errorbarColor           error bar color
#' @param legendColor             series legend label color
#' @param legendHoverColor        mouse over series legend label color
#' @param legendHiddenColor       hidden series legend label color
#' @param creditsColor            color of the credits
#' @param burgerMenuBackground    burger menu background color
#' @param ... named arguments to modify the theme
#'
#' @importFrom magrittr %>%
#' @import tidyverse
#' @import highcharter
#'
#' @examples
#' library(tidyverse)
#' library(highcharter)
#' highcharts_demo() %>%
#'   hc_add_theme(hc_theme_ids_dark())
#' @export
hc_theme_ids_dark <-
  function(fontFamily = "Fira Sans Condensed",
           fontSize = "medium",
           textColor = textColorDark,
           lowContrastColor = lowContrastColorDark,
           highContrastColor = highContrastColorDark,
           palette = idsPalette,
           backgroundColor = list(linearGradient = list(
             x1 = 0,
             y1 = 1,
             x2 = 1,
             y2 = 0
           ),
           stops = list(list(0, "#2a2a2b"),
                        list(1, "#3e3e3e"))),
           titleColor = textColor,
           subtitleColor = titleColor,
           gridLineColor = lowContrastColor,
           axisLabelColor = textColor,
           axisLineColor = lowContrastColor,
           minorGridLineColor = "#505053",
           tickColor = lowContrastColor,
           axisTitleColor = axisLabelColor,
           tooltipBackgroundColor = "rgba(0, 0, 0, 0.85)",
           tooltipColor = textColor,
           dataLabelColor = textColor,
           boxplotFillColor = "#505053",
           candlestickColor = highContrastColor,
           errorbarColor = candlestickColor,
           legendColor = textColor,
           legendHoverColor = highContrastColor,
           legendHiddenColor = lowContrastColor,
           creditsColor = lowContrastColor,
           burgerMenuBackground = backgroundColor,
           ...) {
    theme <-
      list(
        colors = palette,
        chart = list(
          backgroundColor = backgroundColor,
          style = list(fontFamily = fontFamily,
                       fontSize = fontSize),
          plotBorderColor = "#606063"
        ),
        title = list(style = list(color = titleColor,
                                  fontWeight = "600",
                                  fontSize = "x-large")),
        subtitle = list(style = list(color = subtitleColor,
                                     fontSize = "large")),
        xAxis = list(
          gridLineColor = gridLineColor,
          labels = list(style = list(color = axisLabelColor,
                                     fontSize = "medium")),
          lineColor = axisLineColor,
          minorGridLineColor = minorGridLineColor,
          tickColor = tickColor,
          title = list(style = list(color = axisTitleColor,
                                    fontSize = "medium"))
        ),
        yAxis = list(
          gridLineColor = gridLineColor,
          labels = list(style = list(color = axisLabelColor,
                                     fontSize = "medium")),
          lineColor = axisLineColor,
          minorGridLineColor = minorGridLineColor,
          tickColor = tickColor,
          tickWidth = 1,
          title = list(style = list(color = axisTitleColor,
                                    fontSize = "medium"))
        ),
        tooltip = list(
          backgroundColor = tooltipBackgroundColor,
          style = list(color = tooltipColor,
                       fontSize = "medium")
        ),
        plotOptions = list(
          series = list(
            dataLabels = list(color = dataLabelColor,
                              fontSize = "medium"),
            marker = list(lineColor = "#333")
          ),
          boxplot = list(fillColor = boxplotFillColor),
          candlestick = list(lineColor = candlestickColor),
          errorbar = list(color = errorbarColor)
        ),
        legend = list(
          itemStyle = list(fontSize = "medium",
                           color = legendColor),
          itemHoverStyle = list(color = legendHoverColor),
          itemHiddenStyle = list(color = legendHiddenColor)
        ),
        credits = list(style = list(color = creditsColor)),
        labels = list(style = list(color = "#707073")),

        drilldown = list(
          activeAxisLabelStyle = list(color = "#F0F0F3"),
          activeDataLabelStyle = list(color = "#F0F0F3")
        ),

        navigation = list(buttonOptions = list(
          symbolStroke = "#DDDDDD",
          theme = list(fill = burgerMenuBackground)
        )),

        rangeSelector = list(
          buttonTheme = list(
            fill = "#505053",
            stroke = "#000000",
            style = list(color = "#CCC"),
            states = list(
              hover = list(
                fill = "#707073",
                stroke = "#000000",
                style = list(color = "white")
              ),
              select = list(
                fill = "#000003",
                stroke = "#000000",
                style = list(color = "white")
              )
            )
          ),
          inputBoxBorderColor = "#505053",
          inputStyle = list(backgroundColor = "#333",
                            color = "silver"),
          labelStyle = list(color = "silver")
        ),

        navigator = list(
          handles = list(backgroundColor = "#666",
                         borderColor = "#AAA"),
          maskFill = "rgba(255,255,255,0.1)",
          series = list(color = "#7798BF",
                        lineColor = "#A6C7ED"),
          xAxis = list(gridLineColor = "#505053")
        ),

        scrollbar = list(
          barBackgroundColor = "#808083",
          barBorderColor = "#808083",
          buttonArrowColor = "#CCC",
          buttonBackgroundColor = "#606063",
          buttonBorderColor = "#606063",
          rifleColor = "#FFF",
          trackBackgroundColor = "#404043",
          trackBorderColor = "#404043"
        ),

        legendBackgroundColor = "rgba(0, 0, 0, 0)",
        background2 = "#233238",
        dataLabelsColor = "#233238",
        textColor = "#34495e",
        maskColor = "rgba(255,255,255,0.3)",
        contrastTextColor = highContrastColor
      )

    theme <- structure(theme, class = "hc_theme")

    if (length(list(...)) > 0) {
      theme <- hc_theme_merge(theme,
                              hc_theme(...))
    }

    theme
  }

#' Light IDS theme for \link[highcharter]{highcharter}
#'
#' See \code{\link{hc_theme_ids_dark}} for further documentation.
#'
#' @inheritParams hc_theme_ids_dark
#' @inheritDotParams hc_theme_ids_dark
#'
#' @importFrom magrittr %>%
#' @import tidyverse
#' @import highcharter
#'
#' @examples
#' library(tidyverse)
#' library(highcharter)
#' highcharts_demo() %>%
#'   hc_add_theme(hc_theme_ids_light())
#' @export
hc_theme_ids_light <- function(...) {
  hc_theme_ids_dark(
    backgroundColor = "#ffffff",
    textColor = textColor ,
    highContrastColor = "#101013",
    lowContrastColor = "#E0E0E3",
    tooltipBackgroundColor = "#ffffffe0",
    boxplotFillColor = "#505053",
    candlestickColor = "black",
    errorbarColor = "black"
  )
}

#' Monochrome IDS theme for \link[highcharter]{highcharter}
#'
#' See \code{\link{hc_theme_ids_dark}} for further documentation.
#'
#' @inheritParams hc_theme_ids_dark
#' @inheritDotParams hc_theme_ids_dark
#'
#' @importFrom magrittr %>%
#' @import tidyverse
#' @import highcharter
#'
#' @examples
#' library(tidyverse)
#' library(highcharter)
#' highcharts_demo() %>%
#'   hc_add_theme(hc_theme_ids_mono())
#' @export
hc_theme_ids_mono <- function(...) {
  hc_theme_ids_dark(
    palette = idsPaletteGreyscale,
    backgroundColor = "white",
    textColor = "black",
    highContrastColor = "black",
    lowContrastColor = "#A0A0A3",
    tooltipBackgroundColor = "white",
    boxplotFillColor = "#505053",
    candlestickColor = "grey",
    errorbarColor = "grey"
  )
}
