{-# 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.BarChartConfiguration
-- 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.BarChartConfiguration 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.BarChartFieldWells
import Amazonka.QuickSight.Types.BarChartOrientation
import Amazonka.QuickSight.Types.BarChartSortConfiguration
import Amazonka.QuickSight.Types.BarsArrangement
import Amazonka.QuickSight.Types.ChartAxisLabelOptions
import Amazonka.QuickSight.Types.ContributionAnalysisDefault
import Amazonka.QuickSight.Types.DataLabelOptions
import Amazonka.QuickSight.Types.LegendOptions
import Amazonka.QuickSight.Types.ReferenceLine
import Amazonka.QuickSight.Types.SmallMultiplesOptions
import Amazonka.QuickSight.Types.TooltipOptions
import Amazonka.QuickSight.Types.VisualPalette

-- | The configuration of a @BarChartVisual@.
--
-- /See:/ 'newBarChartConfiguration' smart constructor.
data BarChartConfiguration = BarChartConfiguration'
  { -- | Determines the arrangement of the bars. The orientation and arrangement
    -- of bars determine the type of bar that is used in the visual.
    BarChartConfiguration -> Maybe BarsArrangement
barsArrangement :: Prelude.Maybe BarsArrangement,
    -- | The label display options (grid line, range, scale, axis step) for bar
    -- chart category.
    BarChartConfiguration -> Maybe AxisDisplayOptions
categoryAxis :: Prelude.Maybe AxisDisplayOptions,
    -- | The label options (label text, label visibility and sort icon
    -- visibility) for a bar chart.
    BarChartConfiguration -> Maybe ChartAxisLabelOptions
categoryLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The label options (label text, label visibility and sort icon
    -- visibility) for a color that is used in a bar chart.
    BarChartConfiguration -> Maybe ChartAxisLabelOptions
colorLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The contribution analysis (anomaly configuration) setup of the visual.
    BarChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults :: Prelude.Maybe (Prelude.NonEmpty ContributionAnalysisDefault),
    -- | The options that determine if visual data labels are displayed.
    BarChartConfiguration -> Maybe DataLabelOptions
dataLabels :: Prelude.Maybe DataLabelOptions,
    -- | The field wells of the visual.
    BarChartConfiguration -> Maybe BarChartFieldWells
fieldWells :: Prelude.Maybe BarChartFieldWells,
    -- | The legend display setup of the visual.
    BarChartConfiguration -> Maybe LegendOptions
legend :: Prelude.Maybe LegendOptions,
    -- | The orientation of the bars in a bar chart visual. There are two valid
    -- values in this structure:
    --
    -- -   @HORIZONTAL@: Used for charts that have horizontal bars. Visuals
    --     that use this value are horizontal bar charts, horizontal stacked
    --     bar charts, and horizontal stacked 100% bar charts.
    --
    -- -   @VERTICAL@: Used for charts that have vertical bars. Visuals that
    --     use this value are vertical bar charts, vertical stacked bar charts,
    --     and vertical stacked 100% bar charts.
    BarChartConfiguration -> Maybe BarChartOrientation
orientation :: Prelude.Maybe BarChartOrientation,
    -- | The reference line setup of the visual.
    BarChartConfiguration -> Maybe [ReferenceLine]
referenceLines :: Prelude.Maybe [ReferenceLine],
    -- | The small multiples setup for the visual.
    BarChartConfiguration -> Maybe SmallMultiplesOptions
smallMultiplesOptions :: Prelude.Maybe SmallMultiplesOptions,
    -- | The sort configuration of a @BarChartVisual@.
    BarChartConfiguration -> Maybe BarChartSortConfiguration
sortConfiguration :: Prelude.Maybe BarChartSortConfiguration,
    -- | The tooltip display setup of the visual.
    BarChartConfiguration -> Maybe TooltipOptions
tooltip :: Prelude.Maybe TooltipOptions,
    -- | The label display options (grid line, range, scale, axis step) for a bar
    -- chart value.
    BarChartConfiguration -> Maybe AxisDisplayOptions
valueAxis :: Prelude.Maybe AxisDisplayOptions,
    -- | The label options (label text, label visibility and sort icon
    -- visibility) for a bar chart value.
    BarChartConfiguration -> Maybe ChartAxisLabelOptions
valueLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The palette (chart color) display setup of the visual.
    BarChartConfiguration -> Maybe VisualPalette
visualPalette :: Prelude.Maybe VisualPalette
  }
  deriving (BarChartConfiguration -> BarChartConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BarChartConfiguration -> BarChartConfiguration -> Bool
$c/= :: BarChartConfiguration -> BarChartConfiguration -> Bool
== :: BarChartConfiguration -> BarChartConfiguration -> Bool
$c== :: BarChartConfiguration -> BarChartConfiguration -> Bool
Prelude.Eq, Int -> BarChartConfiguration -> ShowS
[BarChartConfiguration] -> ShowS
BarChartConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BarChartConfiguration] -> ShowS
$cshowList :: [BarChartConfiguration] -> ShowS
show :: BarChartConfiguration -> String
$cshow :: BarChartConfiguration -> String
showsPrec :: Int -> BarChartConfiguration -> ShowS
$cshowsPrec :: Int -> BarChartConfiguration -> ShowS
Prelude.Show, forall x. Rep BarChartConfiguration x -> BarChartConfiguration
forall x. BarChartConfiguration -> Rep BarChartConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep BarChartConfiguration x -> BarChartConfiguration
$cfrom :: forall x. BarChartConfiguration -> Rep BarChartConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'BarChartConfiguration' 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:
--
-- 'barsArrangement', 'barChartConfiguration_barsArrangement' - Determines the arrangement of the bars. The orientation and arrangement
-- of bars determine the type of bar that is used in the visual.
--
-- 'categoryAxis', 'barChartConfiguration_categoryAxis' - The label display options (grid line, range, scale, axis step) for bar
-- chart category.
--
-- 'categoryLabelOptions', 'barChartConfiguration_categoryLabelOptions' - The label options (label text, label visibility and sort icon
-- visibility) for a bar chart.
--
-- 'colorLabelOptions', 'barChartConfiguration_colorLabelOptions' - The label options (label text, label visibility and sort icon
-- visibility) for a color that is used in a bar chart.
--
-- 'contributionAnalysisDefaults', 'barChartConfiguration_contributionAnalysisDefaults' - The contribution analysis (anomaly configuration) setup of the visual.
--
-- 'dataLabels', 'barChartConfiguration_dataLabels' - The options that determine if visual data labels are displayed.
--
-- 'fieldWells', 'barChartConfiguration_fieldWells' - The field wells of the visual.
--
-- 'legend', 'barChartConfiguration_legend' - The legend display setup of the visual.
--
-- 'orientation', 'barChartConfiguration_orientation' - The orientation of the bars in a bar chart visual. There are two valid
-- values in this structure:
--
-- -   @HORIZONTAL@: Used for charts that have horizontal bars. Visuals
--     that use this value are horizontal bar charts, horizontal stacked
--     bar charts, and horizontal stacked 100% bar charts.
--
-- -   @VERTICAL@: Used for charts that have vertical bars. Visuals that
--     use this value are vertical bar charts, vertical stacked bar charts,
--     and vertical stacked 100% bar charts.
--
-- 'referenceLines', 'barChartConfiguration_referenceLines' - The reference line setup of the visual.
--
-- 'smallMultiplesOptions', 'barChartConfiguration_smallMultiplesOptions' - The small multiples setup for the visual.
--
-- 'sortConfiguration', 'barChartConfiguration_sortConfiguration' - The sort configuration of a @BarChartVisual@.
--
-- 'tooltip', 'barChartConfiguration_tooltip' - The tooltip display setup of the visual.
--
-- 'valueAxis', 'barChartConfiguration_valueAxis' - The label display options (grid line, range, scale, axis step) for a bar
-- chart value.
--
-- 'valueLabelOptions', 'barChartConfiguration_valueLabelOptions' - The label options (label text, label visibility and sort icon
-- visibility) for a bar chart value.
--
-- 'visualPalette', 'barChartConfiguration_visualPalette' - The palette (chart color) display setup of the visual.
newBarChartConfiguration ::
  BarChartConfiguration
newBarChartConfiguration :: BarChartConfiguration
newBarChartConfiguration =
  BarChartConfiguration'
    { $sel:barsArrangement:BarChartConfiguration' :: Maybe BarsArrangement
barsArrangement =
        forall a. Maybe a
Prelude.Nothing,
      $sel:categoryAxis:BarChartConfiguration' :: Maybe AxisDisplayOptions
categoryAxis = forall a. Maybe a
Prelude.Nothing,
      $sel:categoryLabelOptions:BarChartConfiguration' :: Maybe ChartAxisLabelOptions
categoryLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:colorLabelOptions:BarChartConfiguration' :: Maybe ChartAxisLabelOptions
colorLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:contributionAnalysisDefaults:BarChartConfiguration' :: Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults = forall a. Maybe a
Prelude.Nothing,
      $sel:dataLabels:BarChartConfiguration' :: Maybe DataLabelOptions
dataLabels = forall a. Maybe a
Prelude.Nothing,
      $sel:fieldWells:BarChartConfiguration' :: Maybe BarChartFieldWells
fieldWells = forall a. Maybe a
Prelude.Nothing,
      $sel:legend:BarChartConfiguration' :: Maybe LegendOptions
legend = forall a. Maybe a
Prelude.Nothing,
      $sel:orientation:BarChartConfiguration' :: Maybe BarChartOrientation
orientation = forall a. Maybe a
Prelude.Nothing,
      $sel:referenceLines:BarChartConfiguration' :: Maybe [ReferenceLine]
referenceLines = forall a. Maybe a
Prelude.Nothing,
      $sel:smallMultiplesOptions:BarChartConfiguration' :: Maybe SmallMultiplesOptions
smallMultiplesOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:sortConfiguration:BarChartConfiguration' :: Maybe BarChartSortConfiguration
sortConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:tooltip:BarChartConfiguration' :: Maybe TooltipOptions
tooltip = forall a. Maybe a
Prelude.Nothing,
      $sel:valueAxis:BarChartConfiguration' :: Maybe AxisDisplayOptions
valueAxis = forall a. Maybe a
Prelude.Nothing,
      $sel:valueLabelOptions:BarChartConfiguration' :: Maybe ChartAxisLabelOptions
valueLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:visualPalette:BarChartConfiguration' :: Maybe VisualPalette
visualPalette = forall a. Maybe a
Prelude.Nothing
    }

-- | Determines the arrangement of the bars. The orientation and arrangement
-- of bars determine the type of bar that is used in the visual.
barChartConfiguration_barsArrangement :: Lens.Lens' BarChartConfiguration (Prelude.Maybe BarsArrangement)
barChartConfiguration_barsArrangement :: Lens' BarChartConfiguration (Maybe BarsArrangement)
barChartConfiguration_barsArrangement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe BarsArrangement
barsArrangement :: Maybe BarsArrangement
$sel:barsArrangement:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarsArrangement
barsArrangement} -> Maybe BarsArrangement
barsArrangement) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe BarsArrangement
a -> BarChartConfiguration
s {$sel:barsArrangement:BarChartConfiguration' :: Maybe BarsArrangement
barsArrangement = Maybe BarsArrangement
a} :: BarChartConfiguration)

