{-# 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.LineChartConfiguration
-- 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.LineChartConfiguration 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.ChartAxisLabelOptions
import Amazonka.QuickSight.Types.ContributionAnalysisDefault
import Amazonka.QuickSight.Types.DataLabelOptions
import Amazonka.QuickSight.Types.ForecastConfiguration
import Amazonka.QuickSight.Types.LegendOptions
import Amazonka.QuickSight.Types.LineChartDefaultSeriesSettings
import Amazonka.QuickSight.Types.LineChartFieldWells
import Amazonka.QuickSight.Types.LineChartSortConfiguration
import Amazonka.QuickSight.Types.LineChartType
import Amazonka.QuickSight.Types.LineSeriesAxisDisplayOptions
import Amazonka.QuickSight.Types.ReferenceLine
import Amazonka.QuickSight.Types.SeriesItem
import Amazonka.QuickSight.Types.SmallMultiplesOptions
import Amazonka.QuickSight.Types.TooltipOptions
import Amazonka.QuickSight.Types.VisualPalette

-- | The configuration of a line chart.
--
-- /See:/ 'newLineChartConfiguration' smart constructor.
data LineChartConfiguration = LineChartConfiguration'
  { -- | The default configuration of a line chart\'s contribution analysis.
    LineChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults :: Prelude.Maybe (Prelude.NonEmpty ContributionAnalysisDefault),
    -- | The data label configuration of a line chart.
    LineChartConfiguration -> Maybe DataLabelOptions
dataLabels :: Prelude.Maybe DataLabelOptions,
    -- | The options that determine the default presentation of all line series
    -- in @LineChartVisual@.
    LineChartConfiguration -> Maybe LineChartDefaultSeriesSettings
defaultSeriesSettings :: Prelude.Maybe LineChartDefaultSeriesSettings,
    -- | The field well configuration of a line chart.
    LineChartConfiguration -> Maybe LineChartFieldWells
fieldWells :: Prelude.Maybe LineChartFieldWells,
    -- | The forecast configuration of a line chart.
    LineChartConfiguration -> Maybe [ForecastConfiguration]
forecastConfigurations :: Prelude.Maybe [ForecastConfiguration],
    -- | The legend configuration of a line chart.
    LineChartConfiguration -> Maybe LegendOptions
legend :: Prelude.Maybe LegendOptions,
    -- | The series axis configuration of a line chart.
    LineChartConfiguration -> Maybe LineSeriesAxisDisplayOptions
primaryYAxisDisplayOptions :: Prelude.Maybe LineSeriesAxisDisplayOptions,
    -- | The options that determine the presentation of the y-axis label.
    LineChartConfiguration -> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The reference lines configuration of a line chart.
    LineChartConfiguration -> Maybe [ReferenceLine]
referenceLines :: Prelude.Maybe [ReferenceLine],
    -- | The series axis configuration of a line chart.
    LineChartConfiguration -> Maybe LineSeriesAxisDisplayOptions
secondaryYAxisDisplayOptions :: Prelude.Maybe LineSeriesAxisDisplayOptions,
    -- | The options that determine the presentation of the secondary y-axis
    -- label.
    LineChartConfiguration -> Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The series item configuration of a line chart.
    LineChartConfiguration -> Maybe [SeriesItem]
series :: Prelude.Maybe [SeriesItem],
    -- | The small multiples setup for the visual.
    LineChartConfiguration -> Maybe SmallMultiplesOptions
smallMultiplesOptions :: Prelude.Maybe SmallMultiplesOptions,
    -- | The sort configuration of a line chart.
    LineChartConfiguration -> Maybe LineChartSortConfiguration
sortConfiguration :: Prelude.Maybe LineChartSortConfiguration,
    -- | The tooltip configuration of a line chart.
    LineChartConfiguration -> Maybe TooltipOptions
tooltip :: Prelude.Maybe TooltipOptions,
    -- | Determines the type of the line chart.
    LineChartConfiguration -> Maybe LineChartType
type' :: Prelude.Maybe LineChartType,
    -- | The visual palette configuration of a line chart.
    LineChartConfiguration -> Maybe VisualPalette
visualPalette :: Prelude.Maybe VisualPalette,
    -- | The options that determine the presentation of the x-axis.
    LineChartConfiguration -> Maybe AxisDisplayOptions
xAxisDisplayOptions :: Prelude.Maybe AxisDisplayOptions,
    -- | The options that determine the presentation of the x-axis label.
    LineChartConfiguration -> Maybe ChartAxisLabelOptions
xAxisLabelOptions :: Prelude.Maybe ChartAxisLabelOptions
  }
  deriving (LineChartConfiguration -> LineChartConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LineChartConfiguration -> LineChartConfiguration -> Bool
$c/= :: LineChartConfiguration -> LineChartConfiguration -> Bool
== :: LineChartConfiguration -> LineChartConfiguration -> Bool
$c== :: LineChartConfiguration -> LineChartConfiguration -> Bool
Prelude.Eq, Int -> LineChartConfiguration -> ShowS
[LineChartConfiguration] -> ShowS
LineChartConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LineChartConfiguration] -> ShowS
$cshowList :: [LineChartConfiguration] -> ShowS
show :: LineChartConfiguration -> String
$cshow :: LineChartConfiguration -> String
showsPrec :: Int -> LineChartConfiguration -> ShowS
$cshowsPrec :: Int -> LineChartConfiguration -> ShowS
Prelude.Show, forall x. Rep LineChartConfiguration x -> LineChartConfiguration
forall x. LineChartConfiguration -> Rep LineChartConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep LineChartConfiguration x -> LineChartConfiguration
$cfrom :: forall x. LineChartConfiguration -> Rep LineChartConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'LineChartConfiguration' 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:
--
-- 'contributionAnalysisDefaults', 'lineChartConfiguration_contributionAnalysisDefaults' - The default configuration of a line chart\'s contribution analysis.
--
-- 'dataLabels', 'lineChartConfiguration_dataLabels' - The data label configuration of a line chart.
--
-- 'defaultSeriesSettings', 'lineChartConfiguration_defaultSeriesSettings' - The options that determine the default presentation of all line series
-- in @LineChartVisual@.
--
-- 'fieldWells', 'lineChartConfiguration_fieldWells' - The field well configuration of a line chart.
--
-- 'forecastConfigurations', 'lineChartConfiguration_forecastConfigurations' - The forecast configuration of a line chart.
--
-- 'legend', 'lineChartConfiguration_legend' - The legend configuration of a line chart.
--
-- 'primaryYAxisDisplayOptions', 'lineChartConfiguration_primaryYAxisDisplayOptions' - The series axis configuration of a line chart.
--
-- 'primaryYAxisLabelOptions', 'lineChartConfiguration_primaryYAxisLabelOptions' - The options that determine the presentation of the y-axis label.
--
-- 'referenceLines', 'lineChartConfiguration_referenceLines' - The reference lines configuration of a line chart.
--
-- 'secondaryYAxisDisplayOptions', 'lineChartConfiguration_secondaryYAxisDisplayOptions' - The series axis configuration of a line chart.
--
-- 'secondaryYAxisLabelOptions', 'lineChartConfiguration_secondaryYAxisLabelOptions' - The options that determine the presentation of the secondary y-axis
-- label.
--
-- 'series', 'lineChartConfiguration_series' - The series item configuration of a line chart.
--
-- 'smallMultiplesOptions', 'lineChartConfiguration_smallMultiplesOptions' - The small multiples setup for the visual.
--
-- 'sortConfiguration', 'lineChartConfiguration_sortConfiguration' - The sort configuration of a line chart.
--
-- 'tooltip', 'lineChartConfiguration_tooltip' - The tooltip configuration of a line chart.
--
-- 'type'', 'lineChartConfiguration_type' - Determines the type of the line chart.
--
-- 'visualPalette', 'lineChartConfiguration_visualPalette' - The visual palette configuration of a line chart.
--
-- 'xAxisDisplayOptions', 'lineChartConfiguration_xAxisDisplayOptions' - The options that determine the presentation of the x-axis.
--
-- 'xAxisLabelOptions', 'lineChartConfiguration_xAxisLabelOptions' - The options that determine the presentation of the x-axis label.
newLineChartConfiguration ::
  LineChartConfiguration
newLineChartConfiguration :: LineChartConfiguration
newLineChartConfiguration =
  LineChartConfiguration'
    { $sel:contributionAnalysisDefaults:LineChartConfiguration' :: Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults =
        forall a. Maybe a
Prelude.Nothing,
      $sel:dataLabels:LineChartConfiguration' :: Maybe DataLabelOptions
dataLabels = forall a. Maybe a
Prelude.Nothing,
      $sel:defaultSeriesSettings:LineChartConfiguration' :: Maybe LineChartDefaultSeriesSettings
defaultSeriesSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:fieldWells:LineChartConfiguration' :: Maybe LineChartFieldWells
fieldWells = forall a. Maybe a
Prelude.Nothing,
      $sel:forecastConfigurations:LineChartConfiguration' :: Maybe [ForecastConfiguration]
forecastConfigurations = forall a. Maybe a
Prelude.Nothing,
      $sel:legend:LineChartConfiguration' :: Maybe LegendOptions
legend = forall a. Maybe a
Prelude.Nothing,
      $sel:primaryYAxisDisplayOptions:LineChartConfiguration' :: Maybe LineSeriesAxisDisplayOptions
primaryYAxisDisplayOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:primaryYAxisLabelOptions:LineChartConfiguration' :: Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:referenceLines:LineChartConfiguration' :: Maybe [ReferenceLine]
referenceLines = forall a. Maybe a
Prelude.Nothing,
      $sel:secondaryYAxisDisplayOptions:LineChartConfiguration' :: Maybe LineSeriesAxisDisplayOptions
secondaryYAxisDisplayOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:secondaryYAxisLabelOptions:LineChartConfiguration' :: Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:series:LineChartConfiguration' :: Maybe [SeriesItem]
series = forall a. Maybe a
Prelude.Nothing,
      $sel:smallMultiplesOptions:LineChartConfiguration' :: Maybe SmallMultiplesOptions
smallMultiplesOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:sortConfiguration:LineChartConfiguration' :: Maybe LineChartSortConfiguration
sortConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:tooltip:LineChartConfiguration' :: Maybe TooltipOptions
tooltip = forall a. Maybe a
Prelude.Nothing,
      $sel:type':LineChartConfiguration' :: Maybe LineChartType
type' = forall a. Maybe a
Prelude.Nothing,
      $sel:visualPalette:LineChartConfiguration' :: Maybe VisualPalette
visualPalette = forall a. Maybe a
Prelude.Nothing,
      $sel:xAxisDisplayOptions:LineChartConfiguration' :: Maybe AxisDisplayOptions
xAxisDisplayOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:xAxisLabelOptions:LineChartConfiguration' :: Maybe ChartAxisLabelOptions
xAxisLabelOptions = forall a. Maybe a
Prelude.Nothing
    }

-- | The default configuration of a line chart\'s contribution analysis.
lineChartConfiguration_contributionAnalysisDefaults :: Lens.Lens' LineChartConfiguration (Prelude.Maybe (Prelude.NonEmpty ContributionAnalysisDefault))
lineChartConfiguration_contributionAnalysisDefaults :: Lens'
  LineChartConfiguration
  (Maybe (NonEmpty ContributionAnalysisDefault))
lineChartConfiguration_contributionAnalysisDefaults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
$sel:contributionAnalysisDefaults:LineChartConfiguration' :: LineChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults} -> Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe (NonEmpty ContributionAnalysisDefault)
a -> LineChartConfiguration
s {$sel:contributionAnalysisDefaults:LineChartConfiguration' :: Maybe (NonEmpty ContributionAnalysisDefault)
contributionAnalysisDefaults = Maybe (NonEmpty ContributionAnalysisDefault)
a} :: LineChartConfiguration) 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 data label configuration of a line chart.
lineChartConfiguration_dataLabels :: Lens.Lens' LineChartConfiguration (Prelude.Maybe DataLabelOptions)
lineChartConfiguration_dataLabels :: Lens' LineChartConfiguration (Maybe DataLabelOptions)
lineChartConfiguration_dataLabels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe DataLabelOptions
dataLabels :: Maybe DataLabelOptions
$sel:dataLabels:LineChartConfiguration' :: LineChartConfiguration -> Maybe DataLabelOptions
dataLabels} -> Maybe DataLabelOptions
dataLabels) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe DataLabelOptions
a -> LineChartConfiguration
s {$sel:dataLabels:LineChartConfiguration' :: Maybe DataLabelOptions
dataLabels = Maybe DataLabelOptions
a} :: LineChartConfiguration)

