244 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			244 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
///
 | 
						|
/// Copyright © 2016-2023 The Thingsboard Authors
 | 
						|
///
 | 
						|
/// Licensed 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.
 | 
						|
///
 | 
						|
 | 
						|
// eslint-disable-next-line @typescript-eslint/triple-slash-reference
 | 
						|
/// <reference path="../../../../../../../src/typings/jquery.flot.typings.d.ts" />
 | 
						|
 | 
						|
import { DataKey, Datasource, DatasourceData, FormattedData, JsonSettingsSchema } from '@shared/models/widget.models';
 | 
						|
import { DataKeyType } from '@shared/models/telemetry/telemetry.models';
 | 
						|
import { ComparisonDuration } from '@shared/models/time/time.models';
 | 
						|
 | 
						|
export declare type ChartType = 'line' | 'pie' | 'bar' | 'state' | 'graph';
 | 
						|
 | 
						|
export declare type TbFlotSettings = TbFlotBaseSettings & TbFlotGraphSettings & TbFlotBarSettings & TbFlotPieSettings;
 | 
						|
 | 
						|
export declare type TooltipValueFormatFunction = (value: any, latestData: FormattedData) => string;
 | 
						|
 | 
						|
export declare type TbFlotTicksFormatterFunction = (t: number, a?: TbFlotPlotAxis) => string;
 | 
						|
 | 
						|
