{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.QuickSight.Types.ComboChartConfiguration
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.QuickSight.Types.ComboChartConfiguration where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.QuickSight.Types.AxisDisplayOptions
import Amazonka.QuickSight.Types.BarsArrangement
import Amazonka.QuickSight.Types.ChartAxisLabelOptions
import Amazonka.QuickSight.Types.ComboChartFieldWells
import Amazonka.QuickSight.Types.ComboChartSortConfiguration
import Amazonka.QuickSight.Types.DataLabelOptions
import Amazonka.QuickSight.Types.LegendOptions
import Amazonka.QuickSight.Types.ReferenceLine
import Amazonka.QuickSight.Types.TooltipOptions
import Amazonka.QuickSight.Types.VisualPalette

-- | The configuration of a @ComboChartVisual@.
--
-- /See:/ 'newComboChartConfiguration' smart constructor.
data ComboChartConfiguration = ComboChartConfiguration'
  { -- | The options that determine if visual data labels are displayed.
    --
    -- The data label options for a bar in a combo chart.
    ComboChartConfiguration -> Maybe DataLabelOptions
barDataLabels :: Prelude.Maybe DataLabelOptions,
    -- | Determines the bar arrangement in a combo chart. The following are valid
    -- values in this structure:
    --
    -- -   @CLUSTERED@: For clustered bar combo charts.
    --
    -- -   @STACKED@: For stacked bar combo charts.
    --
    -- -   @STACKED_PERCENT@: Do not use. If you use this value, the operation
    --     returns a validation error.
    ComboChartConfiguration -> Maybe BarsArrangement
barsArrangement :: Prelude.Maybe BarsArrangement,
    -- | The category axis of a combo chart.
    ComboChartConfiguration -> Maybe AxisDisplayOptions
categoryAxis :: Prelude.Maybe AxisDisplayOptions,
    -- | The label options (label text, label visibility, and sort icon
    -- visibility) of a combo chart category (group\/color) field well.
    ComboChartConfiguration -> Maybe ChartAxisLabelOptions
categoryLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The label options (label text, label visibility, and sort icon
    -- visibility) of a combo chart\'s color field well.
    ComboChartConfiguration -> Maybe ChartAxisLabelOptions
colorLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The field wells of the visual.
    ComboChartConfiguration -> Maybe ComboChartFieldWells
fieldWells :: Prelude.Maybe ComboChartFieldWells,
    -- | The legend display setup of the visual.
    ComboChartConfiguration -> Maybe LegendOptions
legend :: Prelude.Maybe LegendOptions,
    -- | The options that determine if visual data labels are displayed.
    --
    -- The data label options for a line in a combo chart.
    ComboChartConfiguration -> Maybe DataLabelOptions
lineDataLabels :: Prelude.Maybe DataLabelOptions,
    -- | The label display options (grid line, range, scale, and axis step) of a
    -- combo chart\'s primary y-axis (bar) field well.
    ComboChartConfiguration -> Maybe AxisDisplayOptions
primaryYAxisDisplayOptions :: Prelude.Maybe AxisDisplayOptions,
    -- | The label options (label text, label visibility, and sort icon
    -- visibility) of a combo chart\'s primary y-axis (bar) field well.
    ComboChartConfiguration -> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The reference line setup of the visual.
    ComboChartConfiguration -> Maybe [ReferenceLine]
referenceLines :: Prelude.Maybe [ReferenceLine],
    -- | The label display options (grid line, range, scale, axis step) of a
    -- combo chart\'s secondary y-axis (line) field well.
    ComboChartConfiguration -> Maybe AxisDisplayOptions
secondaryYAxisDisplayOptions :: Prelude.Maybe AxisDisplayOptions,
    -- | The label options (label text, label visibility, and sort icon
    -- visibility) of a combo chart\'s secondary y-axis(line) field well.
    ComboChartConfiguration -> Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The sort configuration of a @ComboChartVisual@.
    ComboChartConfiguration -> Maybe ComboChartSortConfiguration
sortConfiguration :: Prelude.Maybe ComboChartSortConfiguration,
    -- | The legend display setup of the visual.
    ComboChartConfiguration -> Maybe TooltipOptions
tooltip :: Prelude.Maybe TooltipOptions,
    -- | The palette (chart color) display setup of the visual.
    ComboChartConfiguration -> Maybe VisualPalette
visualPalette :: Prelude.Maybe VisualPalette
  }
  deriving (ComboChartConfiguration -> ComboChartConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ComboChartConfiguration -> ComboChartConfiguration -> Bool
$c/= :: ComboChartConfiguration -> ComboChartConfiguration -> Bool
== :: ComboChartConfiguration -> ComboChartConfiguration -> Bool
$c== :: ComboChartConfiguration -> ComboChartConfiguration -> Bool
Prelude.Eq, Int -> ComboChartConfiguration -> ShowS
[ComboChartConfiguration] -> ShowS
ComboChartConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ComboChartConfiguration] -> ShowS
$cshowList :: [ComboChartConfiguration] -> ShowS
show :: ComboChartConfiguration -> String
$cshow :: ComboChartConfiguration -> String
showsPrec :: Int -> ComboChartConfiguration -> ShowS
$cshowsPrec :: Int -> ComboChartConfiguration -> ShowS
Prelude.Show, forall x. Rep ComboChartConfiguration x -> ComboChartConfiguration
forall x. ComboChartConfiguration -> Rep ComboChartConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ComboChartConfiguration x -> ComboChartConfiguration
$cfrom :: forall x. ComboChartConfiguration -> Rep ComboChartConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'ComboChartConfiguration' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'barDataLabels', 'comboChartConfiguration_barDataLabels' - The options that determine if visual data labels are displayed.
--
-- The data label options for a bar in a combo chart.
--
-- 'barsArrangement', 'comboChartConfiguration_barsArrangement' - Determines the bar arrangement in a combo chart. The following are valid
-- values in this structure:
--
-- -   @CLUSTERED@: For clustered bar combo charts.
--
-- -   @STACKED@: For stacked bar combo charts.
--
-- -   @STACKED_PERCENT@: Do not use. If you use this value, the operation
--     returns a validation error.
--
-- 'categoryAxis', 'comboChartConfiguration_categoryAxis' - The category axis of a combo chart.
--
-- 'categoryLabelOptions', 'comboChartConfiguration_categoryLabelOptions' - The label options (label text, label visibility, and sort icon
-- visibility) of a combo chart category (group\/color) field well.
--
-- 'colorLabelOptions', 'comboChartConfiguration_colorLabelOptions' - The label options (label text, label visibility, and sort icon
-- visibility) of a combo chart\'s color field well.
--
-- 'fieldWells', 'comboChartConfiguration_fieldWells' - The field wells of the visual.
--
-- 'legend', 'comboChartConfiguration_legend' - The legend display setup of the visual.
--
-- 'lineDataLabels', 'comboChartConfiguration_lineDataLabels' - The options that determine if visual data labels are displayed.
--
-- The data label options for a line in a combo chart.
--
-- 'primaryYAxisDisplayOptions', 'comboChartConfiguration_primaryYAxisDisplayOptions' - The label display options (grid line, range, scale, and axis step) of a
-- combo chart\'s primary y-axis (bar) field well.
--
-- 'primaryYAxisLabelOptions', 'comboChartConfiguration_primaryYAxisLabelOptions' - The label options (label text, label visibility, and sort icon
-- visibility) of a combo chart\'s primary y-axis (bar) field well.
--
-- 'referenceLines', 'comboChartConfiguration_referenceLines' - The reference line setup of the visual.
--
-- 'secondaryYAxisDisplayOptions', 'comboChartConfiguration_secondaryYAxisDisplayOptions' - The label display options (grid line, range, scale, axis step) of a
-- combo chart\'s secondary y-axis (line) field well.
--
-- 'secondaryYAxisLabelOptions', 'comboChartConfiguration_secondaryYAxisLabelOptions' - The label options (label text, label visibility, and sort icon
-- visibility) of a combo chart\'s secondary y-axis(line) field well.
--
-- 'sortConfiguration', 'comboChartConfiguration_sortConfiguration' - The sort configuration of a @ComboChartVisual@.
--
-- 'tooltip', 'comboChartConfiguration_tooltip' - The legend display setup of the visual.
--
-- 'visualPalette', 'comboChartConfiguration_visualPalette' - The palette (chart color) display setup of the visual.
newComboChartConfiguration ::
  ComboChartConfiguration
newComboChartConfiguration :: ComboChartConfiguration
newComboChartConfiguration =
  ComboChartConfiguration'
    { $sel:barDataLabels:ComboChartConfiguration' :: Maybe DataLabelOptions
barDataLabels =
        forall a. Maybe a
Prelude.Nothing,
      $sel:barsArrangement:ComboChartConfiguration' :: Maybe BarsArrangement
barsArrangement = forall a. Maybe a
Prelude.Nothing,
      $sel:categoryAxis:ComboChartConfiguration' :: Maybe AxisDisplayOptions
categoryAxis = forall a. Maybe a
Prelude.Nothing,
      $sel:categoryLabelOptions:ComboChartConfiguration' :: Maybe ChartAxisLabelOptions
categoryLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:colorLabelOptions:ComboChartConfiguration' :: Maybe ChartAxisLabelOptions
colorLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:fieldWells:ComboChartConfiguration' :: Maybe ComboChartFieldWells
fieldWells = forall a. Maybe a
Prelude.Nothing,
      $sel:legend:ComboChartConfiguration' :: Maybe LegendOptions
legend = forall a. Maybe a
Prelude.Nothing,
      $sel:lineDataLabels:ComboChartConfiguration' :: Maybe DataLabelOptions
lineDataLabels = forall a. Maybe a
Prelude.Nothing,
      $sel:primaryYAxisDisplayOptions:ComboChartConfiguration' :: Maybe AxisDisplayOptions
primaryYAxisDisplayOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:primaryYAxisLabelOptions:ComboChartConfiguration' :: Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:referenceLines:ComboChartConfiguration' :: Maybe [ReferenceLine]
referenceLines = forall a. Maybe a
Prelude.Nothing,
      $sel:secondaryYAxisDisplayOptions:ComboChartConfiguration' :: Maybe AxisDisplayOptions
secondaryYAxisDisplayOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:secondaryYAxisLabelOptions:ComboChartConfiguration' :: Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:sortConfiguration:ComboChartConfiguration' :: Maybe ComboChartSortConfiguration
sortConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:tooltip:ComboChartConfiguration' :: Maybe TooltipOptions
tooltip = forall a. Maybe a
Prelude.Nothing,
      $sel:visualPalette:ComboChartConfiguration' :: Maybe VisualPalette
visualPalette = forall a. Maybe a
Prelude.Nothing
    }

-- | The options that determine if visual data labels are displayed.
--
-- The data label options for a bar in a combo chart.
comboChartConfiguration_barDataLabels :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe DataLabelOptions)
comboChartConfiguration_barDataLabels :: Lens' ComboChartConfiguration (Maybe DataLabelOptions)
comboChartConfiguration_barDataLabels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe DataLabelOptions
barDataLabels :: Maybe DataLabelOptions
$sel:barDataLabels:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe DataLabelOptions
barDataLabels} -> Maybe DataLabelOptions
barDataLabels) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe DataLabelOptions
a -> ComboChartConfiguration
s {$sel:barDataLabels:ComboChartConfiguration' :: Maybe DataLabelOptions
barDataLabels = Maybe DataLabelOptions
a} :: ComboChartConfiguration)

