UNPKG

echarts

Version:

Apache ECharts is a powerful, interactive charting and data visualization library for browser

74 lines (73 loc) 2.96 kB
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;