123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- 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'];
- };
- 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;
|