-- | Determines the bar arrangement in a combo chart. The following are valid
-- values in this structure:
--
-- -   @CLUSTERED@: For clustered bar combo charts.
--
-- -   @STACKED@: For stacked bar combo charts.
--
-- -   @STACKED_PERCENT@: Do not use. If you use this value, the operation
--     returns a validation error.
comboChartConfiguration_barsArrangement :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe BarsArrangement)
comboChartConfiguration_barsArrangement :: Lens' ComboChartConfiguration (Maybe BarsArrangement)
comboChartConfiguration_barsArrangement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe BarsArrangement
barsArrangement :: Maybe BarsArrangement
$sel:barsArrangement:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe BarsArrangement
barsArrangement} -> Maybe BarsArrangement
barsArrangement) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe BarsArrangement
a -> ComboChartConfiguration
s {$sel:barsArrangement:ComboChartConfiguration' :: Maybe BarsArrangement
barsArrangement = Maybe BarsArrangement
a} :: ComboChartConfiguration)

-- | The category axis of a combo chart.
comboChartConfiguration_categoryAxis :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe AxisDisplayOptions)
comboChartConfiguration_categoryAxis :: Lens' ComboChartConfiguration (Maybe AxisDisplayOptions)
comboChartConfiguration_categoryAxis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe AxisDisplayOptions
categoryAxis :: Maybe AxisDisplayOptions
$sel:categoryAxis:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
categoryAxis} -> Maybe AxisDisplayOptions
categoryAxis) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe AxisDisplayOptions
a -> ComboChartConfiguration
s {$sel:categoryAxis:ComboChartConfiguration' :: Maybe AxisDisplayOptions
categoryAxis = Maybe AxisDisplayOptions
a} :: ComboChartConfiguration)

