{-# 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.FunnelChartDataLabelOptions
-- 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.FunnelChartDataLabelOptions 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.DataLabelPosition
import Amazonka.QuickSight.Types.FontConfiguration
import Amazonka.QuickSight.Types.FunnelChartMeasureDataLabelStyle
import Amazonka.QuickSight.Types.Visibility

-- | The options that determine the presentation of the data labels.
--
-- /See:/ 'newFunnelChartDataLabelOptions' smart constructor.
data FunnelChartDataLabelOptions = FunnelChartDataLabelOptions'
  { -- | The visibility of the category labels within the data labels.
    FunnelChartDataLabelOptions -> Maybe Visibility
categoryLabelVisibility :: Prelude.Maybe Visibility,
    -- | The color of the data label text.
    FunnelChartDataLabelOptions -> Maybe Text
labelColor :: Prelude.Maybe Prelude.Text,
    -- | The font configuration for the data labels.
    --
    -- Only the @FontSize@ attribute of the font configuration is used for data
    -- labels.
    FunnelChartDataLabelOptions -> Maybe FontConfiguration
labelFontConfiguration :: Prelude.Maybe FontConfiguration,
    -- | Determines the style of the metric labels.
    FunnelChartDataLabelOptions
-> Maybe FunnelChartMeasureDataLabelStyle
measureDataLabelStyle :: Prelude.Maybe FunnelChartMeasureDataLabelStyle,
    -- | The visibility of the measure labels within the data labels.
    FunnelChartDataLabelOptions -> Maybe Visibility
measureLabelVisibility :: Prelude.Maybe Visibility,
    -- | Determines the positioning of the data label relative to a section of
    -- the funnel.
    FunnelChartDataLabelOptions -> Maybe DataLabelPosition
position :: Prelude.Maybe DataLabelPosition,
    -- | The visibility option that determines if data labels are displayed.
    FunnelChartDataLabelOptions -> Maybe Visibility
visibility :: Prelude.Maybe Visibility
  }
  deriving (FunnelChartDataLabelOptions -> FunnelChartDataLabelOptions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FunnelChartDataLabelOptions -> FunnelChartDataLabelOptions -> Bool
$c/= :: FunnelChartDataLabelOptions -> FunnelChartDataLabelOptions -> Bool
== :: FunnelChartDataLabelOptions -> FunnelChartDataLabelOptions -> Bool
$c== :: FunnelChartDataLabelOptions -> FunnelChartDataLabelOptions -> Bool
Prelude.Eq, ReadPrec [FunnelChartDataLabelOptions]
ReadPrec FunnelChartDataLabelOptions
Int -> ReadS FunnelChartDataLabelOptions
ReadS [FunnelChartDataLabelOptions]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [FunnelChartDataLabelOptions]
$creadListPrec :: ReadPrec [FunnelChartDataLabelOptions]
readPrec :: ReadPrec FunnelChartDataLabelOptions
$creadPrec :: ReadPrec FunnelChartDataLabelOptions
readList :: ReadS [FunnelChartDataLabelOptions]
$creadList :: ReadS [FunnelChartDataLabelOptions]
readsPrec :: Int -> ReadS FunnelChartDataLabelOptions
$creadsPrec :: Int -> ReadS FunnelChartDataLabelOptions
Prelude.Read, Int -> FunnelChartDataLabelOptions -> ShowS
[FunnelChartDataLabelOptions] -> ShowS
FunnelChartDataLabelOptions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FunnelChartDataLabelOptions] -> ShowS
$cshowList :: [FunnelChartDataLabelOptions] -> ShowS
show :: FunnelChartDataLabelOptions -> String
$cshow :: FunnelChartDataLabelOptions -> String
showsPrec :: Int -> FunnelChartDataLabelOptions -> ShowS
$cshowsPrec :: Int -> FunnelChartDataLabelOptions -> ShowS
Prelude.Show, forall x.
Rep FunnelChartDataLabelOptions x -> FunnelChartDataLabelOptions
forall x.
FunnelChartDataLabelOptions -> Rep FunnelChartDataLabelOptions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep FunnelChartDataLabelOptions x -> FunnelChartDataLabelOptions
$cfrom :: forall x.
FunnelChartDataLabelOptions -> Rep FunnelChartDataLabelOptions x
Prelude.Generic)