-- | The label display options (grid line, range, scale, axis step) for bar
-- chart category.
barChartConfiguration_categoryAxis :: Lens.Lens' BarChartConfiguration (Prelude.Maybe AxisDisplayOptions)
barChartConfiguration_categoryAxis :: Lens' BarChartConfiguration (Maybe AxisDisplayOptions)
barChartConfiguration_categoryAxis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe AxisDisplayOptions
categoryAxis :: Maybe AxisDisplayOptions
$sel:categoryAxis:BarChartConfiguration' :: BarChartConfiguration -> Maybe AxisDisplayOptions
categoryAxis} -> Maybe AxisDisplayOptions
categoryAxis) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe AxisDisplayOptions
a -> BarChartConfiguration
s {$sel:categoryAxis:BarChartConfiguration' :: Maybe AxisDisplayOptions
categoryAxis = Maybe AxisDisplayOptions
a} :: BarChartConfiguration)

-- | The label options (label text, label visibility and sort icon
-- visibility) for a bar chart.
barChartConfiguration_categoryLabelOptions :: Lens.Lens' BarChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
barChartConfiguration_categoryLabelOptions :: Lens' BarChartConfiguration (Maybe ChartAxisLabelOptions)
barChartConfiguration_categoryLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe ChartAxisLabelOptions
categoryLabelOptions :: Maybe ChartAxisLabelOptions
$sel:categoryLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
categoryLabelOptions} -> Maybe ChartAxisLabelOptions
categoryLabelOptions) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> BarChartConfiguration
s {$sel:categoryLabelOptions:BarChartConfiguration' :: Maybe ChartAxisLabelOptions
categoryLabelOptions = Maybe ChartAxisLabelOptions
a} :: BarChartConfiguration)