-- | The label options (label text, label visibility, and sort icon
-- visibility) of a combo chart category (group\/color) field well.
comboChartConfiguration_categoryLabelOptions :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
comboChartConfiguration_categoryLabelOptions :: Lens' ComboChartConfiguration (Maybe ChartAxisLabelOptions)
comboChartConfiguration_categoryLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe ChartAxisLabelOptions
categoryLabelOptions :: Maybe ChartAxisLabelOptions
$sel:categoryLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
categoryLabelOptions} -> Maybe ChartAxisLabelOptions
categoryLabelOptions) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> ComboChartConfiguration
s {$sel:categoryLabelOptions:ComboChartConfiguration' :: Maybe ChartAxisLabelOptions
categoryLabelOptions = Maybe ChartAxisLabelOptions
a} :: ComboChartConfiguration)

-- | The label options (label text, label visibility, and sort icon
-- visibility) of a combo chart\'s color field well.
comboChartConfiguration_colorLabelOptions :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
comboChartConfiguration_colorLabelOptions :: Lens' ComboChartConfiguration (Maybe ChartAxisLabelOptions)
comboChartConfiguration_colorLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe ChartAxisLabelOptions
colorLabelOptions :: Maybe ChartAxisLabelOptions
$sel:colorLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
colorLabelOptions} -> Maybe ChartAxisLabelOptions
colorLabelOptions) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> ComboChartConfiguration
s {$sel:colorLabelOptions:ComboChartConfiguration' :: Maybe ChartAxisLabelOptions
colorLabelOptions = Maybe ChartAxisLabelOptions
a} :: ComboChartConfiguration)