-- |
-- Create a value of 'FunnelChartDataLabelOptions' 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:
--
-- 'categoryLabelVisibility', 'funnelChartDataLabelOptions_categoryLabelVisibility' - The visibility of the category labels within the data labels.
--
-- 'labelColor', 'funnelChartDataLabelOptions_labelColor' - The color of the data label text.
--
-- 'labelFontConfiguration', 'funnelChartDataLabelOptions_labelFontConfiguration' - The font configuration for the data labels.
--
-- Only the @FontSize@ attribute of the font configuration is used for data
-- labels.
--
-- 'measureDataLabelStyle', 'funnelChartDataLabelOptions_measureDataLabelStyle' - Determines the style of the metric labels.
--
-- 'measureLabelVisibility', 'funnelChartDataLabelOptions_measureLabelVisibility' - The visibility of the measure labels within the data labels.
--
-- 'position', 'funnelChartDataLabelOptions_position' - Determines the positioning of the data label relative to a section of
-- the funnel.
--
-- 'visibility', 'funnelChartDataLabelOptions_visibility' - The visibility option that determines if data labels are displayed.
newFunnelChartDataLabelOptions ::
  FunnelChartDataLabelOptions
newFunnelChartDataLabelOptions :: FunnelChartDataLabelOptions
newFunnelChartDataLabelOptions =
  FunnelChartDataLabelOptions'
    { $sel:categoryLabelVisibility:FunnelChartDataLabelOptions' :: Maybe Visibility
categoryLabelVisibility =
        forall a. Maybe a
Prelude.Nothing,
      $sel:labelColor:FunnelChartDataLabelOptions' :: Maybe Text
labelColor = forall a. Maybe a
Prelude.Nothing,
      $sel:labelFontConfiguration:FunnelChartDataLabelOptions' :: Maybe FontConfiguration
labelFontConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:measureDataLabelStyle:FunnelChartDataLabelOptions' :: Maybe FunnelChartMeasureDataLabelStyle
measureDataLabelStyle = forall a. Maybe a
Prelude.Nothing,
      $sel:measureLabelVisibility:FunnelChartDataLabelOptions' :: Maybe Visibility
measureLabelVisibility = forall a. Maybe a
Prelude.Nothing,
      $sel:position:FunnelChartDataLabelOptions' :: Maybe DataLabelPosition
position = forall a. Maybe a
Prelude.Nothing,
      $sel:visibility:FunnelChartDataLabelOptions' :: Maybe Visibility
visibility = forall a. Maybe a
Prelude.Nothing
    }

-- | The visibility of the category labels within the data labels.
funnelChartDataLabelOptions_categoryLabelVisibility :: Lens.Lens' FunnelChartDataLabelOptions (Prelude.Maybe Visibility)
funnelChartDataLabelOptions_categoryLabelVisibility :: Lens' FunnelChartDataLabelOptions (Maybe Visibility)
funnelChartDataLabelOptions_categoryLabelVisibility = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunnelChartDataLabelOptions' {Maybe Visibility
categoryLabelVisibility :: Maybe Visibility
$sel:categoryLabelVisibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
categoryLabelVisibility} -> Maybe Visibility
categoryLabelVisibility) (\s :: FunnelChartDataLabelOptions
s@FunnelChartDataLabelOptions' {} Maybe Visibility
a -> FunnelChartDataLabelOptions
s {$sel:categoryLabelVisibility:FunnelChartDataLabelOptions' :: Maybe Visibility
categoryLabelVisibility = Maybe Visibility
a} :: FunnelChartDataLabelOptions)

-- | The color of the data label text.
funnelChartDataLabelOptions_labelColor :: Lens.Lens' FunnelChartDataLabelOptions (Prelude.Maybe Prelude.Text)
funnelChartDataLabelOptions_labelColor :: Lens' FunnelChartDataLabelOptions (Maybe Text)
funnelChartDataLabelOptions_labelColor = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunnelChartDataLabelOptions' {Maybe Text
labelColor :: Maybe Text
$sel:labelColor:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Text
labelColor} -> Maybe Text
labelColor) (\s :: FunnelChartDataLabelOptions
s@FunnelChartDataLabelOptions' {} Maybe Text
a -> FunnelChartDataLabelOptions
s {$sel:labelColor:FunnelChartDataLabelOptions' :: Maybe Text
labelColor = Maybe Text
a} :: FunnelChartDataLabelOptions)

-- | The font configuration for the data labels.
--
-- Only the @FontSize@ attribute of the font configuration is used for data
-- labels.
funnelChartDataLabelOptions_labelFontConfiguration :: Lens.Lens' FunnelChartDataLabelOptions (Prelude.Maybe FontConfiguration)
funnelChartDataLabelOptions_labelFontConfiguration :: Lens' FunnelChartDataLabelOptions (Maybe FontConfiguration)
funnelChartDataLabelOptions_labelFontConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunnelChartDataLabelOptions' {Maybe FontConfiguration
labelFontConfiguration :: Maybe FontConfiguration
$sel:labelFontConfiguration:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe FontConfiguration
labelFontConfiguration} -> Maybe FontConfiguration
labelFontConfiguration) (\s :: FunnelChartDataLabelOptions
s@FunnelChartDataLabelOptions' {} Maybe FontConfiguration
a -> FunnelChartDataLabelOptions
s {$sel:labelFontConfiguration:FunnelChartDataLabelOptions' :: Maybe FontConfiguration
labelFontConfiguration = Maybe FontConfiguration
a} :: FunnelChartDataLabelOptions)