-- | The options that determine the default presentation of all line series
-- in @LineChartVisual@.
lineChartConfiguration_defaultSeriesSettings :: Lens.Lens' LineChartConfiguration (Prelude.Maybe LineChartDefaultSeriesSettings)
lineChartConfiguration_defaultSeriesSettings :: Lens' LineChartConfiguration (Maybe LineChartDefaultSeriesSettings)
lineChartConfiguration_defaultSeriesSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe LineChartDefaultSeriesSettings
defaultSeriesSettings :: Maybe LineChartDefaultSeriesSettings
$sel:defaultSeriesSettings:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartDefaultSeriesSettings
defaultSeriesSettings} -> Maybe LineChartDefaultSeriesSettings
defaultSeriesSettings) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe LineChartDefaultSeriesSettings
a -> LineChartConfiguration
s {$sel:defaultSeriesSettings:LineChartConfiguration' :: Maybe LineChartDefaultSeriesSettings
defaultSeriesSettings = Maybe LineChartDefaultSeriesSettings
a} :: LineChartConfiguration)

-- | The field well configuration of a line chart.
lineChartConfiguration_fieldWells :: Lens.Lens' LineChartConfiguration (Prelude.Maybe LineChartFieldWells)
lineChartConfiguration_fieldWells :: Lens' LineChartConfiguration (Maybe LineChartFieldWells)
lineChartConfiguration_fieldWells = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe LineChartFieldWells
fieldWells :: Maybe LineChartFieldWells
$sel:fieldWells:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartFieldWells
fieldWells} -> Maybe LineChartFieldWells
fieldWells) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe LineChartFieldWells
a -> LineChartConfiguration
s {$sel:fieldWells:LineChartConfiguration' :: Maybe LineChartFieldWells
fieldWells = Maybe LineChartFieldWells
a} :: LineChartConfiguration)

