2d2763191967d4f5bef16b4b2ff0db362f3f8d0f9169341bb18e27ca0275eb5516e2f6e41f5ee075f0c35d27a2a3eea7555810886ab51efb5549aac0f928e4 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import SeriesModel from '../../model/Series.js';
  2. import { SeriesOption, BoxLayoutOptionMixin, HorizontalAlign, LabelOption, LabelLineOption, ItemStyleOption, OptionDataValueNumeric, StatesOptionMixin, OptionDataItemObject, LayoutOrient, VerticalAlign, SeriesLabelOption, SeriesEncodeOptionMixin, DefaultStatesMixinEmphasis, CallbackDataParams } from '../../util/types.js';
  3. import GlobalModel from '../../model/Global.js';
  4. import SeriesData from '../../data/SeriesData.js';
  5. declare type FunnelLabelOption = Omit<SeriesLabelOption, 'position'> & {
  6. position?: LabelOption['position'] | 'outer' | 'inner' | 'center' | 'rightTop' | 'rightBottom' | 'leftTop' | 'leftBottom';
  7. };
  8. interface FunnelStatesMixin {
  9. emphasis?: DefaultStatesMixinEmphasis;
  10. }
  11. export interface FunnelCallbackDataParams extends CallbackDataParams {
  12. percent: number;
  13. }
  14. export interface FunnelStateOption<TCbParams = never> {
  15. itemStyle?: ItemStyleOption<TCbParams>;
  16. label?: FunnelLabelOption;
  17. labelLine?: LabelLineOption;
  18. }
  19. export interface FunnelDataItemOption extends FunnelStateOption, StatesOptionMixin<FunnelStateOption, FunnelStatesMixin>, OptionDataItemObject<OptionDataValueNumeric> {
  20. itemStyle?: ItemStyleOption & {
  21. width?: number | string;
  22. height?: number | string;
  23. };
  24. }
  25. export interface FunnelSeriesOption extends SeriesOption<FunnelStateOption<FunnelCallbackDataParams>, FunnelStatesMixin>, FunnelStateOption<FunnelCallbackDataParams>, BoxLayoutOptionMixin, SeriesEncodeOptionMixin {
  26. type?: 'funnel';
  27. min?: number;
  28. max?: number;
  29. /**
  30. * Absolute number or percent string
  31. */
  32. minSize?: number | string;
  33. maxSize?: number | string;
  34. sort?: 'ascending' | 'descending' | 'none';
  35. orient?: LayoutOrient;
  36. gap?: number;
  37. funnelAlign?: HorizontalAlign | VerticalAlign;
  38. data?: (OptionDataValueNumeric | OptionDataValueNumeric[] | FunnelDataItemOption)[];
  39. }
  40. declare class FunnelSeriesModel extends SeriesModel<FunnelSeriesOption> {
  41. static type: "series.funnel";
  42. type: "series.funnel";
  43. init(option: FunnelSeriesOption): void;
  44. getInitialData(this: FunnelSeriesModel, option: FunnelSeriesOption, ecModel: GlobalModel): SeriesData;
  45. _defaultLabelLine(option: FunnelSeriesOption): void;
  46. getDataParams(dataIndex: number): FunnelCallbackDataParams;
  47. static defaultOption: FunnelSeriesOption;
  48. }
  49. export default FunnelSeriesModel;