-- | Determines the style of the metric labels.
funnelChartDataLabelOptions_measureDataLabelStyle :: Lens.Lens' FunnelChartDataLabelOptions (Prelude.Maybe FunnelChartMeasureDataLabelStyle)
funnelChartDataLabelOptions_measureDataLabelStyle :: Lens'
  FunnelChartDataLabelOptions
  (Maybe FunnelChartMeasureDataLabelStyle)
funnelChartDataLabelOptions_measureDataLabelStyle = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunnelChartDataLabelOptions' {Maybe FunnelChartMeasureDataLabelStyle
measureDataLabelStyle :: Maybe FunnelChartMeasureDataLabelStyle
$sel:measureDataLabelStyle:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions
-> Maybe FunnelChartMeasureDataLabelStyle
measureDataLabelStyle} -> Maybe FunnelChartMeasureDataLabelStyle
measureDataLabelStyle) (\s :: FunnelChartDataLabelOptions
s@FunnelChartDataLabelOptions' {} Maybe FunnelChartMeasureDataLabelStyle
a -> FunnelChartDataLabelOptions
s {$sel:measureDataLabelStyle:FunnelChartDataLabelOptions' :: Maybe FunnelChartMeasureDataLabelStyle
measureDataLabelStyle = Maybe FunnelChartMeasureDataLabelStyle
a} :: FunnelChartDataLabelOptions)

-- | The visibility of the measure labels within the data labels.
funnelChartDataLabelOptions_measureLabelVisibility :: Lens.Lens' FunnelChartDataLabelOptions (Prelude.Maybe Visibility)
funnelChartDataLabelOptions_measureLabelVisibility :: Lens' FunnelChartDataLabelOptions (Maybe Visibility)
funnelChartDataLabelOptions_measureLabelVisibility = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunnelChartDataLabelOptions' {Maybe Visibility
measureLabelVisibility :: Maybe Visibility
$sel:measureLabelVisibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
measureLabelVisibility} -> Maybe Visibility
measureLabelVisibility) (\s :: FunnelChartDataLabelOptions
s@FunnelChartDataLabelOptions' {} Maybe Visibility
a -> FunnelChartDataLabelOptions
s {$sel:measureLabelVisibility:FunnelChartDataLabelOptions' :: Maybe Visibility
measureLabelVisibility = Maybe Visibility
a} :: FunnelChartDataLabelOptions)

-- | Determines the positioning of the data label relative to a section of
-- the funnel.
funnelChartDataLabelOptions_position :: Lens.Lens' FunnelChartDataLabelOptions (Prelude.Maybe DataLabelPosition)
funnelChartDataLabelOptions_position :: Lens' FunnelChartDataLabelOptions (Maybe DataLabelPosition)
funnelChartDataLabelOptions_position = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunnelChartDataLabelOptions' {Maybe DataLabelPosition
position :: Maybe DataLabelPosition
$sel:position:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe DataLabelPosition
position} -> Maybe DataLabelPosition
position) (\s :: FunnelChartDataLabelOptions
s@FunnelChartDataLabelOptions' {} Maybe DataLabelPosition
a -> FunnelChartDataLabelOptions
s {$sel:position:FunnelChartDataLabelOptions' :: Maybe DataLabelPosition
position = Maybe DataLabelPosition
a} :: FunnelChartDataLabelOptions)

-- | The visibility option that determines if data labels are displayed.
funnelChartDataLabelOptions_visibility :: Lens.Lens' FunnelChartDataLabelOptions (Prelude.Maybe Visibility)
funnelChartDataLabelOptions_visibility :: Lens' FunnelChartDataLabelOptions (Maybe Visibility)
funnelChartDataLabelOptions_visibility = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FunnelChartDataLabelOptions' {Maybe Visibility
visibility :: Maybe Visibility
$sel:visibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
visibility} -> Maybe Visibility
visibility) (\s :: FunnelChartDataLabelOptions
s@FunnelChartDataLabelOptions' {} Maybe Visibility
a -> FunnelChartDataLabelOptions
s {$sel:visibility:FunnelChartDataLabelOptions' :: Maybe Visibility
visibility = Maybe Visibility
a} :: FunnelChartDataLabelOptions)

instance Data.FromJSON FunnelChartDataLabelOptions where
  parseJSON :: Value -> Parser FunnelChartDataLabelOptions
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"FunnelChartDataLabelOptions"
      ( \Object
x ->
          Maybe Visibility
-> Maybe Text
-> Maybe FontConfiguration
-> Maybe FunnelChartMeasureDataLabelStyle
-> Maybe Visibility
-> Maybe DataLabelPosition
-> Maybe Visibility
-> FunnelChartDataLabelOptions
FunnelChartDataLabelOptions'
            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
"CategoryLabelVisibility")
            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
