{-# 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.TreeMapConfiguration
-- 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.TreeMapConfiguration 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.ColorScale
import Amazonka.QuickSight.Types.DataLabelOptions
import Amazonka.QuickSight.Types.LegendOptions
import Amazonka.QuickSight.Types.TooltipOptions
import Amazonka.QuickSight.Types.TreeMapFieldWells
import Amazonka.QuickSight.Types.TreeMapSortConfiguration

-- | The configuration of a tree map.
--
-- /See:/ 'newTreeMapConfiguration' smart constructor.
data TreeMapConfiguration = TreeMapConfiguration'
  { -- | The label options (label text, label visibility) for the colors
    -- displayed in a tree map.
    TreeMapConfiguration -> Maybe ChartAxisLabelOptions
colorLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The color options (gradient color, point of divergence) of a tree map.
    TreeMapConfiguration -> Maybe ColorScale
colorScale :: Prelude.Maybe ColorScale,
    -- | The options that determine if visual data labels are displayed.
    TreeMapConfiguration -> Maybe DataLabelOptions
dataLabels :: Prelude.Maybe DataLabelOptions,
    -- | The field wells of the visual.
    TreeMapConfiguration -> Maybe TreeMapFieldWells
fieldWells :: Prelude.Maybe TreeMapFieldWells,
    -- | The label options (label text, label visibility) of the groups that are
    -- displayed in a tree map.
    TreeMapConfiguration -> Maybe ChartAxisLabelOptions
groupLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The legend display setup of the visual.
    TreeMapConfiguration -> Maybe LegendOptions
legend :: Prelude.Maybe LegendOptions,
    -- | The label options (label text, label visibility) of the sizes that are
    -- displayed in a tree map.
    TreeMapConfiguration -> Maybe ChartAxisLabelOptions
sizeLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The sort configuration of a tree map.
    TreeMapConfiguration -> Maybe TreeMapSortConfiguration
sortConfiguration :: Prelude.Maybe TreeMapSortConfiguration,
    -- | The tooltip display setup of the visual.
    TreeMapConfiguration -> Maybe TooltipOptions
tooltip :: Prelude.Maybe TooltipOptions
  }
  deriving (TreeMapConfiguration -> TreeMapConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TreeMapConfiguration -> TreeMapConfiguration -> Bool
$c/= :: TreeMapConfiguration -> TreeMapConfiguration -> Bool
== :: TreeMapConfiguration -> TreeMapConfiguration -> Bool
$c== :: TreeMapConfiguration -> TreeMapConfiguration -> Bool
Prelude.Eq, Int -> TreeMapConfiguration -> ShowS
[TreeMapConfiguration] -> ShowS
TreeMapConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TreeMapConfiguration] -> ShowS
$cshowList :: [TreeMapConfiguration] -> ShowS
show :: TreeMapConfiguration -> String
$cshow :: TreeMapConfiguration -> String
showsPrec :: Int -> TreeMapConfiguration -> ShowS
$cshowsPrec :: Int -> TreeMapConfiguration -> ShowS
Prelude.Show, forall x. Rep TreeMapConfiguration x -> TreeMapConfiguration
forall x. TreeMapConfiguration -> Rep TreeMapConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TreeMapConfiguration x -> TreeMapConfiguration
$cfrom :: forall x. TreeMapConfiguration -> Rep TreeMapConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'TreeMapConfiguration' 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:
--
-- 'colorLabelOptions', 'treeMapConfiguration_colorLabelOptions' - The label options (label text, label visibility) for the colors
-- displayed in a tree map.
--
-- 'colorScale', 'treeMapConfiguration_colorScale' - The color options (gradient color, point of divergence) of a tree map.
--
-- 'dataLabels', 'treeMapConfiguration_dataLabels' - The options that determine if visual data labels are displayed.
--
-- 'fieldWells', 'treeMapConfiguration_fieldWells' - The field wells of the visual.
--
-- 'groupLabelOptions', 'treeMapConfiguration_groupLabelOptions' - The label options (label text, label visibility) of the groups that are
-- displayed in a tree map.
--
-- 'legend', 'treeMapConfiguration_legend' - The legend display setup of the visual.
--
-- 'sizeLabelOptions', 'treeMapConfiguration_sizeLabelOptions' - The label options (label text, label visibility) of the sizes that are
-- displayed in a tree map.
--
-- 'sortConfiguration', 'treeMapConfiguration_sortConfiguration' - The sort configuration of a tree map.
--
-- 'tooltip', 'treeMapConfiguration_tooltip' - The tooltip display setup of the visual.
newTreeMapConfiguration ::
  TreeMapConfiguration
newTreeMapConfiguration :: TreeMapConfiguration
newTreeMapConfiguration =
  TreeMapConfiguration'
    { $sel:colorLabelOptions:TreeMapConfiguration' :: Maybe ChartAxisLabelOptions
colorLabelOptions =
        forall a. Maybe a
Prelude.Nothing,
      $sel:colorScale:TreeMapConfiguration' :: Maybe ColorScale
colorScale = forall a. Maybe a
Prelude.Nothing,
      $sel:dataLabels:TreeMapConfiguration' :: Maybe DataLabelOptions
dataLabels = forall a. Maybe a
Prelude.Nothing,
      $sel:fieldWells:TreeMapConfiguration' :: Maybe TreeMapFieldWells
fieldWells = forall a. Maybe a
Prelude.Nothing,
      $sel:groupLabelOptions:TreeMapConfiguration' :: Maybe ChartAxisLabelOptions
groupLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:legend:TreeMapConfiguration' :: Maybe LegendOptions
legend = forall a. Maybe a
Prelude.Nothing,
      $sel:sizeLabelOptions:TreeMapConfiguration' :: Maybe ChartAxisLabelOptions
sizeLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:sortConfiguration:TreeMapConfiguration' :: Maybe TreeMapSortConfiguration
sortConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:tooltip:TreeMapConfiguration' :: Maybe TooltipOptions
tooltip = forall a. Maybe a
Prelude.Nothing
    }

-- | The label options (label text, label visibility) for the colors
-- displayed in a tree map.
treeMapConfiguration_colorLabelOptions :: Lens.Lens' TreeMapConfiguration (Prelude.Maybe ChartAxisLabelOptions)
treeMapConfiguration_colorLabelOptions :: Lens' TreeMapConfiguration (Maybe ChartAxisLabelOptions)
treeMapConfiguration_colorLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TreeMapConfiguration' {Maybe ChartAxisLabelOptions
colorLabelOptions :: Maybe ChartAxisLabelOptions
$sel:colorLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
colorLabelOptions} -> Maybe ChartAxisLabelOptions
colorLabelOptions) (\s :: TreeMapConfiguration
s@TreeMapConfiguration' {} Maybe ChartAxisLabelOptions
a -> TreeMapConfiguration
s {$sel:colorLabelOptions:TreeMapConfiguration' :: Maybe ChartAxisLabelOptions
colorLabelOptions = Maybe ChartAxisLabelOptions
a} :: TreeMapConfiguration)

