/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */ import { AnnotationLayer , ChartDataResponseResult , ChartProps , QueryFormColumn , QueryFormData , TimeGranularity , } from '@superset-ui/core' ; import { sections } from '@superset-ui/chart-controls' ; import { DEFAULT_LEGEND_FORM_DATA , EchartsLegendFormData , EChartTransformedProps , EchartsTitleFormData , DEFAULT_TITLE_FORM_DATA , } from '../types' ; export enum EchartsTimeseriesContributionType { Row = 'row' , Column = 'column' } export enum EchartsTimeseriesSeriesType { Line = 'line' , Scatter = 'scatter' , Smooth = 'smooth' , Bar = 'bar' , Start = 'start' , Middle = 'middle' , End = 'end' } export type EchartsTimeseriesFormData = QueryFormData & { annotationLayers : AnnotationLayer [ ] ; area : boolean ; colorScheme ? : string ; contributionMode ? : EchartsTimeseriesContributionType ; forecastEnabled : boolean ; forecastPeriods : number ; forecastInterval : number ; forecastSeasonalityDaily : null ; forecastSeasonalityWeekly : null ; forecastSeasonalityYearly : null ; logAxis : boolean ; markerEnabled : boolean ; markerSize : number ; minorSplitLine : boolean ; opacity : number ; orderDesc : boolean ; rowLimit : number ; seriesType : EchartsTimeseriesSeriesType ; stack : boolean ; tooltipTimeFormat ? : string ; truncateYAxis : boolean ; yAxisFormat ? : string ; xAxisTimeFormat ? : string ; timeGrainSqla ? : TimeGranularity ; yAxisBounds : [ number | undefined | null , number | undefined | null ] ; zoomable : boolean ; richTooltip : boolean ; xAxisLabelRotation : number ; emitFilter : boolean ; groupby : QueryFormColumn [ ] ; showValue : boolean ; onlyTotal : boolean ; percentageThreshold : number ; } & EchartsLegendFormData & EchartsTitleFormData ; export const DEFAULT_FORM_DATA = { ... DEFAULT_LEGEND_FORM_DATA , annotationLayers : sections . annotationLayers , area : false , forecastEnabled : sections . FORECAST_DEFAULT_DATA . forecastEnabled , forecastInterval : sections . FORECAST_DEFAULT_DATA . forecastInterval , forecastPeriods : sections . FORECAST_DEFAULT_DATA . forecastPeriods , forecastSeasonalityDaily : sections . FORECAST_DEFAULT_DATA . forecastSeasonalityDaily , forecastSeasonalityWeekly : sections . FORECAST_DEFAULT_DATA . forecastSeasonalityWeekly , forecastSeasonalityYearly : sections . FORECAST_DEFAULT_DATA . forecastSeasonalityYearly , logAxis : false , markerEnabled : false , markerSize : 6 , minorSplitLine : false , opacity : 0.2 , orderDesc : true , rowLimit : 10000 , seriesType : EchartsTimeseriesSeriesType . Line , stack : false , tooltipTimeFormat : 'smart_date' , truncateYAxis : false , yAxisBounds : [ null , null ] , zoomable : false , richTooltip : true , xAxisLabelRotation : 0 , emitFilter : false , groupby : [ ] , showValue : false , onlyTotal : false , percentageThreshold : 0 , ... DEFAULT_TITLE_FORM_DATA , } ; export interface EchartsTimeseriesChartProps extends ChartProps { formData : EchartsTimeseriesFormData ; queriesData : ChartDataResponseResult [ ] ; } export type TimeseriesChartTransformedProps = EChartTransformedProps < EchartsTimeseriesFormData > ;