-- | The field wells of the visual.
comboChartConfiguration_fieldWells :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe ComboChartFieldWells)
comboChartConfiguration_fieldWells :: Lens' ComboChartConfiguration (Maybe ComboChartFieldWells)
comboChartConfiguration_fieldWells = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe ComboChartFieldWells
fieldWells :: Maybe ComboChartFieldWells
$sel:fieldWells:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ComboChartFieldWells
fieldWells} -> Maybe ComboChartFieldWells
fieldWells) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe ComboChartFieldWells
a -> ComboChartConfiguration
s {$sel:fieldWells:ComboChartConfiguration' :: Maybe ComboChartFieldWells
fieldWells = Maybe ComboChartFieldWells
a} :: ComboChartConfiguration)

-- | The legend display setup of the visual.
comboChartConfiguration_legend :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe LegendOptions)
comboChartConfiguration_legend :: Lens' ComboChartConfiguration (Maybe LegendOptions)
comboChartConfiguration_legend = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe LegendOptions
legend :: Maybe LegendOptions
$sel:legend:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe LegendOptions
legend} -> Maybe LegendOptions
legend) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe LegendOptions
a -> ComboChartConfiguration
s {$sel:legend:ComboChartConfiguration' :: Maybe LegendOptions
legend = Maybe LegendOptions
a} :: ComboChartConfiguration)