-- | The label options (label text, label visibility and sort icon
-- visibility) for a color that is used in a bar chart.
barChartConfiguration_colorLabelOptions :: Lens.Lens' BarChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
barChartConfiguration_colorLabelOptions :: Lens' BarChartConfiguration (Maybe ChartAxisLabelOptions)
barChartConfiguration_colorLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe ChartAxisLabelOptions
colorLabelOptions :: Maybe ChartAxisLabelOptions
$sel:colorLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
colorLabelOptions} -> Maybe ChartAxisLabelOptions
colorLabelOptions) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> BarChartConfiguration
s {$sel:colorLabelOptions:BarChartConfiguration' :: Maybe ChartAxisLabelOptions
colorLabelOptions = Maybe ChartAxisLabelOptions
a} :: BarChartConfiguration)

-- | The contribution analysis (anomaly configuration) setup of the visual.
barChartConfiguration_contributionAnalysisDefaults :: Lens.Lens' BarChartConfiguration (Prelude.Maybe (Prelude.NonEmpty ContributionAnalysisDefault))
barChartConfiguration_contributionAnalysisDefaults :: Lens'
  BarChartConfiguration
  (Maybe (NonEmpty ContributionAnalysisDefault))
barChartConfiguration_contributionAnalysisDefaults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
$sel:contributionAnalysisDefaults:BarChartConfiguration' :: BarChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults} -> Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe (NonEmpty ContributionAnalysisDefault)
a -> BarChartConfiguration
s {$sel:contributionAnalysisDefaults:BarChartConfiguration' :: Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults = Maybe (NonEmpty ContributionAnalysisDefault)
a} :: BarChartConfiguration) 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 options that determine if visual data labels are displayed.
barChartConfiguration_dataLabels :: Lens.Lens' BarChartConfiguration (Prelude.Maybe DataLabelOptions)
barChartConfiguration_dataLabels :: Lens' BarChartConfiguration (Maybe DataLabelOptions)
barChartConfiguration_dataLabels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe DataLabelOptions
dataLabels :: Maybe DataLabelOptions
$sel:dataLabels:BarChartConfiguration' :: BarChartConfiguration -> Maybe DataLabelOptions
dataLabels} -> Maybe DataLabelOptions
dataLabels) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe DataLabelOptions
a -> BarChartConfiguration
s {$sel:dataLabels:BarChartConfiguration' :: Maybe DataLabelOptions
dataLabels = Maybe DataLabelOptions
a} :: BarChartConfiguration)

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

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