-- | The forecast configuration of a line chart.
lineChartConfiguration_forecastConfigurations :: Lens.Lens' LineChartConfiguration (Prelude.Maybe [ForecastConfiguration])
lineChartConfiguration_forecastConfigurations :: Lens' LineChartConfiguration (Maybe [ForecastConfiguration])
lineChartConfiguration_forecastConfigurations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe [ForecastConfiguration]
forecastConfigurations :: Maybe [ForecastConfiguration]
$sel:forecastConfigurations:LineChartConfiguration' :: LineChartConfiguration -> Maybe [ForecastConfiguration]
forecastConfigurations} -> Maybe [ForecastConfiguration]
forecastConfigurations) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe [ForecastConfiguration]
a -> LineChartConfiguration
s {$sel:forecastConfigurations:LineChartConfiguration' :: Maybe [ForecastConfiguration]
forecastConfigurations = Maybe [ForecastConfiguration]
a} :: LineChartConfiguration) 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 legend configuration of a line chart.
lineChartConfiguration_legend :: Lens.Lens' LineChartConfiguration (Prelude.Maybe LegendOptions)
lineChartConfiguration_legend :: Lens' LineChartConfiguration (Maybe LegendOptions)
lineChartConfiguration_legend = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe LegendOptions
legend :: Maybe LegendOptions
$sel:legend:LineChartConfiguration' :: LineChartConfiguration -> Maybe LegendOptions
legend} -> Maybe LegendOptions
legend) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe LegendOptions
a -> LineChartConfiguration
s {$sel:legend:LineChartConfiguration' :: Maybe LegendOptions
legend = Maybe LegendOptions
a} :: LineChartConfiguration)