-- | The options that determine if visual data labels are displayed.
--
-- The data label options for a line in a combo chart.
comboChartConfiguration_lineDataLabels :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe DataLabelOptions)
comboChartConfiguration_lineDataLabels :: Lens' ComboChartConfiguration (Maybe DataLabelOptions)
comboChartConfiguration_lineDataLabels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe DataLabelOptions
lineDataLabels :: Maybe DataLabelOptions
$sel:lineDataLabels:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe DataLabelOptions
lineDataLabels} -> Maybe DataLabelOptions
lineDataLabels) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe DataLabelOptions
a -> ComboChartConfiguration
s {$sel:lineDataLabels:ComboChartConfiguration' :: Maybe DataLabelOptions
lineDataLabels = Maybe DataLabelOptions
a} :: ComboChartConfiguration)

-- | The label display options (grid line, range, scale, and axis step) of a
-- combo chart\'s primary y-axis (bar) field well.
comboChartConfiguration_primaryYAxisDisplayOptions :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe AxisDisplayOptions)
comboChartConfiguration_primaryYAxisDisplayOptions :: Lens' ComboChartConfiguration (Maybe AxisDisplayOptions)
comboChartConfiguration_primaryYAxisDisplayOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe AxisDisplayOptions
primaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
$sel:primaryYAxisDisplayOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
primaryYAxisDisplayOptions} -> Maybe AxisDisplayOptions
primaryYAxisDisplayOptions) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe AxisDisplayOptions
a -> ComboChartConfiguration
s {$sel:primaryYAxisDisplayOptions:ComboChartConfiguration' :: Maybe AxisDisplayOptions
primaryYAxisDisplayOptions = Maybe AxisDisplayOptions
a} :: ComboChartConfiguration)

-- | The label options (label text, label visibility, and sort icon
-- visibility) of a combo chart\'s primary y-axis (bar) field well.
comboChartConfiguration_primaryYAxisLabelOptions :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
comboChartConfiguration_primaryYAxisLabelOptions :: Lens' ComboChartConfiguration (Maybe ChartAxisLabelOptions)
comboChartConfiguration_primaryYAxisLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
$sel:primaryYAxisLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions} -> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> ComboChartConfiguration
s {$sel:primaryYAxisLabelOptions:ComboChartConfiguration' :: Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions = Maybe ChartAxisLabelOptions
a} :: ComboChartConfiguration)

-- | The reference line setup of the visual.
comboChartConfiguration_referenceLines :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe [ReferenceLine])
comboChartConfiguration_referenceLines :: Lens' ComboChartConfiguration (Maybe [ReferenceLine])
comboChartConfiguration_referenceLines = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe [ReferenceLine]
referenceLines :: Maybe [ReferenceLine]
$sel:referenceLines:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe [ReferenceLine]
referenceLines} -> Maybe [ReferenceLine]
referenceLines) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe [ReferenceLine]
a -> ComboChartConfiguration
s {$sel:referenceLines:ComboChartConfiguration' :: Maybe [ReferenceLine]
referenceLines = Maybe [ReferenceLine]
a} :: ComboChartConfiguration) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The label display options (grid line, range, scale, axis step) of a
-- combo chart\'s secondary y-axis (line) field well.
comboChartConfiguration_secondaryYAxisDisplayOptions :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe AxisDisplayOptions)
comboChartConfiguration_secondaryYAxisDisplayOptions :: Lens' ComboChartConfiguration (Maybe AxisDisplayOptions)
comboChartConfiguration_secondaryYAxisDisplayOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe AxisDisplayOptions
secondaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
$sel:secondaryYAxisDisplayOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
secondaryYAxisDisplayOptions} -> Maybe AxisDisplayOptions
secondaryYAxisDisplayOptions) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe AxisDisplayOptions
a -> ComboChartConfiguration
s {$sel:secondaryYAxisDisplayOptions:ComboChartConfiguration' :: Maybe AxisDisplayOptions
secondaryYAxisDisplayOptions = Maybe AxisDisplayOptions
a} :: ComboChartConfiguration)