-- | The orientation of the bars in a bar chart visual. There are two valid
-- values in this structure:
--
-- -   @HORIZONTAL@: Used for charts that have horizontal bars. Visuals
--     that use this value are horizontal bar charts, horizontal stacked
--     bar charts, and horizontal stacked 100% bar charts.
--
-- -   @VERTICAL@: Used for charts that have vertical bars. Visuals that
--     use this value are vertical bar charts, vertical stacked bar charts,
--     and vertical stacked 100% bar charts.
barChartConfiguration_orientation :: Lens.Lens' BarChartConfiguration (Prelude.Maybe BarChartOrientation)
barChartConfiguration_orientation :: Lens' BarChartConfiguration (Maybe BarChartOrientation)
barChartConfiguration_orientation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe BarChartOrientation
orientation :: Maybe BarChartOrientation
$sel:orientation:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartOrientation
orientation} -> Maybe BarChartOrientation
orientation) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe BarChartOrientation
a -> BarChartConfiguration
s {$sel:orientation:BarChartConfiguration' :: Maybe BarChartOrientation
orientation = Maybe BarChartOrientation
a} :: BarChartConfiguration)

-- | The reference line setup of the visual.
barChartConfiguration_referenceLines :: Lens.Lens' BarChartConfiguration (Prelude.Maybe [ReferenceLine])
barChartConfiguration_referenceLines :: Lens' BarChartConfiguration (Maybe [ReferenceLine])
barChartConfiguration_referenceLines = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe [ReferenceLine]
referenceLines :: Maybe [ReferenceLine]
$sel:referenceLines:BarChartConfiguration' :: BarChartConfiguration -> Maybe [ReferenceLine]
referenceLines} -> Maybe [ReferenceLine]
referenceLines) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe [ReferenceLine]
a -> BarChartConfiguration
s {$sel:referenceLines:BarChartConfiguration' :: Maybe [ReferenceLine]
referenceLines = Maybe [ReferenceLine]
a} :: BarChartConfiguration) 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 small multiples setup for the visual.
barChartConfiguration_smallMultiplesOptions :: Lens.Lens' BarChartConfiguration (Prelude.Maybe SmallMultiplesOptions)
barChartConfiguration_smallMultiplesOptions :: Lens' BarChartConfiguration (Maybe SmallMultiplesOptions)
barChartConfiguration_smallMultiplesOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe SmallMultiplesOptions
smallMultiplesOptions :: Maybe SmallMultiplesOptions
$sel:smallMultiplesOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe SmallMultiplesOptions
smallMultiplesOptions} -> Maybe SmallMultiplesOptions
smallMultiplesOptions) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe SmallMultiplesOptions
a -> BarChartConfiguration
s {$sel:smallMultiplesOptions:BarChartConfiguration' :: Maybe SmallMultiplesOptions
smallMultiplesOptions = Maybe SmallMultiplesOptions
a} :: BarChartConfiguration)