-- | The series axis configuration of a line chart.
lineChartConfiguration_primaryYAxisDisplayOptions :: Lens.Lens' LineChartConfiguration (Prelude.Maybe LineSeriesAxisDisplayOptions)
lineChartConfiguration_primaryYAxisDisplayOptions :: Lens' LineChartConfiguration (Maybe LineSeriesAxisDisplayOptions)
lineChartConfiguration_primaryYAxisDisplayOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe LineSeriesAxisDisplayOptions
primaryYAxisDisplayOptions :: Maybe LineSeriesAxisDisplayOptions
$sel:primaryYAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineSeriesAxisDisplayOptions
primaryYAxisDisplayOptions} -> Maybe LineSeriesAxisDisplayOptions
primaryYAxisDisplayOptions) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe LineSeriesAxisDisplayOptions
a -> LineChartConfiguration
s {$sel:primaryYAxisDisplayOptions:LineChartConfiguration' :: Maybe LineSeriesAxisDisplayOptions
primaryYAxisDisplayOptions = Maybe LineSeriesAxisDisplayOptions
a} :: LineChartConfiguration)

-- | The options that determine the presentation of the y-axis label.
lineChartConfiguration_primaryYAxisLabelOptions :: Lens.Lens' LineChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
lineChartConfiguration_primaryYAxisLabelOptions :: Lens' LineChartConfiguration (Maybe ChartAxisLabelOptions)
lineChartConfiguration_primaryYAxisLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
$sel:primaryYAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions} -> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> LineChartConfiguration
s {$sel:primaryYAxisLabelOptions:LineChartConfiguration' :: Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions = Maybe ChartAxisLabelOptions
a} :: LineChartConfiguration)

-- | The reference lines configuration of a line chart.
lineChartConfiguration_referenceLines :: Lens.Lens' LineChartConfiguration (Prelude.Maybe [ReferenceLine])
lineChartConfiguration_referenceLines :: Lens' LineChartConfiguration (Maybe [ReferenceLine])
lineChartConfiguration_referenceLines = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe [ReferenceLine]
referenceLines :: Maybe [ReferenceLine]
$sel:referenceLines:LineChartConfiguration' :: LineChartConfiguration -> Maybe [ReferenceLine]
referenceLines} -> Maybe [ReferenceLine]
referenceLines) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe [ReferenceLine]
a -> LineChartConfiguration
s {$sel:referenceLines:LineChartConfiguration' :: Maybe [ReferenceLine]
referenceLines = Maybe [ReferenceLine]
a} :: LineChartConfiguration) 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 series axis configuration of a line chart.
lineChartConfiguration_secondaryYAxisDisplayOptions :: Lens.Lens' LineChartConfiguration (Prelude.Maybe LineSeriesAxisDisplayOptions)
lineChartConfiguration_secondaryYAxisDisplayOptions :: Lens' LineChartConfiguration (Maybe LineSeriesAxisDisplayOptions)
lineChartConfiguration_secondaryYAxisDisplayOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe LineSeriesAxisDisplayOptions
secondaryYAxisDisplayOptions :: Maybe LineSeriesAxisDisplayOptions
$sel:secondaryYAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineSeriesAxisDisplayOptions
secondaryYAxisDisplayOptions} -> Maybe LineSeriesAxisDisplayOptions
secondaryYAxisDisplayOptions) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe LineSeriesAxisDisplayOptions
a -> LineChartConfiguration
s {$sel:secondaryYAxisDisplayOptions:LineChartConfiguration' :: Maybe LineSeriesAxisDisplayOptions
secondaryYAxisDisplayOptions = Maybe LineSeriesAxisDisplayOptions
a} :: LineChartConfiguration)