-- | The label options (label text, label visibility, and sort icon
-- visibility) of a combo chart\'s secondary y-axis(line) field well.
comboChartConfiguration_secondaryYAxisLabelOptions :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
comboChartConfiguration_secondaryYAxisLabelOptions :: Lens' ComboChartConfiguration (Maybe ChartAxisLabelOptions)
comboChartConfiguration_secondaryYAxisLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
$sel:secondaryYAxisLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions} -> Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> ComboChartConfiguration
s {$sel:secondaryYAxisLabelOptions:ComboChartConfiguration' :: Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions = Maybe ChartAxisLabelOptions
a} :: ComboChartConfiguration)

-- | The sort configuration of a @ComboChartVisual@.
comboChartConfiguration_sortConfiguration :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe ComboChartSortConfiguration)
comboChartConfiguration_sortConfiguration :: Lens' ComboChartConfiguration (Maybe ComboChartSortConfiguration)
comboChartConfiguration_sortConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe ComboChartSortConfiguration
sortConfiguration :: Maybe ComboChartSortConfiguration
$sel:sortConfiguration:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ComboChartSortConfiguration
sortConfiguration} -> Maybe ComboChartSortConfiguration
sortConfiguration) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe ComboChartSortConfiguration
a -> ComboChartConfiguration
s {$sel:sortConfiguration:ComboChartConfiguration' :: Maybe ComboChartSortConfiguration
sortConfiguration = Maybe ComboChartSortConfiguration
a} :: ComboChartConfiguration)

-- | The legend display setup of the visual.
comboChartConfiguration_tooltip :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe TooltipOptions)
comboChartConfiguration_tooltip :: Lens' ComboChartConfiguration (Maybe TooltipOptions)
comboChartConfiguration_tooltip = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe TooltipOptions
tooltip :: Maybe TooltipOptions
$sel:tooltip:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe TooltipOptions
tooltip} -> Maybe TooltipOptions
tooltip) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe TooltipOptions
a -> ComboChartConfiguration
s {$sel:tooltip:ComboChartConfiguration' :: Maybe TooltipOptions
tooltip = Maybe TooltipOptions
a} :: ComboChartConfiguration)

-- | The palette (chart color) display setup of the visual.
comboChartConfiguration_visualPalette :: Lens.Lens' ComboChartConfiguration (Prelude.Maybe VisualPalette)
comboChartConfiguration_visualPalette :: Lens' ComboChartConfiguration (Maybe VisualPalette)
comboChartConfiguration_visualPalette = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ComboChartConfiguration' {Maybe VisualPalette
visualPalette :: Maybe VisualPalette
$sel:visualPalette:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe VisualPalette
visualPalette} -> Maybe VisualPalette
visualPalette) (\s :: ComboChartConfiguration
s@ComboChartConfiguration' {} Maybe VisualPalette
a -> ComboChartConfiguration
s {$sel:visualPalette:ComboChartConfiguration' :: Maybe VisualPalette
visualPalette = Maybe VisualPalette
a} :: ComboChartConfiguration)