-- | The sort configuration of a @BarChartVisual@.
barChartConfiguration_sortConfiguration :: Lens.Lens' BarChartConfiguration (Prelude.Maybe BarChartSortConfiguration)
barChartConfiguration_sortConfiguration :: Lens' BarChartConfiguration (Maybe BarChartSortConfiguration)
barChartConfiguration_sortConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe BarChartSortConfiguration
sortConfiguration :: Maybe BarChartSortConfiguration
$sel:sortConfiguration:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartSortConfiguration
sortConfiguration} -> Maybe BarChartSortConfiguration
sortConfiguration) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe BarChartSortConfiguration
a -> BarChartConfiguration
s {$sel:sortConfiguration:BarChartConfiguration' :: Maybe BarChartSortConfiguration
sortConfiguration = Maybe BarChartSortConfiguration
a} :: BarChartConfiguration)

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

-- | The label display options (grid line, range, scale, axis step) for a bar
-- chart value.
barChartConfiguration_valueAxis :: Lens.Lens' BarChartConfiguration (Prelude.Maybe AxisDisplayOptions)
barChartConfiguration_valueAxis :: Lens' BarChartConfiguration (Maybe AxisDisplayOptions)
barChartConfiguration_valueAxis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe AxisDisplayOptions
valueAxis :: Maybe AxisDisplayOptions
$sel:valueAxis:BarChartConfiguration' :: BarChartConfiguration -> Maybe AxisDisplayOptions
valueAxis} -> Maybe AxisDisplayOptions
valueAxis) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe AxisDisplayOptions
a -> BarChartConfiguration
s {$sel:valueAxis:BarChartConfiguration' :: Maybe AxisDisplayOptions
valueAxis = Maybe AxisDisplayOptions
a} :: BarChartConfiguration)

-- | The label options (label text, label visibility and sort icon
-- visibility) for a bar chart value.
barChartConfiguration_valueLabelOptions :: Lens.Lens' BarChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
barChartConfiguration_valueLabelOptions :: Lens' BarChartConfiguration (Maybe ChartAxisLabelOptions)
barChartConfiguration_valueLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BarChartConfiguration' {Maybe ChartAxisLabelOptions
valueLabelOptions :: Maybe ChartAxisLabelOptions
$sel:valueLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
valueLabelOptions} -> Maybe ChartAxisLabelOptions
valueLabelOptions) (\s :: BarChartConfiguration
s@BarChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> BarChartConfiguration
s {$sel:valueLabelOptions:BarChartConfiguration' :: Maybe ChartAxisLabelOptions
valueLabelOptions = Maybe ChartAxisLabelOptions
a} :: BarChartConfiguration)

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