-- | The color options (gradient color, point of divergence) of a tree map.
treeMapConfiguration_colorScale :: Lens.Lens' TreeMapConfiguration (Prelude.Maybe ColorScale)
treeMapConfiguration_colorScale :: Lens' TreeMapConfiguration (Maybe ColorScale)
treeMapConfiguration_colorScale = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TreeMapConfiguration' {Maybe ColorScale
colorScale :: Maybe ColorScale
$sel:colorScale:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ColorScale
colorScale} -> Maybe ColorScale
colorScale) (\s :: TreeMapConfiguration
s@TreeMapConfiguration' {} Maybe ColorScale
a -> TreeMapConfiguration
s {$sel:colorScale:TreeMapConfiguration' :: Maybe ColorScale
colorScale = Maybe ColorScale
a} :: TreeMapConfiguration)

-- | The options that determine if visual data labels are displayed.
treeMapConfiguration_dataLabels :: Lens.Lens' TreeMapConfiguration (Prelude.Maybe DataLabelOptions)
treeMapConfiguration_dataLabels :: Lens' TreeMapConfiguration (Maybe DataLabelOptions)
treeMapConfiguration_dataLabels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TreeMapConfiguration' {Maybe DataLabelOptions
dataLabels :: Maybe DataLabelOptions
$sel:dataLabels:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe DataLabelOptions
dataLabels} -> Maybe DataLabelOptions
dataLabels) (\s :: TreeMapConfiguration
s@TreeMapConfiguration' {} Maybe DataLabelOptions
a -> TreeMapConfiguration
s {$sel:dataLabels:TreeMapConfiguration' :: Maybe DataLabelOptions
dataLabels = Maybe DataLabelOptions
a} :: TreeMapConfiguration)

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