instance Data.FromJSON ComboChartConfiguration where
  parseJSON :: Value -> Parser ComboChartConfiguration
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ComboChartConfiguration"
      ( \Object
x ->
          Maybe DataLabelOptions
-> Maybe BarsArrangement
-> Maybe AxisDisplayOptions
-> Maybe ChartAxisLabelOptions
-> Maybe ChartAxisLabelOptions
-> Maybe ComboChartFieldWells
-> Maybe LegendOptions
-> Maybe DataLabelOptions
-> Maybe AxisDisplayOptions
-> Maybe ChartAxisLabelOptions
-> Maybe [ReferenceLine]
-> Maybe AxisDisplayOptions
-> Maybe ChartAxisLabelOptions
-> Maybe ComboChartSortConfiguration
-> Maybe TooltipOptions
-> Maybe VisualPalette
-> ComboChartConfiguration
ComboChartConfiguration'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"BarDataLabels")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"BarsArrangement")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CategoryAxis")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CategoryLabelOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ColorLabelOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FieldWells")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Legend")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LineDataLabels")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"PrimaryYAxisDisplayOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"PrimaryYAxisLabelOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ReferenceLines" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SecondaryYAxisDisplayOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SecondaryYAxisLabelOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SortConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Tooltip")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"VisualPalette")
      )

instance Prelude.Hashable ComboChartConfiguration where
  hashWithSalt :: Int -> ComboChartConfiguration -> Int
hashWithSalt Int
_salt ComboChartConfiguration' {Maybe [ReferenceLine]
Maybe BarsArrangement
Maybe ComboChartSortConfiguration
Maybe ComboChartFieldWells
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe VisualPalette
visualPalette :: Maybe VisualPalette
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe ComboChartSortConfiguration
secondaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
secondaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
referenceLines :: Maybe [ReferenceLine]
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
primaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
lineDataLabels :: Maybe DataLabelOptions
legend :: Maybe LegendOptions
fieldWells :: Maybe ComboChartFieldWells
colorLabelOptions :: Maybe ChartAxisLabelOptions
categoryLabelOptions :: Maybe ChartAxisLabelOptions
categoryAxis :: Maybe AxisDisplayOptions
barsArrangement :: Maybe BarsArrangement
barDataLabels :: Maybe DataLabelOptions
$sel:visualPalette:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe VisualPalette
$sel:tooltip:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ComboChartSortConfiguration
$sel:secondaryYAxisLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:secondaryYAxisDisplayOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
$sel:referenceLines:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe [ReferenceLine]
$sel:primaryYAxisLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:primaryYAxisDisplayOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
$sel:lineDataLabels:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe DataLabelOptions
$sel:legend:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ComboChartFieldWells
$sel:colorLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryAxis:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
$sel:barsArrangement:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe BarsArrangement
$sel:barDataLabels:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe DataLabelOptions
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataLabelOptions
barDataLabels
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BarsArrangement
barsArrangement
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AxisDisplayOptions
categoryAxis
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
categoryLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
colorLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ComboChartFieldWells
fieldWells
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LegendOptions
legend
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataLabelOptions
lineDataLabels
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AxisDisplayOptions
primaryYAxisDisplayOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ReferenceLine]
referenceLines
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AxisDisplayOptions
secondaryYAxisDisplayOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ComboChartSortConfiguration
sortConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TooltipOptions
tooltip
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VisualPalette
visualPalette

instance Prelude.NFData ComboChartConfiguration where
  rnf :: ComboChartConfiguration -> ()