instance Data.FromJSON BarChartConfiguration where
  parseJSON :: Value -> Parser BarChartConfiguration
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"BarChartConfiguration"
      ( \Object
x ->
          Maybe BarsArrangement
-> Maybe AxisDisplayOptions
-> Maybe ChartAxisLabelOptions
-> Maybe ChartAxisLabelOptions
-> Maybe (NonEmpty ContributionAnalysisDefault)
-> Maybe DataLabelOptions
-> Maybe BarChartFieldWells
-> Maybe LegendOptions
-> Maybe BarChartOrientation
-> Maybe [ReferenceLine]
-> Maybe SmallMultiplesOptions
-> Maybe BarChartSortConfiguration
-> Maybe TooltipOptions
-> Maybe AxisDisplayOptions
-> Maybe ChartAxisLabelOptions
-> Maybe VisualPalette
-> BarChartConfiguration
BarChartConfiguration'
            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
"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
"ContributionAnalysisDefaults")
            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
"DataLabels")
            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
"Orientation")
            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
"SmallMultiplesOptions")
            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
"ValueAxis")
            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
"ValueLabelOptions")
            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 BarChartConfiguration where
  hashWithSalt :: Int -> BarChartConfiguration -> Int
hashWithSalt Int
_salt BarChartConfiguration' {Maybe [ReferenceLine]
Maybe (NonEmpty ContributionAnalysisDefault)
Maybe BarChartOrientation
Maybe BarsArrangement
Maybe BarChartSortConfiguration
Maybe BarChartFieldWells
Maybe SmallMultiplesOptions
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe VisualPalette
visualPalette :: Maybe VisualPalette
valueLabelOptions :: Maybe ChartAxisLabelOptions
valueAxis :: Maybe AxisDisplayOptions
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe BarChartSortConfiguration
smallMultiplesOptions :: Maybe SmallMultiplesOptions
referenceLines :: Maybe [ReferenceLine]
orientation :: Maybe BarChartOrientation
legend :: Maybe LegendOptions
fieldWells :: Maybe BarChartFieldWells
dataLabels :: Maybe DataLabelOptions
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
colorLabelOptions :: Maybe ChartAxisLabelOptions
categoryLabelOptions :: Maybe ChartAxisLabelOptions
categoryAxis :: Maybe AxisDisplayOptions
barsArrangement :: Maybe BarsArrangement
$sel:visualPalette:BarChartConfiguration' :: BarChartConfiguration -> Maybe VisualPalette
$sel:valueLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:valueAxis:BarChartConfiguration' :: BarChartConfiguration -> Maybe AxisDisplayOptions
$sel:tooltip:BarChartConfiguration' :: BarChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartSortConfiguration
$sel:smallMultiplesOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe SmallMultiplesOptions
$sel:referenceLines:BarChartConfiguration' :: BarChartConfiguration -> Maybe [ReferenceLine]
$sel:orientation:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartOrientation
$sel:legend:BarChartConfiguration' :: BarChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartFieldWells
$sel:dataLabels:BarChartConfiguration' :: BarChartConfiguration -> Maybe DataLabelOptions
$sel:contributionAnalysisDefaults:BarChartConfiguration' :: BarChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
$sel:colorLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryAxis:BarChartConfiguration' :: BarChartConfiguration -> Maybe AxisDisplayOptions
$sel:barsArrangement:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarsArrangement
..} =
    Int
_salt
      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 (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataLabelOptions
dataLabels
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BarChartFieldWells
fieldWells
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LegendOptions
legend
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BarChartOrientation
orientation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ReferenceLine]
referenceLines
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SmallMultiplesOptions
smallMultiplesOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BarChartSortConfiguration
sortConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TooltipOptions
tooltip
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AxisDisplayOptions
valueAxis
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
valueLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VisualPalette
visualPalette

instance Prelude.NFData BarChartConfiguration where
  rnf :: BarChartConfiguration -> ()