-- | The label options (label text, label visibility) of the groups that are
-- displayed in a tree map.
treeMapConfiguration_groupLabelOptions :: Lens.Lens' TreeMapConfiguration (Prelude.Maybe ChartAxisLabelOptions)
treeMapConfiguration_groupLabelOptions :: Lens' TreeMapConfiguration (Maybe ChartAxisLabelOptions)
treeMapConfiguration_groupLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TreeMapConfiguration' {Maybe ChartAxisLabelOptions
groupLabelOptions :: Maybe ChartAxisLabelOptions
$sel:groupLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
groupLabelOptions} -> Maybe ChartAxisLabelOptions
groupLabelOptions) (\s :: TreeMapConfiguration
s@TreeMapConfiguration' {} Maybe ChartAxisLabelOptions
a -> TreeMapConfiguration
s {$sel:groupLabelOptions:TreeMapConfiguration' :: Maybe ChartAxisLabelOptions
groupLabelOptions = Maybe ChartAxisLabelOptions
a} :: TreeMapConfiguration)

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

-- | The label options (label text, label visibility) of the sizes that are
-- displayed in a tree map.
treeMapConfiguration_sizeLabelOptions :: Lens.Lens' TreeMapConfiguration (Prelude.Maybe ChartAxisLabelOptions)
treeMapConfiguration_sizeLabelOptions :: Lens' TreeMapConfiguration (Maybe ChartAxisLabelOptions)
treeMapConfiguration_sizeLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TreeMapConfiguration' {Maybe ChartAxisLabelOptions
sizeLabelOptions :: Maybe ChartAxisLabelOptions
$sel:sizeLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
sizeLabelOptions} -> Maybe ChartAxisLabelOptions
sizeLabelOptions) (\s :: TreeMapConfiguration
s@TreeMapConfiguration' {} Maybe ChartAxisLabelOptions
a -> TreeMapConfiguration
s {$sel:sizeLabelOptions:TreeMapConfiguration' :: Maybe ChartAxisLabelOptions
sizeLabelOptions = Maybe ChartAxisLabelOptions
a} :: TreeMapConfiguration)

-- | The sort configuration of a tree map.
treeMapConfiguration_sortConfiguration :: Lens.Lens' TreeMapConfiguration (Prelude.Maybe TreeMapSortConfiguration)
treeMapConfiguration_sortConfiguration :: Lens' TreeMapConfiguration (Maybe TreeMapSortConfiguration)
treeMapConfiguration_sortConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TreeMapConfiguration' {Maybe TreeMapSortConfiguration
sortConfiguration :: Maybe TreeMapSortConfiguration
$sel:sortConfiguration:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe TreeMapSortConfiguration
sortConfiguration} -> Maybe TreeMapSortConfiguration
sortConfiguration) (\s :: TreeMapConfiguration
s@TreeMapConfiguration' {} Maybe TreeMapSortConfiguration
a -> TreeMapConfiguration
s {$sel:sortConfiguration:TreeMapConfiguration' :: Maybe TreeMapSortConfiguration
sortConfiguration = Maybe TreeMapSortConfiguration
a} :: TreeMapConfiguration)

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

instance Data.FromJSON TreeMapConfiguration where
  parseJSON :: Value -> Parser TreeMapConfiguration
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"TreeMapConfiguration"
      ( \Object
x ->
          Maybe ChartAxisLabelOptions
-> Maybe ColorScale
-> Maybe DataLabelOptions
-> Maybe TreeMapFieldWells
-> Maybe ChartAxisLabelOptions
-> Maybe LegendOptions
-> Maybe ChartAxisLabelOptions
-> Maybe TreeMapSortConfiguration
-> Maybe TooltipOptions
-> TreeMapConfiguration
TreeMapConfiguration'
            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
"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
"ColorScale")
            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