"LabelColor")
            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
"LabelFontConfiguration")
            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
"MeasureDataLabelStyle")
            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
"MeasureLabelVisibility")
            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
"Position")
            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
"Visibility")
      )

instance Prelude.Hashable FunnelChartDataLabelOptions where
  hashWithSalt :: Int -> FunnelChartDataLabelOptions -> Int
hashWithSalt Int
_salt FunnelChartDataLabelOptions' {Maybe Text
Maybe DataLabelPosition
Maybe FunnelChartMeasureDataLabelStyle
Maybe FontConfiguration
Maybe Visibility
visibility :: Maybe Visibility
position :: Maybe DataLabelPosition
measureLabelVisibility :: Maybe Visibility
measureDataLabelStyle :: Maybe FunnelChartMeasureDataLabelStyle
labelFontConfiguration :: Maybe FontConfiguration
labelColor :: Maybe Text
categoryLabelVisibility :: Maybe Visibility
$sel:visibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
$sel:position:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe DataLabelPosition
$sel:measureLabelVisibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
$sel:measureDataLabelStyle:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions
-> Maybe FunnelChartMeasureDataLabelStyle
$sel:labelFontConfiguration:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe FontConfiguration
$sel:labelColor:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Text
$sel:categoryLabelVisibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Visibility
categoryLabelVisibility
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
labelColor
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FontConfiguration
labelFontConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FunnelChartMeasureDataLabelStyle
measureDataLabelStyle
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Visibility
measureLabelVisibility
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataLabelPosition
position
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Visibility
visibility

instance Prelude.NFData FunnelChartDataLabelOptions where
  rnf :: FunnelChartDataLabelOptions -> ()
rnf FunnelChartDataLabelOptions' {Maybe Text
Maybe DataLabelPosition
Maybe FunnelChartMeasureDataLabelStyle
Maybe FontConfiguration
Maybe Visibility
visibility :: Maybe Visibility
position :: Maybe DataLabelPosition
measureLabelVisibility :: Maybe Visibility
measureDataLabelStyle :: Maybe FunnelChartMeasureDataLabelStyle
labelFontConfiguration :: Maybe FontConfiguration
labelColor :: Maybe Text
categoryLabelVisibility :: Maybe Visibility
$sel:visibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
$sel:position:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe DataLabelPosition
$sel:measureLabelVisibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
$sel:measureDataLabelStyle:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions
-> Maybe FunnelChartMeasureDataLabelStyle
$sel:labelFontConfiguration:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe FontConfiguration
$sel:labelColor:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Text
$sel:categoryLabelVisibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Visibility
categoryLabelVisibility
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
labelColor
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FontConfiguration
labelFontConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FunnelChartMeasureDataLabelStyle
measureDataLabelStyle
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Visibility
measureLabelVisibility
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataLabelPosition
position
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Visibility
visibility

instance Data.ToJSON FunnelChartDataLabelOptions where
  toJSON :: FunnelChartDataLabelOptions -> Value
toJSON FunnelChartDataLabelOptions' {Maybe Text
Maybe DataLabelPosition
Maybe FunnelChartMeasureDataLabelStyle
Maybe FontConfiguration
Maybe Visibility
visibility :: Maybe Visibility
position :: Maybe DataLabelPosition
measureLabelVisibility :: Maybe Visibility
measureDataLabelStyle :: Maybe FunnelChartMeasureDataLabelStyle
labelFontConfiguration :: Maybe FontConfiguration
labelColor :: Maybe Text
categoryLabelVisibility :: Maybe Visibility
$sel:visibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
$sel:position:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe DataLabelPosition
$sel:measureLabelVisibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
$sel:measureDataLabelStyle:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions
-> Maybe FunnelChartMeasureDataLabelStyle
$sel:labelFontConfiguration:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe FontConfiguration
$sel:labelColor:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Text
$sel:categoryLabelVisibility:FunnelChartDataLabelOptions' :: FunnelChartDataLabelOptions -> Maybe Visibility
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"CategoryLabelVisibility" 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 Visibility
categoryLabelVisibility,
            (Key
"LabelColor" 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 Text
labelColor,
            (Key
"LabelFontConfiguration" 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 FontConfiguration
labelFontConfiguration,
            (Key
"MeasureDataLabelStyle" 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 FunnelChartMeasureDataLabelStyle
measureDataLabelStyle,
            (Key
"MeasureLabelVisibility" 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 Visibility
measureLabelVisibility,
            (Key
"Position" 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 DataLabelPosition
position,
            (Key
"Visibility" 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 Visibility
visibility
          ]
      )