rnf BarChartConfiguration' {Maybe [ReferenceLine]
Maybe (NonEmpty ContributionAnalysisDefault)
Maybe BarChartOrientation
Maybe BarsArrangement
Maybe BarChartSortConfiguration
Maybe BarChartFieldWells
Maybe SmallMultiplesOptions
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe VisualPalette
visualPalette :: Maybe VisualPalette
valueLabelOptions :: Maybe ChartAxisLabelOptions
valueAxis :: Maybe AxisDisplayOptions
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe BarChartSortConfiguration
smallMultiplesOptions :: Maybe SmallMultiplesOptions
referenceLines :: Maybe [ReferenceLine]
orientation :: Maybe BarChartOrientation
legend :: Maybe LegendOptions
fieldWells :: Maybe BarChartFieldWells
dataLabels :: Maybe DataLabelOptions
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
colorLabelOptions :: Maybe ChartAxisLabelOptions
categoryLabelOptions :: Maybe ChartAxisLabelOptions
categoryAxis :: Maybe AxisDisplayOptions
barsArrangement :: Maybe BarsArrangement
$sel:visualPalette:BarChartConfiguration' :: BarChartConfiguration -> Maybe VisualPalette
$sel:valueLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:valueAxis:BarChartConfiguration' :: BarChartConfiguration -> Maybe AxisDisplayOptions
$sel:tooltip:BarChartConfiguration' :: BarChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartSortConfiguration
$sel:smallMultiplesOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe SmallMultiplesOptions
$sel:referenceLines:BarChartConfiguration' :: BarChartConfiguration -> Maybe [ReferenceLine]
$sel:orientation:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartOrientation
$sel:legend:BarChartConfiguration' :: BarChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartFieldWells
$sel:dataLabels:BarChartConfiguration' :: BarChartConfiguration -> Maybe DataLabelOptions
$sel:contributionAnalysisDefaults:BarChartConfiguration' :: BarChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
$sel:colorLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryAxis:BarChartConfiguration' :: BarChartConfiguration -> Maybe AxisDisplayOptions
$sel:barsArrangement:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarsArrangement
..} =
    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 (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataLabelOptions
dataLabels
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BarChartFieldWells
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 BarChartOrientation
orientation
      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 SmallMultiplesOptions
smallMultiplesOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BarChartSortConfiguration
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 AxisDisplayOptions
valueAxis
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
valueLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VisualPalette
visualPalette

instance Data.ToJSON BarChartConfiguration where
  toJSON :: BarChartConfiguration -> Value
toJSON BarChartConfiguration' {Maybe [ReferenceLine]
Maybe (NonEmpty ContributionAnalysisDefault)
Maybe BarChartOrientation
Maybe BarsArrangement
Maybe BarChartSortConfiguration
Maybe BarChartFieldWells
Maybe SmallMultiplesOptions
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe VisualPalette
visualPalette :: Maybe VisualPalette
valueLabelOptions :: Maybe ChartAxisLabelOptions
valueAxis :: Maybe AxisDisplayOptions
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe BarChartSortConfiguration
smallMultiplesOptions :: Maybe SmallMultiplesOptions
referenceLines :: Maybe [ReferenceLine]
orientation :: Maybe BarChartOrientation
legend :: Maybe LegendOptions
fieldWells :: Maybe BarChartFieldWells
dataLabels :: Maybe DataLabelOptions
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
colorLabelOptions :: Maybe ChartAxisLabelOptions
categoryLabelOptions :: Maybe ChartAxisLabelOptions
categoryAxis :: Maybe AxisDisplayOptions
barsArrangement :: Maybe BarsArrangement
$sel:visualPalette:BarChartConfiguration' :: BarChartConfiguration -> Maybe VisualPalette
$sel:valueLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:valueAxis:BarChartConfiguration' :: BarChartConfiguration -> Maybe AxisDisplayOptions
$sel:tooltip:BarChartConfiguration' :: BarChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartSortConfiguration
$sel:smallMultiplesOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe SmallMultiplesOptions
$sel:referenceLines:BarChartConfiguration' :: BarChartConfiguration -> Maybe [ReferenceLine]
$sel:orientation:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartOrientation
$sel:legend:BarChartConfiguration' :: BarChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarChartFieldWells
$sel:dataLabels:BarChartConfiguration' :: BarChartConfiguration -> Maybe DataLabelOptions
$sel:contributionAnalysisDefaults:BarChartConfiguration' :: BarChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
$sel:colorLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryLabelOptions:BarChartConfiguration' :: BarChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryAxis:BarChartConfiguration' :: BarChartConfiguration -> Maybe AxisDisplayOptions
$sel:barsArrangement:BarChartConfiguration' :: BarChartConfiguration -> Maybe BarsArrangement
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (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
"ContributionAnalysisDefaults" 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 (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults,
            (Key
"DataLabels" 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
dataLabels,
            (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 BarChartFieldWells
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
"Orientation" 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 BarChartOrientation
orientation,
            (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
"SmallMultiplesOptions" 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 SmallMultiplesOptions
smallMultiplesOptions,
            (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 BarChartSortConfiguration
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
"ValueAxis" 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
valueAxis,
            (Key
"ValueLabelOptions" 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
valueLabelOptions,
            (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
          ]
      )