export interface TbFlotSeries extends DatasourceData, JQueryPlotSeriesOptions {
 | 
						|
  dataKey: TbFlotDataKey;
 | 
						|
  xaxisIndex?: number;
 | 
						|
  yaxisIndex?: number;
 | 
						|
  yaxis?: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotDataKey extends DataKey {
 | 
						|
  settings?: TbFlotKeySettings;
 | 
						|
  tooltipValueFormatFunction?: TooltipValueFormatFunction;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotPlotAxis extends JQueryPlotAxis, TbFlotAxisOptions {
 | 
						|
  options: TbFlotAxisOptions;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotAxisOptions extends JQueryPlotAxisOptions {
 | 
						|
  tickUnits?: string;
 | 
						|
  hidden?: boolean;
 | 
						|
  keysInfo?: Array<{hidden: boolean}>;
 | 
						|
  ticksFormatterFunction?: TbFlotTicksFormatterFunction;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotPlotDataSeries extends JQueryPlotDataSeries {
 | 
						|
  datasource?: Datasource;
 | 
						|
  dataKey?: TbFlotDataKey;
 | 
						|
  percent?: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotPlotItem extends jquery.flot.item {
 | 
						|
  series: TbFlotPlotDataSeries;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotHoverInfo {
 | 
						|
  seriesHover: Array<TbFlotSeriesHoverInfo>;
 | 
						|
  time?: any;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotSeriesHoverInfo {
 | 
						|
  hoverIndex: number;
 | 
						|
  units: string;
 | 
						|
  decimals: number;
 | 
						|
  label: string;
 | 
						|
  color: string;
 | 
						|
  index: number;
 | 
						|
  tooltipValueFormatFunction: TooltipValueFormatFunction;
 | 
						|
  value: any;
 | 
						|
  time: any;
 | 
						|
  distance: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotThresholdMarking {
 | 
						|
  lineWidth?: number;
 | 
						|
  color?: string;
 | 
						|
  [key: string]: any;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotThresholdKeySettings {
 | 
						|
  yaxis: number;
 | 
						|
  lineWidth: number;
 | 
						|
  color: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotGridSettings {
 | 
						|
  color: string;
 | 
						|
  backgroundColor: string;
 | 
						|
  tickColor: string;
 | 
						|
  outlineWidth: number;
 | 
						|
  verticalLines: boolean;
 | 
						|
  horizontalLines: boolean;
 | 
						|
  minBorderMargin?: number;
 | 
						|
  margin?: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotXAxisSettings {
 | 
						|
  showLabels: boolean;
 | 
						|
  title: string;
 | 
						|
  color: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotSecondXAxisSettings {
 | 
						|
  axisPosition: TbFlotXAxisPosition;
 | 
						|
  showLabels: boolean;
 | 
						|
  title: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotYAxisSettings {
 | 
						|
  min: number;
 | 
						|
  max: number;
 | 
						|
  showLabels: boolean;
 | 
						|
  title: string;
 | 
						|
  color: string;
 | 
						|
  ticksFormatter: string;
 | 
						|
  tickDecimals: number;
 | 
						|
  tickSize: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotBaseSettings {
 | 
						|
  stack: boolean;
 | 
						|
  shadowSize: number;
 | 
						|
  fontColor: string;
 | 
						|
  fontSize: number;
 | 
						|
  tooltipIndividual: boolean;
 | 
						|
  tooltipCumulative: boolean;
 | 
						|
  tooltipValueFormatter: string;
 | 
						|
  hideZeros: boolean;
 | 
						|
  grid: TbFlotGridSettings;
 | 
						|
  xaxis: TbFlotXAxisSettings;
 | 
						|
  yaxis: TbFlotYAxisSettings;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotComparisonSettings {
 | 
						|
  comparisonEnabled: boolean;
 | 
						|
  timeForComparison: ComparisonDuration;
 | 
						|
  xaxisSecond: TbFlotSecondXAxisSettings;
 | 
						|
  comparisonCustomIntervalValue?: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotThresholdsSettings {
 | 
						|
  thresholdsLineWidth: number;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotCustomLegendSettings {
 | 
						|
  customLegendEnabled: boolean;
 | 
						|
  dataKeysListForLabels: Array<TbFlotLabelPatternSettings>;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotLabelPatternSettings {
 | 
						|
  name: string;
 | 
						|
  type: DataKeyType;
 | 
						|
  settings?: any;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotGraphSettings extends TbFlotBaseSettings,
 | 
						|
                                             TbFlotThresholdsSettings, TbFlotComparisonSettings, TbFlotCustomLegendSettings {
 | 
						|
  smoothLines: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export declare type BarAlignment = 'left' | 'right' | 'center';
 | 
						|
 | 
						|
export interface TbFlotBarSettings extends TbFlotBaseSettings,
 | 
						|
                                           TbFlotThresholdsSettings, TbFlotComparisonSettings, TbFlotCustomLegendSettings {
 | 
						|
  defaultBarWidth: number;
 | 
						|
  barAlignment: BarAlignment;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotPieSettings {
 | 
						|
  radius: number;
 | 
						|
  innerRadius: number;
 | 
						|
  tilt: number;
 | 
						|
  animatedPie: boolean;
 | 
						|
  stroke: {
 | 
						|
    color: string;
 | 
						|
    width: number;
 | 
						|
  };
 | 
						|
  showTooltip: boolean;
 | 
						|
  showLabels: boolean;
 | 
						|
  fontColor: string;
 | 
						|
  fontSize: number;
 | 
						|
}
 | 
						|
 | 
						|
export declare type TbFlotYAxisPosition = 'left' | 'right';
 | 
						|
export declare type TbFlotXAxisPosition = 'top' | 'bottom';
 | 
						|
 | 
						|
export declare type TbFlotThresholdValueSource = 'predefinedValue' | 'entityAttribute';
 | 
						|
 | 
						|
export interface TbFlotKeyThreshold {
 | 
						|
  thresholdValueSource: TbFlotThresholdValueSource;
 | 
						|
  thresholdEntityAlias: string;
 | 
						|
  thresholdAttribute: string;
 | 
						|
  thresholdValue: number;
 | 
						|
  lineWidth: number;
 | 
						|
  color: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotKeyComparisonSettings {
 | 
						|
  showValuesForComparison: boolean;
 | 
						|
  comparisonValuesLabel: string;
 | 
						|
  color: string;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotKeySettings {
 | 
						|
  excludeFromStacking: boolean;
 | 
						|
  hideDataByDefault: boolean;
 | 
						|
  disableDataHiding: boolean;
 | 
						|
  removeFromLegend: boolean;
 | 
						|
  showLines: boolean;
 | 
						|
  fillLines: boolean;
 | 
						|
  showPoints: boolean;
 | 
						|
  showPointShape: string;
 | 
						|
  pointShapeFormatter: string;
 | 
						|
  showPointsLineWidth: number;
 | 
						|
  showPointsRadius: number;
 | 
						|
  lineWidth: number;
 | 
						|
  tooltipValueFormatter: string;
 | 
						|
  showSeparateAxis: boolean;
 | 
						|
  axisMin: number;
 | 
						|
  axisMax: number;
 | 
						|
  axisTitle: string;
 | 
						|
  axisTickDecimals: number;
 | 
						|
  axisTickSize: number;
 | 
						|
  axisPosition: TbFlotYAxisPosition;
 | 
						|
  axisTicksFormatter: string;
 | 
						|
  thresholds: TbFlotKeyThreshold[];
 | 
						|
  comparisonSettings: TbFlotKeyComparisonSettings;
 | 
						|
}
 | 
						|
 | 
						|
export interface TbFlotLatestKeySettings {
 | 
						|
  useAsThreshold: boolean;
 | 
						|
  thresholdLineWidth: number;
 | 
						|
  thresholdColor: string;
 | 
						|
}
 |