{-# 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.PieChartConfiguration
-- 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.PieChartConfiguration 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.ChartAxisLabelOptions
import Amazonka.QuickSight.Types.ContributionAnalysisDefault
import Amazonka.QuickSight.Types.DataLabelOptions
import Amazonka.QuickSight.Types.DonutOptions
import Amazonka.QuickSight.Types.LegendOptions
import Amazonka.QuickSight.Types.PieChartFieldWells
import Amazonka.QuickSight.Types.PieChartSortConfiguration
import Amazonka.QuickSight.Types.SmallMultiplesOptions
import Amazonka.QuickSight.Types.TooltipOptions
import Amazonka.QuickSight.Types.VisualPalette

-- | The configuration of a pie chart.
--
-- /See:/ 'newPieChartConfiguration' smart constructor.
data PieChartConfiguration = PieChartConfiguration'
  { -- | The label options of the group\/color that is displayed in a pie chart.
    PieChartConfiguration -> Maybe ChartAxisLabelOptions
categoryLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The contribution analysis (anomaly configuration) setup of the visual.
    PieChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults :: Prelude.Maybe (Prelude.NonEmpty ContributionAnalysisDefault),
    -- | The options that determine if visual data labels are displayed.
    PieChartConfiguration -> Maybe DataLabelOptions
dataLabels :: Prelude.Maybe DataLabelOptions,
    -- | The options that determine the shape of the chart. This option
    -- determines whether the chart is a pie chart or a donut chart.
    PieChartConfiguration -> Maybe DonutOptions
donutOptions :: Prelude.Maybe DonutOptions,
    -- | The field wells of the visual.
    PieChartConfiguration -> Maybe PieChartFieldWells
fieldWells :: Prelude.Maybe PieChartFieldWells,
    -- | The legend display setup of the visual.
    PieChartConfiguration -> Maybe LegendOptions
legend :: Prelude.Maybe LegendOptions,
    -- | The small multiples setup for the visual.
    PieChartConfiguration -> Maybe SmallMultiplesOptions
smallMultiplesOptions :: Prelude.Maybe SmallMultiplesOptions,
    -- | The sort configuration of a pie chart.
    PieChartConfiguration -> Maybe PieChartSortConfiguration
sortConfiguration :: Prelude.Maybe PieChartSortConfiguration,
    -- | The tooltip display setup of the visual.
    PieChartConfiguration -> Maybe TooltipOptions
tooltip :: Prelude.Maybe TooltipOptions,
    -- | The label options for the value that is displayed in a pie chart.
    PieChartConfiguration -> Maybe ChartAxisLabelOptions
valueLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The palette (chart color) display setup of the visual.
    PieChartConfiguration -> Maybe VisualPalette
visualPalette :: Prelude.Maybe VisualPalette
  }
  deriving (PieChartConfiguration -> PieChartConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PieChartConfiguration -> PieChartConfiguration -> Bool
$c/= :: PieChartConfiguration -> PieChartConfiguration -> Bool
== :: PieChartConfiguration -> PieChartConfiguration -> Bool
$c== :: PieChartConfiguration -> PieChartConfiguration -> Bool
Prelude.Eq, Int -> PieChartConfiguration -> ShowS
[PieChartConfiguration] -> ShowS
PieChartConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PieChartConfiguration] -> ShowS
$cshowList :: [PieChartConfiguration] -> ShowS
show :: PieChartConfiguration -> String
$cshow :: PieChartConfiguration -> String
showsPrec :: Int -> PieChartConfiguration -> ShowS
$cshowsPrec :: Int -> PieChartConfiguration -> ShowS
Prelude.Show, forall x. Rep PieChartConfiguration x -> PieChartConfiguration
forall x. PieChartConfiguration -> Rep PieChartConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PieChartConfiguration x -> PieChartConfiguration
$cfrom :: forall x. PieChartConfiguration -> Rep PieChartConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'PieChartConfiguration' 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:
--
-- 'categoryLabelOptions', 'pieChartConfiguration_categoryLabelOptions' - The label options of the group\/color that is displayed in a pie chart.
--
-- 'contributionAnalysisDefaults', 'pieChartConfiguration_contributionAnalysisDefaults' - The contribution analysis (anomaly configuration) setup of the visual.
--
-- 'dataLabels', 'pieChartConfiguration_dataLabels' - The options that determine if visual data labels are displayed.
--
-- 'donutOptions', 'pieChartConfiguration_donutOptions' - The options that determine the shape of the chart. This option
-- determines whether the chart is a pie chart or a donut chart.
--
-- 'fieldWells', 'pieChartConfiguration_fieldWells' - The field wells of the visual.
--
-- 'legend', 'pieChartConfiguration_legend' - The legend display setup of the visual.
--
-- 'smallMultiplesOptions', 'pieChartConfiguration_smallMultiplesOptions' - The small multiples setup for the visual.
--
-- 'sortConfiguration', 'pieChartConfiguration_sortConfiguration' - The sort configuration of a pie chart.
--
-- 'tooltip', 'pieChartConfiguration_tooltip' - The tooltip display setup of the visual.
--
-- 'valueLabelOptions', 'pieChartConfiguration_valueLabelOptions' - The label options for the value that is displayed in a pie chart.
--
-- 'visualPalette', 'pieChartConfiguration_visualPalette' - The palette (chart color) display setup of the visual.
newPieChartConfiguration ::
  PieChartConfiguration
newPieChartConfiguration :: PieChartConfiguration
newPieChartConfiguration =
  PieChartConfiguration'
    { $sel:categoryLabelOptions:PieChartConfiguration' :: Maybe ChartAxisLabelOptions
categoryLabelOptions =
        forall a. Maybe a
Prelude.Nothing,
      $sel:contributionAnalysisDefaults:PieChartConfiguration' :: Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults = forall a. Maybe a
Prelude.Nothing,
      $sel:dataLabels:PieChartConfiguration' :: Maybe DataLabelOptions
dataLabels = forall a. Maybe a
Prelude.Nothing,
      $sel:donutOptions:PieChartConfiguration' :: Maybe DonutOptions
donutOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:fieldWells:PieChartConfiguration' :: Maybe PieChartFieldWells
fieldWells = forall a. Maybe a
Prelude.Nothing,
      $sel:legend:PieChartConfiguration' :: Maybe LegendOptions
legend = forall a. Maybe a
Prelude.Nothing,
      $sel:smallMultiplesOptions:PieChartConfiguration' :: Maybe SmallMultiplesOptions
smallMultiplesOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:sortConfiguration:PieChartConfiguration' :: Maybe PieChartSortConfiguration
sortConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:tooltip:PieChartConfiguration' :: Maybe TooltipOptions
tooltip = forall a. Maybe a
Prelude.Nothing,
      $sel:valueLabelOptions:PieChartConfiguration' :: Maybe ChartAxisLabelOptions
valueLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:visualPalette:PieChartConfiguration' :: Maybe VisualPalette
visualPalette = forall a. Maybe a
Prelude.Nothing
    }

-- | The label options of the group\/color that is displayed in a pie chart.
pieChartConfiguration_categoryLabelOptions :: Lens.Lens' PieChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
pieChartConfiguration_categoryLabelOptions :: Lens' PieChartConfiguration (Maybe ChartAxisLabelOptions)
pieChartConfiguration_categoryLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PieChartConfiguration' {Maybe ChartAxisLabelOptions
categoryLabelOptions :: Maybe ChartAxisLabelOptions
$sel:categoryLabelOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe ChartAxisLabelOptions
categoryLabelOptions} -> Maybe ChartAxisLabelOptions
categoryLabelOptions) (\s :: PieChartConfiguration
s@PieChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> PieChartConfiguration
s {$sel:categoryLabelOptions:PieChartConfiguration' :: Maybe ChartAxisLabelOptions
categoryLabelOptions = Maybe ChartAxisLabelOptions
a} :: PieChartConfiguration)