"GroupLabelOptions")
            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
"SizeLabelOptions")
            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")
      )

instance Prelude.Hashable TreeMapConfiguration where
  hashWithSalt :: Int -> TreeMapConfiguration -> Int
hashWithSalt Int
_salt TreeMapConfiguration' {Maybe ColorScale
Maybe TreeMapSortConfiguration
Maybe TreeMapFieldWells
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe TreeMapSortConfiguration
sizeLabelOptions :: Maybe ChartAxisLabelOptions
legend :: Maybe LegendOptions
groupLabelOptions :: Maybe ChartAxisLabelOptions
fieldWells :: Maybe TreeMapFieldWells
dataLabels :: Maybe DataLabelOptions
colorScale :: Maybe ColorScale
colorLabelOptions :: Maybe ChartAxisLabelOptions
$sel:tooltip:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe TreeMapSortConfiguration
$sel:sizeLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
$sel:legend:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe LegendOptions
$sel:groupLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
$sel:fieldWells:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe TreeMapFieldWells
$sel:dataLabels:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe DataLabelOptions
$sel:colorScale:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ColorScale
$sel:colorLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
colorLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ColorScale
colorScale
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataLabelOptions
dataLabels
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TreeMapFieldWells
fieldWells
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
groupLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LegendOptions
legend
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
sizeLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TreeMapSortConfiguration
sortConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TooltipOptions
tooltip

instance Prelude.NFData TreeMapConfiguration where
  rnf :: TreeMapConfiguration -> ()
rnf TreeMapConfiguration' {Maybe ColorScale
Maybe TreeMapSortConfiguration
Maybe TreeMapFieldWells
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe TreeMapSortConfiguration
sizeLabelOptions :: Maybe ChartAxisLabelOptions
legend :: Maybe LegendOptions
groupLabelOptions :: Maybe ChartAxisLabelOptions
fieldWells :: Maybe TreeMapFieldWells
dataLabels :: Maybe DataLabelOptions
colorScale :: Maybe ColorScale
colorLabelOptions :: Maybe ChartAxisLabelOptions
$sel:tooltip:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe TreeMapSortConfiguration
$sel:sizeLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
$sel:legend:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe LegendOptions
$sel:groupLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
$sel:fieldWells:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe TreeMapFieldWells
$sel:dataLabels:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe DataLabelOptions
$sel:colorScale:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ColorScale
$sel:colorLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
..} =
    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 ColorScale
colorScale
      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 TreeMapFieldWells
fieldWells
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
groupLabelOptions
      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 ChartAxisLabelOptions
sizeLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TreeMapSortConfiguration
sortConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TooltipOptions
tooltip

instance Data.ToJSON TreeMapConfiguration where
  toJSON :: TreeMapConfiguration -> Value
toJSON TreeMapConfiguration' {Maybe ColorScale
Maybe TreeMapSortConfiguration
Maybe TreeMapFieldWells
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe TreeMapSortConfiguration
sizeLabelOptions :: Maybe ChartAxisLabelOptions
legend :: Maybe LegendOptions
groupLabelOptions :: Maybe ChartAxisLabelOptions
fieldWells :: Maybe TreeMapFieldWells
dataLabels :: Maybe DataLabelOptions
colorScale :: Maybe ColorScale
colorLabelOptions :: Maybe ChartAxisLabelOptions
$sel:tooltip:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe TreeMapSortConfiguration
$sel:sizeLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
$sel:legend:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe LegendOptions
$sel:groupLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
$sel:fieldWells:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe TreeMapFieldWells
$sel:dataLabels:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe DataLabelOptions
$sel:colorScale:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ColorScale
$sel:colorLabelOptions:TreeMapConfiguration' :: TreeMapConfiguration -> Maybe ChartAxisLabelOptions
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (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
"ColorScale" 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 ColorScale
colorScale,
            (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 TreeMapFieldWells
fieldWells,
            (Key
"GroupLabelOptions" 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
groupLabelOptions,
            (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
"SizeLabelOptions" 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
sizeLabelOptions,
            (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 TreeMapSortConfiguration
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
          ]
      )