rnf ComboChartConfiguration' {Maybe [ReferenceLine]
Maybe BarsArrangement
Maybe ComboChartSortConfiguration
Maybe ComboChartFieldWells
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe VisualPalette
visualPalette :: Maybe VisualPalette
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe ComboChartSortConfiguration
secondaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
secondaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
referenceLines :: Maybe [ReferenceLine]
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
primaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
lineDataLabels :: Maybe DataLabelOptions
legend :: Maybe LegendOptions
fieldWells :: Maybe ComboChartFieldWells
colorLabelOptions :: Maybe ChartAxisLabelOptions
categoryLabelOptions :: Maybe ChartAxisLabelOptions
categoryAxis :: Maybe AxisDisplayOptions
barsArrangement :: Maybe BarsArrangement
barDataLabels :: Maybe DataLabelOptions
$sel:visualPalette:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe VisualPalette
$sel:tooltip:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ComboChartSortConfiguration
$sel:secondaryYAxisLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:secondaryYAxisDisplayOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
$sel:referenceLines:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe [ReferenceLine]
$sel:primaryYAxisLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:primaryYAxisDisplayOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
$sel:lineDataLabels:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe DataLabelOptions
$sel:legend:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ComboChartFieldWells
$sel:colorLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryAxis:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
$sel:barsArrangement:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe BarsArrangement
$sel:barDataLabels:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe DataLabelOptions
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DataLabelOptions
barDataLabels
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BarsArrangement
barsArrangement
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AxisDisplayOptions
categoryAxis
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
categoryLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
colorLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ComboChartFieldWells
fieldWells
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LegendOptions
legend
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataLabelOptions
lineDataLabels
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AxisDisplayOptions
primaryYAxisDisplayOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ReferenceLine]
referenceLines
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AxisDisplayOptions
secondaryYAxisDisplayOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ComboChartSortConfiguration
sortConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TooltipOptions
tooltip
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VisualPalette
visualPalette

instance Data.ToJSON ComboChartConfiguration where
  toJSON :: ComboChartConfiguration -> Value
toJSON ComboChartConfiguration' {Maybe [ReferenceLine]
Maybe BarsArrangement
Maybe ComboChartSortConfiguration
Maybe ComboChartFieldWells
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe VisualPalette
visualPalette :: Maybe VisualPalette
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe ComboChartSortConfiguration
secondaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
secondaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
referenceLines :: Maybe [ReferenceLine]
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
primaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
lineDataLabels :: Maybe DataLabelOptions
legend :: Maybe LegendOptions
fieldWells :: Maybe ComboChartFieldWells
colorLabelOptions :: Maybe ChartAxisLabelOptions
categoryLabelOptions :: Maybe ChartAxisLabelOptions
categoryAxis :: Maybe AxisDisplayOptions
barsArrangement :: Maybe BarsArrangement
barDataLabels :: Maybe DataLabelOptions
$sel:visualPalette:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe VisualPalette
$sel:tooltip:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ComboChartSortConfiguration
$sel:secondaryYAxisLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:secondaryYAxisDisplayOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
$sel:referenceLines:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe [ReferenceLine]
$sel:primaryYAxisLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:primaryYAxisDisplayOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
$sel:lineDataLabels:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe DataLabelOptions
$sel:legend:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ComboChartFieldWells
$sel:colorLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryLabelOptions:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryAxis:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe AxisDisplayOptions
$sel:barsArrangement:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe BarsArrangement
$sel:barDataLabels:ComboChartConfiguration' :: ComboChartConfiguration -> Maybe DataLabelOptions
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"BarDataLabels" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DataLabelOptions
barDataLabels,
            (Key
"BarsArrangement" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe BarsArrangement
barsArrangement,
            (Key
"CategoryAxis" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AxisDisplayOptions
categoryAxis,
            (Key
"CategoryLabelOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ChartAxisLabelOptions
categoryLabelOptions,
            (Key
"ColorLabelOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ChartAxisLabelOptions
colorLabelOptions,
            (Key
"FieldWells" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ComboChartFieldWells
fieldWells,
            (Key
"Legend" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LegendOptions
legend,
            (Key
"LineDataLabels" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DataLabelOptions
lineDataLabels,
            (Key
"PrimaryYAxisDisplayOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AxisDisplayOptions
primaryYAxisDisplayOptions,
            (Key
"PrimaryYAxisLabelOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions,
            (Key
"ReferenceLines" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ReferenceLine]
referenceLines,
            (Key
"SecondaryYAxisDisplayOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AxisDisplayOptions
secondaryYAxisDisplayOptions,
            (Key
"SecondaryYAxisLabelOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions,
            (Key
"SortConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ComboChartSortConfiguration
sortConfiguration,
            (Key
"Tooltip" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TooltipOptions
tooltip,
            (Key
"VisualPalette" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe VisualPalette
visualPalette
          ]
      )