-- | The contribution analysis (anomaly configuration) setup of the visual.
pieChartConfiguration_contributionAnalysisDefaults :: Lens.Lens' PieChartConfiguration (Prelude.Maybe (Prelude.NonEmpty ContributionAnalysisDefault))
pieChartConfiguration_contributionAnalysisDefaults :: Lens'
  PieChartConfiguration
  (Maybe (NonEmpty ContributionAnalysisDefault))
pieChartConfiguration_contributionAnalysisDefaults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PieChartConfiguration' {Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
$sel:contributionAnalysisDefaults:PieChartConfiguration' :: PieChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults} -> Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults) (\s :: PieChartConfiguration
s@PieChartConfiguration' {} Maybe (NonEmpty ContributionAnalysisDefault)
a -> PieChartConfiguration
s {$sel:contributionAnalysisDefaults:PieChartConfiguration' :: Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults = Maybe (NonEmpty ContributionAnalysisDefault)
a} :: PieChartConfiguration) 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.
pieChartConfiguration_dataLabels :: Lens.Lens' PieChartConfiguration (Prelude.Maybe DataLabelOptions)
pieChartConfiguration_dataLabels :: Lens' PieChartConfiguration (Maybe DataLabelOptions)
pieChartConfiguration_dataLabels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PieChartConfiguration' {Maybe DataLabelOptions
dataLabels :: Maybe DataLabelOptions
$sel:dataLabels:PieChartConfiguration' :: PieChartConfiguration -> Maybe DataLabelOptions
dataLabels} -> Maybe DataLabelOptions
dataLabels) (\s :: PieChartConfiguration
s@PieChartConfiguration' {} Maybe DataLabelOptions
a -> PieChartConfiguration
s {$sel:dataLabels:PieChartConfiguration' :: Maybe DataLabelOptions
dataLabels = Maybe DataLabelOptions
a} :: PieChartConfiguration)