-- | The options that determine the presentation of the secondary y-axis
-- label.
lineChartConfiguration_secondaryYAxisLabelOptions :: Lens.Lens' LineChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
lineChartConfiguration_secondaryYAxisLabelOptions :: Lens' LineChartConfiguration (Maybe ChartAxisLabelOptions)
lineChartConfiguration_secondaryYAxisLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
$sel:secondaryYAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions} -> Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> LineChartConfiguration
s {$sel:secondaryYAxisLabelOptions:LineChartConfiguration' :: Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions = Maybe ChartAxisLabelOptions
a} :: LineChartConfiguration)

-- | The series item configuration of a line chart.
lineChartConfiguration_series :: Lens.Lens' LineChartConfiguration (Prelude.Maybe [SeriesItem])
lineChartConfiguration_series :: Lens' LineChartConfiguration (Maybe [SeriesItem])
lineChartConfiguration_series = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe [SeriesItem]
series :: Maybe [SeriesItem]
$sel:series:LineChartConfiguration' :: LineChartConfiguration -> Maybe [SeriesItem]
series} -> Maybe [SeriesItem]
series) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe [SeriesItem]
a -> LineChartConfiguration
s {$sel:series:LineChartConfiguration' :: Maybe [SeriesItem]
series = Maybe [SeriesItem]
a} :: LineChartConfiguration) 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.
lineChartConfiguration_smallMultiplesOptions :: Lens.Lens' LineChartConfiguration (Prelude.Maybe SmallMultiplesOptions)
lineChartConfiguration_smallMultiplesOptions :: Lens' LineChartConfiguration (Maybe SmallMultiplesOptions)
lineChartConfiguration_smallMultiplesOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe SmallMultiplesOptions
smallMultiplesOptions :: Maybe SmallMultiplesOptions
$sel:smallMultiplesOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe SmallMultiplesOptions
smallMultiplesOptions} -> Maybe SmallMultiplesOptions
smallMultiplesOptions) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe SmallMultiplesOptions
a -> LineChartConfiguration
s {$sel:smallMultiplesOptions:LineChartConfiguration' :: Maybe SmallMultiplesOptions
smallMultiplesOptions = Maybe SmallMultiplesOptions
a} :: LineChartConfiguration)

-- | The sort configuration of a line chart.
lineChartConfiguration_sortConfiguration :: Lens.Lens' LineChartConfiguration (Prelude.Maybe LineChartSortConfiguration)
lineChartConfiguration_sortConfiguration :: Lens' LineChartConfiguration (Maybe LineChartSortConfiguration)
lineChartConfiguration_sortConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe LineChartSortConfiguration
sortConfiguration :: Maybe LineChartSortConfiguration
$sel:sortConfiguration:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartSortConfiguration
sortConfiguration} -> Maybe LineChartSortConfiguration
sortConfiguration) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe LineChartSortConfiguration
a -> LineChartConfiguration
s {$sel:sortConfiguration:LineChartConfiguration' :: Maybe LineChartSortConfiguration
sortConfiguration = Maybe LineChartSortConfiguration
a} :: LineChartConfiguration)

-- | The tooltip configuration of a line chart.
lineChartConfiguration_tooltip :: Lens.Lens' LineChartConfiguration (Prelude.Maybe TooltipOptions)
lineChartConfiguration_tooltip :: Lens' LineChartConfiguration (Maybe TooltipOptions)
lineChartConfiguration_tooltip = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe TooltipOptions
tooltip :: Maybe TooltipOptions
$sel:tooltip:LineChartConfiguration' :: LineChartConfiguration -> Maybe TooltipOptions
tooltip} -> Maybe TooltipOptions
tooltip) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe TooltipOptions
a -> LineChartConfiguration
s {$sel:tooltip:LineChartConfiguration' :: Maybe TooltipOptions
tooltip = Maybe TooltipOptions
a} :: LineChartConfiguration)

-- | Determines the type of the line chart.
lineChartConfiguration_type :: Lens.Lens' LineChartConfiguration (Prelude.Maybe LineChartType)
lineChartConfiguration_type :: Lens' LineChartConfiguration (Maybe LineChartType)
lineChartConfiguration_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe LineChartType
type' :: Maybe LineChartType
$sel:type':LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartType
type'} -> Maybe LineChartType
type') (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe LineChartType
a -> LineChartConfiguration
s {$sel:type':LineChartConfiguration' :: Maybe LineChartType
type' = Maybe LineChartType
a} :: LineChartConfiguration)

-- | The visual palette configuration of a line chart.
lineChartConfiguration_visualPalette :: Lens.Lens' LineChartConfiguration (Prelude.Maybe VisualPalette)
lineChartConfiguration_visualPalette :: Lens' LineChartConfiguration (Maybe VisualPalette)
lineChartConfiguration_visualPalette = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe VisualPalette
visualPalette :: Maybe VisualPalette
$sel:visualPalette:LineChartConfiguration' :: LineChartConfiguration -> Maybe VisualPalette
visualPalette} -> Maybe VisualPalette
visualPalette) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe VisualPalette
a -> LineChartConfiguration
s {$sel:visualPalette:LineChartConfiguration' :: Maybe VisualPalette
visualPalette = Maybe VisualPalette
a} :: LineChartConfiguration)

