echarts
Version:
Apache ECharts is a powerful, interactive charting and data visualization library for browser
74 lines (73 loc) • 2.96 kB
TypeScript
import { Dictionary, DisplayState, ZRElementEvent, ItemStyleOption, LabelOption } from '../../util/types.js';
import Model from '../../model/Model.js';
import GlobalModel from '../../model/Global.js';
import ExtensionAPI from '../../core/ExtensionAPI.js';
import Displayable from 'zrender/lib/graphic/Displayable.js';
declare type IconStyle = ItemStyleOption & {
textFill?: LabelOption['color'];
textBackgroundColor?: LabelOption['backgroundColor'];
textPosition?: LabelOption['position'];
textAlign?: LabelOption['align'];
textBorderRadius?: LabelOption['borderRadius'];
textPadding?: LabelOption['padding'];
textFontFamily?: LabelOption['fontFamily'];
textFontSize?: LabelOption['fontSize'];
textFontWeight?: LabelOption['fontWeight'];
textFontStyle?: LabelOption['fontStyle'];
};
export interface ToolboxFeatureOption {
show?: boolean;
title?: string | Partial<Dictionary<string>>;
icon?: string | Partial<Dictionary<string>>;
iconStyle?: IconStyle;
emphasis?: {
iconStyle?: IconStyle;
};
iconStatus?: Partial<Dictionary<DisplayState>>;
onclick?: () => void;
}
export interface ToolboxFeatureModel<Opts extends ToolboxFeatureOption = ToolboxFeatureOption> extends Model<Opts> {
/**
* Collection of icon paths.
* Will be injected during rendering in the view.
*/
iconPaths: Partial<Dictionary<Displayable>>;
setIconStatus(iconName: string, status: DisplayState): void;
}
interface ToolboxFeature<Opts extends ToolboxFeatureOption = ToolboxFeatureOption> {
getIcons?(): Dictionary<string>;
onclick(ecModel: GlobalModel, api: ExtensionAPI, type: string, event: ZRElementEvent): void;
dispose?(ecModel: GlobalModel, api: ExtensionAPI): void;
remove?(ecModel: GlobalModel, api: ExtensionAPI): void;
render(featureModel: ToolboxFeatureModel, model: GlobalModel, api: ExtensionAPI, payload: unknown): void;
updateView?(featureModel: ToolboxFeatureModel, model: GlobalModel, api: ExtensionAPI, payload: unknown): void;
}
declare abstract class ToolboxFeature<Opts extends ToolboxFeatureOption = ToolboxFeatureOption> {
uid: string;
model: ToolboxFeatureModel<Opts>;
ecModel: GlobalModel;
api: ExtensionAPI;
/**
* If toolbox feature can't be used on some platform.
*/
unusable?: boolean;
}
export { ToolboxFeature };
export interface UserDefinedToolboxFeature {
uid: string;
model: ToolboxFeatureModel;
ecModel: GlobalModel;
api: ExtensionAPI;
featureName?: string;
onclick(): void;
}
declare type ToolboxFeatureCtor = {
new (): ToolboxFeature;
/**
* Static defaultOption property
*/
defaultOption?: ToolboxFeatureOption;
getDefaultOption?: (ecModel: GlobalModel) => ToolboxFeatureOption;
};
export declare function registerFeature(name: string, ctor: ToolboxFeatureCtor): void;
export declare function getFeature(name: string): ToolboxFeatureCtor;