-- | The options that determine the shape of the chart. This option
-- determines whether the chart is a pie chart or a donut chart.
pieChartConfiguration_donutOptions :: Lens.Lens' PieChartConfiguration (Prelude.Maybe DonutOptions)
pieChartConfiguration_donutOptions :: Lens' PieChartConfiguration (Maybe DonutOptions)
pieChartConfiguration_donutOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PieChartConfiguration' {Maybe DonutOptions
donutOptions :: Maybe DonutOptions
$sel:donutOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe DonutOptions
donutOptions} -> Maybe DonutOptions
donutOptions) (\s :: PieChartConfiguration
s@PieChartConfiguration' {} Maybe DonutOptions
a -> PieChartConfiguration
s {$sel:donutOptions:PieChartConfiguration' :: Maybe DonutOptions
donutOptions = Maybe DonutOptions
a} :: PieChartConfiguration)

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

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

-- | The small multiples setup for the visual.
pieChartConfiguration_smallMultiplesOptions :: Lens.Lens' PieChartConfiguration (Prelude.Maybe SmallMultiplesOptions)
pieChartConfiguration_smallMultiplesOptions :: Lens' PieChartConfiguration (Maybe SmallMultiplesOptions)
pieChartConfiguration_smallMultiplesOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PieChartConfiguration' {Maybe SmallMultiplesOptions
smallMultiplesOptions :: Maybe SmallMultiplesOptions
$sel:smallMultiplesOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe SmallMultiplesOptions
smallMultiplesOptions} -> Maybe SmallMultiplesOptions
smallMultiplesOptions) (\s :: PieChartConfiguration
s@PieChartConfiguration' {} Maybe SmallMultiplesOptions
a -> PieChartConfiguration
s {$sel:smallMultiplesOptions:PieChartConfiguration' :: Maybe SmallMultiplesOptions
smallMultiplesOptions = Maybe SmallMultiplesOptions
a} :: PieChartConfiguration)