-- | The options that determine the presentation of the x-axis.
lineChartConfiguration_xAxisDisplayOptions :: Lens.Lens' LineChartConfiguration (Prelude.Maybe AxisDisplayOptions)
lineChartConfiguration_xAxisDisplayOptions :: Lens' LineChartConfiguration (Maybe AxisDisplayOptions)
lineChartConfiguration_xAxisDisplayOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe AxisDisplayOptions
xAxisDisplayOptions :: Maybe AxisDisplayOptions
$sel:xAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe AxisDisplayOptions
xAxisDisplayOptions} -> Maybe AxisDisplayOptions
xAxisDisplayOptions) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe AxisDisplayOptions
a -> LineChartConfiguration
s {$sel:xAxisDisplayOptions:LineChartConfiguration' :: Maybe AxisDisplayOptions
xAxisDisplayOptions = Maybe AxisDisplayOptions
a} :: LineChartConfiguration)

-- | The options that determine the presentation of the x-axis label.
lineChartConfiguration_xAxisLabelOptions :: Lens.Lens' LineChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
lineChartConfiguration_xAxisLabelOptions :: Lens' LineChartConfiguration (Maybe ChartAxisLabelOptions)
lineChartConfiguration_xAxisLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LineChartConfiguration' {Maybe ChartAxisLabelOptions
xAxisLabelOptions :: Maybe ChartAxisLabelOptions
$sel:xAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
xAxisLabelOptions} -> Maybe ChartAxisLabelOptions
xAxisLabelOptions) (\s :: LineChartConfiguration
s@LineChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> LineChartConfiguration
s {$sel:xAxisLabelOptions:LineChartConfiguration' :: Maybe ChartAxisLabelOptions
xAxisLabelOptions = Maybe ChartAxisLabelOptions
a} :: LineChartConfiguration)

instance Data.FromJSON LineChartConfiguration where
  parseJSON :: Value -> Parser LineChartConfiguration
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"LineChartConfiguration"
      ( \Object
x ->
          Maybe (NonEmpty ContributionAnalysisDefault)
-> Maybe DataLabelOptions
-> Maybe LineChartDefaultSeriesSettings
-> Maybe LineChartFieldWells
-> Maybe [ForecastConfiguration]
-> Maybe LegendOptions
-> Maybe LineSeriesAxisDisplayOptions
-> Maybe ChartAxisLabelOptions
-> Maybe [ReferenceLine]
-> Maybe LineSeriesAxisDisplayOptions
-> Maybe ChartAxisLabelOptions
-> Maybe [SeriesItem]
-> Maybe SmallMultiplesOptions
-> Maybe LineChartSortConfiguration
-> Maybe TooltipOptions
-> Maybe LineChartType
-> Maybe VisualPalette
-> Maybe AxisDisplayOptions
-> Maybe ChartAxisLabelOptions
-> LineChartConfiguration
LineChartConfiguration'
            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
"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
"DefaultSeriesSettings")
            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
"ForecastConfigurations"
                            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
"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
"PrimaryYAxisDisplayOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"PrimaryYAxisLabelOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ReferenceLines" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SecondaryYAxisDisplayOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SecondaryYAxisLabelOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Series" 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
"Type")
            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")
            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
"XAxisDisplayOptions")
            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
"XAxisLabelOptions")
      )

instance Prelude.Hashable LineChartConfiguration where
  hashWithSalt :: Int -> LineChartConfiguration -> Int
