panel.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { LoadingState, TimeSeries, TimeRange } from './series';
  2. export interface PanelProps<T = any> {
  3. timeSeries: TimeSeries[];
  4. timeRange: TimeRange;
  5. loading: LoadingState;
  6. options: T;
  7. renderCounter: number;
  8. width: number;
  9. height: number;
  10. }
  11. export interface PanelOptionsProps<T = any> {
  12. options: T;
  13. onChange: (options: T) => void;
  14. }
  15. export interface PanelSize {
  16. width: number;
  17. height: number;
  18. }
  19. export interface PanelMenuItem {
  20. type?: 'submenu' | 'divider';
  21. text?: string;
  22. iconClassName?: string;
  23. onClick?: () => void;
  24. shortcut?: string;
  25. subMenu?: PanelMenuItem[];
  26. }
  27. export interface Threshold {
  28. index: number;
  29. label: string;
  30. value: number;
  31. color?: string;
  32. canRemove: boolean;
  33. }
  34. export enum MappingType {
  35. ValueToText = 1,
  36. RangeToText = 2,
  37. }
  38. export enum BasicGaugeColor {
  39. Green = 'rgba(50, 172, 45, 0.97)',
  40. Orange = 'rgba(237, 129, 40, 0.89)',
  41. Red = 'rgb(212, 74, 58)',
  42. }
  43. interface BaseMap {
  44. id: number;
  45. operator: string;
  46. text: string;
  47. type: MappingType;
  48. }
  49. export interface ValueMap extends BaseMap {
  50. value: string;
  51. }
  52. export interface RangeMap extends BaseMap {
  53. from: string;
  54. to: string;
  55. }