-- | The sort configuration of a pie chart.
pieChartConfiguration_sortConfiguration :: Lens.Lens' PieChartConfiguration (Prelude.Maybe PieChartSortConfiguration)
pieChartConfiguration_sortConfiguration :: Lens' PieChartConfiguration (Maybe PieChartSortConfiguration)
pieChartConfiguration_sortConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PieChartConfiguration' {Maybe PieChartSortConfiguration
sortConfiguration :: Maybe PieChartSortConfiguration
$sel:sortConfiguration:PieChartConfiguration' :: PieChartConfiguration -> Maybe PieChartSortConfiguration
sortConfiguration} -> Maybe PieChartSortConfiguration
sortConfiguration) (\s :: PieChartConfiguration
s@PieChartConfiguration' {} Maybe PieChartSortConfiguration
a -> PieChartConfiguration
s {$sel:sortConfiguration:PieChartConfiguration' :: Maybe PieChartSortConfiguration
sortConfiguration = Maybe PieChartSortConfiguration
a} :: PieChartConfiguration)

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

-- | The label options for the value that is displayed in a pie chart.
pieChartConfiguration_valueLabelOptions :: Lens.Lens' PieChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
pieChartConfiguration_valueLabelOptions :: Lens' PieChartConfiguration (Maybe ChartAxisLabelOptions)
pieChartConfiguration_valueLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PieChartConfiguration' {Maybe ChartAxisLabelOptions
valueLabelOptions :: Maybe ChartAxisLabelOptions
$sel:valueLabelOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe ChartAxisLabelOptions
valueLabelOptions} -> Maybe ChartAxisLabelOptions
valueLabelOptions) (\s :: PieChartConfiguration
s@PieChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> PieChartConfiguration
s {$sel:valueLabelOptions:PieChartConfiguration' :: Maybe ChartAxisLabelOptions
valueLabelOptions = Maybe ChartAxisLabelOptions
a} :: PieChartConfiguration)

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

instance Data.FromJSON PieChartConfiguration where
  parseJSON :: Value -> Parser PieChartConfiguration
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"PieChartConfiguration"
      ( \Object
x ->
          Maybe ChartAxisLabelOptions
-> Maybe (NonEmpty ContributionAnalysisDefault)
-> Maybe DataLabelOptions
-> Maybe DonutOptions
-> Maybe PieChartFieldWells
-> Maybe LegendOptions
-> Maybe SmallMultiplesOptions
-> Maybe PieChartSortConfiguration
-> Maybe TooltipOptions
-> Maybe ChartAxisLabelOptions
-> Maybe VisualPalette
-> PieChartConfiguration
PieChartConfiguration'
            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
"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
"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
"DonutOptions")
            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
"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
"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 PieChartConfiguration where
  hashWithSalt :: Int -> PieChartConfiguration -> Int
hashWithSalt Int
_salt PieChartConfiguration' {Maybe (NonEmpty ContributionAnalysisDefault)
Maybe PieChartSortConfiguration
Maybe PieChartFieldWells
Maybe SmallMultiplesOptions
Maybe LegendOptions
Maybe DonutOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe VisualPalette
visualPalette :: Maybe VisualPalette
valueLabelOptions :: Maybe ChartAxisLabelOptions
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe PieChartSortConfiguration
smallMultiplesOptions :: Maybe SmallMultiplesOptions
legend :: Maybe LegendOptions
fieldWells :: Maybe PieChartFieldWells
donutOptions :: Maybe DonutOptions
dataLabels :: Maybe DataLabelOptions
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
categoryLabelOptions :: Maybe ChartAxisLabelOptions
$sel:visualPalette:PieChartConfiguration' :: PieChartConfiguration -> Maybe VisualPalette
$sel:valueLabelOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:tooltip:PieChartConfiguration' :: PieChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:PieChartConfiguration' :: PieChartConfiguration -> Maybe PieChartSortConfiguration
$sel:smallMultiplesOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe SmallMultiplesOptions
$sel:legend:PieChartConfiguration' :: PieChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:PieChartConfiguration' :: PieChartConfiguration -> Maybe PieChartFieldWells
$sel:donutOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe DonutOptions
$sel:dataLabels:PieChartConfiguration' :: PieChartConfiguration -> Maybe DataLabelOptions
$sel:contributionAnalysisDefaults:PieChartConfiguration' :: PieChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
$sel:categoryLabelOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe ChartAxisLabelOptions
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
categoryLabelOptions
      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 DonutOptions
donutOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PieChartFieldWells
fieldWells
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LegendOptions
legend
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SmallMultiplesOptions
smallMultiplesOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PieChartSortConfiguration
sortConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TooltipOptions
tooltip
      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 PieChartConfiguration where
  rnf :: PieChartConfiguration -> ()
rnf PieChartConfiguration' {Maybe (NonEmpty ContributionAnalysisDefault)
Maybe PieChartSortConfiguration
Maybe PieChartFieldWells
Maybe SmallMultiplesOptions
Maybe LegendOptions
Maybe DonutOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe VisualPalette
visualPalette :: Maybe VisualPalette
valueLabelOptions :: Maybe ChartAxisLabelOptions
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe PieChartSortConfiguration
smallMultiplesOptions :: Maybe SmallMultiplesOptions
legend :: Maybe LegendOptions
fieldWells :: Maybe PieChartFieldWells
donutOptions :: Maybe DonutOptions
dataLabels :: Maybe DataLabelOptions
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
categoryLabelOptions :: Maybe ChartAxisLabelOptions
$sel:visualPalette:PieChartConfiguration' :: PieChartConfiguration -> Maybe VisualPalette
$sel:valueLabelOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:tooltip:PieChartConfiguration' :: PieChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:PieChartConfiguration' :: PieChartConfiguration -> Maybe PieChartSortConfiguration
$sel:smallMultiplesOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe SmallMultiplesOptions
$sel:legend:PieChartConfiguration' :: PieChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:PieChartConfiguration' :: PieChartConfiguration -> Maybe PieChartFieldWells
$sel:donutOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe DonutOptions
$sel:dataLabels:PieChartConfiguration' :: PieChartConfiguration -> Maybe DataLabelOptions
$sel:contributionAnalysisDefaults:PieChartConfiguration' :: PieChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
$sel:categoryLabelOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe ChartAxisLabelOptions
..} =
    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 (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 DonutOptions
donutOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PieChartFieldWells
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 SmallMultiplesOptions
smallMultiplesOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PieChartSortConfiguration
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 ChartAxisLabelOptions
valueLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VisualPalette
visualPalette

instance Data.ToJSON PieChartConfiguration where
  toJSON :: PieChartConfiguration -> Value
toJSON PieChartConfiguration' {Maybe (NonEmpty ContributionAnalysisDefault)
Maybe PieChartSortConfiguration
Maybe PieChartFieldWells
Maybe SmallMultiplesOptions
Maybe LegendOptions
Maybe DonutOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe VisualPalette
visualPalette :: Maybe VisualPalette
valueLabelOptions :: Maybe ChartAxisLabelOptions
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe PieChartSortConfiguration
smallMultiplesOptions :: Maybe SmallMultiplesOptions
legend :: Maybe LegendOptions
fieldWells :: Maybe PieChartFieldWells
donutOptions :: Maybe DonutOptions
dataLabels :: Maybe DataLabelOptions
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
categoryLabelOptions :: Maybe ChartAxisLabelOptions
$sel:visualPalette:PieChartConfiguration' :: PieChartConfiguration -> Maybe VisualPalette
$sel:valueLabelOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:tooltip:PieChartConfiguration' :: PieChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:PieChartConfiguration' :: PieChartConfiguration -> Maybe PieChartSortConfiguration
$sel:smallMultiplesOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe SmallMultiplesOptions
$sel:legend:PieChartConfiguration' :: PieChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:PieChartConfiguration' :: PieChartConfiguration -> Maybe PieChartFieldWells
$sel:donutOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe DonutOptions
$sel:dataLabels:PieChartConfiguration' :: PieChartConfiguration -> Maybe DataLabelOptions
$sel:contributionAnalysisDefaults:PieChartConfiguration' :: PieChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
$sel:categoryLabelOptions:PieChartConfiguration' :: PieChartConfiguration -> Maybe ChartAxisLabelOptions
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (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
"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
"DonutOptions" 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 DonutOptions
donutOptions,
            (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 PieChartFieldWells
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
"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 PieChartSortConfiguration
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
"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
          ]
      )