hashWithSalt Int
_salt LineChartConfiguration' {Maybe [SeriesItem]
Maybe [ForecastConfiguration]
Maybe [ReferenceLine]
Maybe (NonEmpty ContributionAnalysisDefault)
Maybe LineChartType
Maybe LineChartSortConfiguration
Maybe LineChartFieldWells
Maybe SmallMultiplesOptions
Maybe LineChartDefaultSeriesSettings
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe LineSeriesAxisDisplayOptions
Maybe VisualPalette
xAxisLabelOptions :: Maybe ChartAxisLabelOptions
xAxisDisplayOptions :: Maybe AxisDisplayOptions
visualPalette :: Maybe VisualPalette
type' :: Maybe LineChartType
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe LineChartSortConfiguration
smallMultiplesOptions :: Maybe SmallMultiplesOptions
series :: Maybe [SeriesItem]
secondaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
secondaryYAxisDisplayOptions :: Maybe LineSeriesAxisDisplayOptions
referenceLines :: Maybe [ReferenceLine]
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
primaryYAxisDisplayOptions :: Maybe LineSeriesAxisDisplayOptions
legend :: Maybe LegendOptions
forecastConfigurations :: Maybe [ForecastConfiguration]
fieldWells :: Maybe LineChartFieldWells
defaultSeriesSettings :: Maybe LineChartDefaultSeriesSettings
dataLabels :: Maybe DataLabelOptions
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
$sel:xAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:xAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe AxisDisplayOptions
$sel:visualPalette:LineChartConfiguration' :: LineChartConfiguration -> Maybe VisualPalette
$sel:type':LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartType
$sel:tooltip:LineChartConfiguration' :: LineChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartSortConfiguration
$sel:smallMultiplesOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe SmallMultiplesOptions
$sel:series:LineChartConfiguration' :: LineChartConfiguration -> Maybe [SeriesItem]
$sel:secondaryYAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:secondaryYAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineSeriesAxisDisplayOptions
$sel:referenceLines:LineChartConfiguration' :: LineChartConfiguration -> Maybe [ReferenceLine]
$sel:primaryYAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:primaryYAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineSeriesAxisDisplayOptions
$sel:legend:LineChartConfiguration' :: LineChartConfiguration -> Maybe LegendOptions
$sel:forecastConfigurations:LineChartConfiguration' :: LineChartConfiguration -> Maybe [ForecastConfiguration]
$sel:fieldWells:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartFieldWells
$sel:defaultSeriesSettings:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartDefaultSeriesSettings
$sel:dataLabels:LineChartConfiguration' :: LineChartConfiguration -> Maybe DataLabelOptions
$sel:contributionAnalysisDefaults:LineChartConfiguration' :: LineChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
..} =
    Int
_salt
      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 LineChartDefaultSeriesSettings
defaultSeriesSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LineChartFieldWells
fieldWells
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ForecastConfiguration]
forecastConfigurations
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LegendOptions
legend
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LineSeriesAxisDisplayOptions
primaryYAxisDisplayOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ReferenceLine]
referenceLines
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LineSeriesAxisDisplayOptions
secondaryYAxisDisplayOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [SeriesItem]
series
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SmallMultiplesOptions
smallMultiplesOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LineChartSortConfiguration
sortConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TooltipOptions
tooltip
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LineChartType
type'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VisualPalette
visualPalette
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AxisDisplayOptions
xAxisDisplayOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
xAxisLabelOptions

instance Prelude.NFData LineChartConfiguration where
  rnf :: LineChartConfiguration -> ()
rnf LineChartConfiguration' {Maybe [SeriesItem]
Maybe [ForecastConfiguration]
Maybe [ReferenceLine]
Maybe (NonEmpty ContributionAnalysisDefault)
Maybe LineChartType
Maybe LineChartSortConfiguration
Maybe LineChartFieldWells
Maybe SmallMultiplesOptions
Maybe LineChartDefaultSeriesSettings
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe LineSeriesAxisDisplayOptions
Maybe VisualPalette
xAxisLabelOptions :: Maybe ChartAxisLabelOptions
xAxisDisplayOptions :: Maybe AxisDisplayOptions
visualPalette :: Maybe VisualPalette
type' :: Maybe LineChartType
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe LineChartSortConfiguration
smallMultiplesOptions :: Maybe SmallMultiplesOptions
series :: Maybe [SeriesItem]
secondaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
secondaryYAxisDisplayOptions :: Maybe LineSeriesAxisDisplayOptions
referenceLines :: Maybe [ReferenceLine]
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
primaryYAxisDisplayOptions :: Maybe LineSeriesAxisDisplayOptions
legend :: Maybe LegendOptions
forecastConfigurations :: Maybe [ForecastConfiguration]
fieldWells :: Maybe LineChartFieldWells
defaultSeriesSettings :: Maybe LineChartDefaultSeriesSettings
dataLabels :: Maybe DataLabelOptions
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
$sel:xAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:xAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe AxisDisplayOptions
$sel:visualPalette:LineChartConfiguration' :: LineChartConfiguration -> Maybe VisualPalette
$sel:type':LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartType
$sel:tooltip:LineChartConfiguration' :: LineChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartSortConfiguration
$sel:smallMultiplesOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe SmallMultiplesOptions
$sel:series:LineChartConfiguration' :: LineChartConfiguration -> Maybe [SeriesItem]
$sel:secondaryYAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:secondaryYAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineSeriesAxisDisplayOptions
$sel:referenceLines:LineChartConfiguration' :: LineChartConfiguration -> Maybe [ReferenceLine]
$sel:primaryYAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:primaryYAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineSeriesAxisDisplayOptions
$sel:legend:LineChartConfiguration' :: LineChartConfiguration -> Maybe LegendOptions
$sel:forecastConfigurations:LineChartConfiguration' :: LineChartConfiguration -> Maybe [ForecastConfiguration]
$sel:fieldWells:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartFieldWells
$sel:defaultSeriesSettings:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartDefaultSeriesSettings
$sel:dataLabels:LineChartConfiguration' :: LineChartConfiguration -> Maybe DataLabelOptions
$sel:contributionAnalysisDefaults:LineChartConfiguration' :: LineChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
..} =
    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 LineChartDefaultSeriesSettings
defaultSeriesSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LineChartFieldWells
fieldWells
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ForecastConfiguration]
forecastConfigurations
      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 LineSeriesAxisDisplayOptions
primaryYAxisDisplayOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ReferenceLine]
referenceLines
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LineSeriesAxisDisplayOptions
secondaryYAxisDisplayOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [SeriesItem]
series
      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 LineChartSortConfiguration
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 LineChartType
type'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VisualPalette
visualPalette
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AxisDisplayOptions
xAxisDisplayOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
xAxisLabelOptions

instance Data.ToJSON LineChartConfiguration where
  toJSON :: LineChartConfiguration -> Value
toJSON LineChartConfiguration' {Maybe [SeriesItem]
Maybe [ForecastConfiguration]
Maybe [ReferenceLine]
Maybe (NonEmpty ContributionAnalysisDefault)
Maybe LineChartType
Maybe LineChartSortConfiguration
Maybe LineChartFieldWells
Maybe SmallMultiplesOptions
Maybe LineChartDefaultSeriesSettings
Maybe LegendOptions
Maybe DataLabelOptions
Maybe TooltipOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe LineSeriesAxisDisplayOptions
Maybe VisualPalette
xAxisLabelOptions :: Maybe ChartAxisLabelOptions
xAxisDisplayOptions :: Maybe AxisDisplayOptions
visualPalette :: Maybe VisualPalette
type' :: Maybe LineChartType
tooltip :: Maybe TooltipOptions
sortConfiguration :: Maybe LineChartSortConfiguration
smallMultiplesOptions :: Maybe SmallMultiplesOptions
series :: Maybe [SeriesItem]
secondaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
secondaryYAxisDisplayOptions :: Maybe LineSeriesAxisDisplayOptions
referenceLines :: Maybe [ReferenceLine]
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
primaryYAxisDisplayOptions :: Maybe LineSeriesAxisDisplayOptions
legend :: Maybe LegendOptions
forecastConfigurations :: Maybe [ForecastConfiguration]
fieldWells :: Maybe LineChartFieldWells
defaultSeriesSettings :: Maybe LineChartDefaultSeriesSettings
dataLabels :: Maybe DataLabelOptions
contributionAnalysisDefaults :: Maybe (NonEmpty ContributionAnalysisDefault)
$sel:xAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:xAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe AxisDisplayOptions
$sel:visualPalette:LineChartConfiguration' :: LineChartConfiguration -> Maybe VisualPalette
$sel:type':LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartType
$sel:tooltip:LineChartConfiguration' :: LineChartConfiguration -> Maybe TooltipOptions
$sel:sortConfiguration:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartSortConfiguration
$sel:smallMultiplesOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe SmallMultiplesOptions
$sel:series:LineChartConfiguration' :: LineChartConfiguration -> Maybe [SeriesItem]
$sel:secondaryYAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:secondaryYAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineSeriesAxisDisplayOptions
$sel:referenceLines:LineChartConfiguration' :: LineChartConfiguration -> Maybe [ReferenceLine]
$sel:primaryYAxisLabelOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:primaryYAxisDisplayOptions:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineSeriesAxisDisplayOptions
$sel:legend:LineChartConfiguration' :: LineChartConfiguration -> Maybe LegendOptions
$sel:forecastConfigurations:LineChartConfiguration' :: LineChartConfiguration -> Maybe [ForecastConfiguration]
$sel:fieldWells:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartFieldWells
$sel:defaultSeriesSettings:LineChartConfiguration' :: LineChartConfiguration -> Maybe LineChartDefaultSeriesSettings
$sel:dataLabels:LineChartConfiguration' :: LineChartConfiguration -> Maybe DataLabelOptions
$sel:contributionAnalysisDefaults:LineChartConfiguration' :: LineChartConfiguration
-> Maybe (NonEmpty ContributionAnalysisDefault)
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (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
"DefaultSeriesSettings" 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 LineChartDefaultSeriesSettings
defaultSeriesSettings,
            (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 LineChartFieldWells
fieldWells,
            (Key
"ForecastConfigurations" 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 [ForecastConfiguration]
forecastConfigurations,
            (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
"PrimaryYAxisDisplayOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LineSeriesAxisDisplayOptions
primaryYAxisDisplayOptions,
            (Key
"PrimaryYAxisLabelOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions,
            (Key
"ReferenceLines" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ReferenceLine]
referenceLines,
            (Key
"SecondaryYAxisDisplayOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LineSeriesAxisDisplayOptions
secondaryYAxisDisplayOptions,
            (Key
"SecondaryYAxisLabelOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ChartAxisLabelOptions
secondaryYAxisLabelOptions,
            (Key
"Series" 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 [SeriesItem]
series,
            (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 LineChartSortConfiguration
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
"Type" 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 LineChartType
type',
            (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,
            (Key
"XAxisDisplayOptions" 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
xAxisDisplayOptions,
            (Key
"XAxisLabelOptions" 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
xAxisLabelOptions
          ]
      )