2c21049a44c8dd2c4de29ef521abc9acf513ac329196d22e07046ede18ce41e30c69cabdf27123b19ab2ad017dafbfa0f5559e5e5a423d6ffe08c269ea73bc 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. import * as zrender from 'zrender/lib/zrender.js';
  2. import Eventful, { EventCallbackSingleParam } from 'zrender/lib/core/Eventful.js';
  3. import { GlobalModelSetOptionOpts } from '../model/Global.js';
  4. import * as modelUtil from '../util/model.js';
  5. import { CoordinateSystemCreator } from '../coord/CoordinateSystem.js';
  6. import { Payload, RendererType, ECActionEvent, ActionHandler, ActionInfo, OptionPreprocessor, PostUpdater, LoadingEffectCreator, StageHandlerOverallReset, StageHandler, DimensionDefinitionLoose, ThemeOption, ECBasicOption, ZRColor, ComponentMainType, ScaleDataValue, ZRElementEventName, ECElementEvent, AnimationOption } from '../util/types.js';
  7. import { registerExternalTransform } from '../data/helper/transform.js';
  8. import { LocaleOption } from './locale.js';
  9. import { LifecycleEvents, UpdateLifecycleTransitionItem, UpdateLifecycleTransitionOpt } from './lifecycle.js';
  10. import type geoSourceManager from '../coord/geo/geoSourceManager.js';
  11. declare type ModelFinder = modelUtil.ModelFinder;
  12. export declare const version = "5.4.0";
  13. export declare const dependencies: {
  14. zrender: string;
  15. };
  16. export declare const PRIORITY: {
  17. PROCESSOR: {
  18. FILTER: number;
  19. SERIES_FILTER: number;
  20. STATISTIC: number;
  21. };
  22. VISUAL: {
  23. LAYOUT: number;
  24. PROGRESSIVE_LAYOUT: number;
  25. GLOBAL: number;
  26. CHART: number;
  27. POST_CHART_LAYOUT: number;
  28. COMPONENT: number;
  29. BRUSH: number;
  30. CHART_ITEM: number;
  31. ARIA: number;
  32. DECAL: number;
  33. };
  34. };
  35. declare const IN_MAIN_PROCESS_KEY: "__flagInMainProcess";
  36. declare const PENDING_UPDATE: "__pendingUpdate";
  37. declare const STATUS_NEEDS_UPDATE_KEY: "__needsUpdateStatus";
  38. declare const CONNECT_STATUS_KEY: "__connectUpdateStatus";
  39. export declare type SetOptionTransitionOpt = UpdateLifecycleTransitionOpt;
  40. export declare type SetOptionTransitionOptItem = UpdateLifecycleTransitionItem;
  41. export interface SetOptionOpts {
  42. notMerge?: boolean;
  43. lazyUpdate?: boolean;
  44. silent?: boolean;
  45. replaceMerge?: GlobalModelSetOptionOpts['replaceMerge'];
  46. transition?: SetOptionTransitionOpt;
  47. }
  48. export interface ResizeOpts {
  49. width?: number | 'auto';
  50. height?: number | 'auto';
  51. animation?: AnimationOption;
  52. silent?: boolean;
  53. }
  54. interface PostIniter {
  55. (chart: EChartsType): void;
  56. }
  57. declare type RenderedEventParam = {
  58. elapsedTime: number;
  59. };
  60. declare type ECEventDefinition = {
  61. [key in ZRElementEventName]: EventCallbackSingleParam<ECElementEvent>;
  62. } & {
  63. rendered: EventCallbackSingleParam<RenderedEventParam>;
  64. finished: () => void | boolean;
  65. } & {
  66. [key: string]: (...args: unknown[]) => void | boolean;
  67. };
  68. declare type EChartsInitOpts = {
  69. locale?: string | LocaleOption;
  70. renderer?: RendererType;
  71. devicePixelRatio?: number;
  72. useDirtyRect?: boolean;
  73. useCoarsePointer?: boolean;
  74. pointerSize?: number;
  75. ssr?: boolean;
  76. width?: number;
  77. height?: number;
  78. };
  79. declare class ECharts extends Eventful<ECEventDefinition> {
  80. /**
  81. * @readonly
  82. */
  83. id: string;
  84. /**
  85. * Group id
  86. * @readonly
  87. */
  88. group: string;
  89. private _ssr;
  90. private _zr;
  91. private _dom;
  92. private _model;
  93. private _throttledZrFlush;
  94. private _theme;
  95. private _locale;
  96. private _chartsViews;
  97. private _chartsMap;
  98. private _componentsViews;
  99. private _componentsMap;
  100. private _coordSysMgr;
  101. private _api;
  102. private _scheduler;
  103. private _messageCenter;
  104. private _pendingActions;
  105. protected _$eventProcessor: never;
  106. private _disposed;
  107. private _loadingFX;
  108. private [PENDING_UPDATE];
  109. private [IN_MAIN_PROCESS_KEY];
  110. private [CONNECT_STATUS_KEY];
  111. private [STATUS_NEEDS_UPDATE_KEY];
  112. constructor(dom: HTMLElement, theme?: string | ThemeOption, opts?: EChartsInitOpts);
  113. private _onframe;
  114. getDom(): HTMLElement;
  115. getId(): string;
  116. getZr(): zrender.ZRenderType;
  117. isSSR(): boolean;
  118. /**
  119. * Usage:
  120. * chart.setOption(option, notMerge, lazyUpdate);
  121. * chart.setOption(option, {
  122. * notMerge: ...,
  123. * lazyUpdate: ...,
  124. * silent: ...
  125. * });
  126. *
  127. * @param opts opts or notMerge.
  128. * @param opts.notMerge Default `false`.
  129. * @param opts.lazyUpdate Default `false`. Useful when setOption frequently.
  130. * @param opts.silent Default `false`.
  131. * @param opts.replaceMerge Default undefined.
  132. */
  133. setOption<Opt extends ECBasicOption>(option: Opt, notMerge?: boolean, lazyUpdate?: boolean): void;
  134. setOption<Opt extends ECBasicOption>(option: Opt, opts?: SetOptionOpts): void;
  135. /**
  136. * @deprecated
  137. */
  138. private setTheme;
  139. private getModel;
  140. getOption(): ECBasicOption;
  141. getWidth(): number;
  142. getHeight(): number;
  143. getDevicePixelRatio(): number;
  144. /**
  145. * Get canvas which has all thing rendered
  146. * @deprecated Use renderToCanvas instead.
  147. */
  148. getRenderedCanvas(opts?: any): HTMLCanvasElement;
  149. renderToCanvas(opts?: {
  150. backgroundColor?: ZRColor;
  151. pixelRatio?: number;
  152. }): HTMLCanvasElement;
  153. renderToSVGString(opts?: {
  154. useViewBox?: boolean;
  155. }): string;
  156. /**
  157. * Get svg data url
  158. */
  159. getSvgDataURL(): string;
  160. getDataURL(opts?: {
  161. type?: 'png' | 'jpeg' | 'svg';
  162. pixelRatio?: number;
  163. backgroundColor?: ZRColor;
  164. excludeComponents?: ComponentMainType[];
  165. }): string;
  166. getConnectedDataURL(opts?: {
  167. type?: 'png' | 'jpeg' | 'svg';
  168. pixelRatio?: number;
  169. backgroundColor?: ZRColor;
  170. connectedBackgroundColor?: ZRColor;
  171. excludeComponents?: string[];
  172. }): string;
  173. /**
  174. * Convert from logical coordinate system to pixel coordinate system.
  175. * See CoordinateSystem#convertToPixel.
  176. */
  177. convertToPixel(finder: ModelFinder, value: ScaleDataValue): number;
  178. convertToPixel(finder: ModelFinder, value: ScaleDataValue[]): number[];
  179. /**
  180. * Convert from pixel coordinate system to logical coordinate system.
  181. * See CoordinateSystem#convertFromPixel.
  182. */
  183. convertFromPixel(finder: ModelFinder, value: number): number;
  184. convertFromPixel(finder: ModelFinder, value: number[]): number[];
  185. /**
  186. * Is the specified coordinate systems or components contain the given pixel point.
  187. * @param {Array|number} value
  188. * @return {boolean} result
  189. */
  190. containPixel(finder: ModelFinder, value: number[]): boolean;
  191. /**
  192. * Get visual from series or data.
  193. * @param finder
  194. * If string, e.g., 'series', means {seriesIndex: 0}.
  195. * If Object, could contain some of these properties below:
  196. * {
  197. * seriesIndex / seriesId / seriesName,
  198. * dataIndex / dataIndexInside
  199. * }
  200. * If dataIndex is not specified, series visual will be fetched,
  201. * but not data item visual.
  202. * If all of seriesIndex, seriesId, seriesName are not specified,
  203. * visual will be fetched from first series.
  204. * @param visualType 'color', 'symbol', 'symbolSize'
  205. */
  206. getVisual(finder: ModelFinder, visualType: string): string | number | number[] | import("zrender/lib/graphic/Pattern").PatternObject | import("zrender/lib/graphic/LinearGradient").LinearGradientObject | import("zrender/lib/graphic/RadialGradient").RadialGradientObject;
  207. /**
  208. * Get view of corresponding component model
  209. */
  210. private getViewOfComponentModel;
  211. /**
  212. * Get view of corresponding series model
  213. */
  214. private getViewOfSeriesModel;
  215. private _initEvents;
  216. isDisposed(): boolean;
  217. clear(): void;
  218. dispose(): void;
  219. /**
  220. * Resize the chart
  221. */
  222. resize(opts?: ResizeOpts): void;
  223. /**
  224. * Show loading effect
  225. * @param name 'default' by default
  226. * @param cfg cfg of registered loading effect
  227. */
  228. showLoading(cfg?: object): void;
  229. showLoading(name?: string, cfg?: object): void;
  230. /**
  231. * Hide loading effect
  232. */
  233. hideLoading(): void;
  234. makeActionFromEvent(eventObj: ECActionEvent): Payload;
  235. /**
  236. * @param opt If pass boolean, means opt.silent
  237. * @param opt.silent Default `false`. Whether trigger events.
  238. * @param opt.flush Default `undefined`.
  239. * true: Flush immediately, and then pixel in canvas can be fetched
  240. * immediately. Caution: it might affect performance.
  241. * false: Not flush.
  242. * undefined: Auto decide whether perform flush.
  243. */
  244. dispatchAction(payload: Payload, opt?: boolean | {
  245. silent?: boolean;
  246. flush?: boolean | undefined;
  247. }): void;
  248. updateLabelLayout(): void;
  249. appendData(params: {
  250. seriesIndex: number;
  251. data: any;
  252. }): void;
  253. private static internalField;
  254. }
  255. /**
  256. * @param opts.devicePixelRatio Use window.devicePixelRatio by default
  257. * @param opts.renderer Can choose 'canvas' or 'svg' to render the chart.
  258. * @param opts.width Use clientWidth of the input `dom` by default.
  259. * Can be 'auto' (the same as null/undefined)
  260. * @param opts.height Use clientHeight of the input `dom` by default.
  261. * Can be 'auto' (the same as null/undefined)
  262. * @param opts.locale Specify the locale.
  263. * @param opts.useDirtyRect Enable dirty rectangle rendering or not.
  264. */
  265. export declare function init(dom: HTMLElement, theme?: string | object, opts?: EChartsInitOpts): EChartsType;
  266. /**
  267. * @usage
  268. * (A)
  269. * ```js
  270. * let chart1 = echarts.init(dom1);
  271. * let chart2 = echarts.init(dom2);
  272. * chart1.group = 'xxx';
  273. * chart2.group = 'xxx';
  274. * echarts.connect('xxx');
  275. * ```
  276. * (B)
  277. * ```js
  278. * let chart1 = echarts.init(dom1);
  279. * let chart2 = echarts.init(dom2);
  280. * echarts.connect('xxx', [chart1, chart2]);
  281. * ```
  282. */
  283. export declare function connect(groupId: string | EChartsType[]): string;
  284. /**
  285. * @deprecated
  286. */
  287. export declare function disConnect(groupId: string): void;
  288. /**
  289. * Alias and backword compat
  290. */
  291. export declare const disconnect: typeof disConnect;
  292. /**
  293. * Dispose a chart instance
  294. */
  295. export declare function dispose(chart: EChartsType | HTMLElement | string): void;
  296. export declare function getInstanceByDom(dom: HTMLElement): EChartsType | undefined;
  297. export declare function getInstanceById(key: string): EChartsType | undefined;
  298. /**
  299. * Register theme
  300. */
  301. export declare function registerTheme(name: string, theme: ThemeOption): void;
  302. /**
  303. * Register option preprocessor
  304. */
  305. export declare function registerPreprocessor(preprocessorFunc: OptionPreprocessor): void;
  306. export declare function registerProcessor(priority: number | StageHandler | StageHandlerOverallReset, processor?: StageHandler | StageHandlerOverallReset): void;
  307. /**
  308. * Register postIniter
  309. * @param {Function} postInitFunc
  310. */
  311. export declare function registerPostInit(postInitFunc: PostIniter): void;
  312. /**
  313. * Register postUpdater
  314. * @param {Function} postUpdateFunc
  315. */
  316. export declare function registerPostUpdate(postUpdateFunc: PostUpdater): void;
  317. export declare function registerUpdateLifecycle<T extends keyof LifecycleEvents>(name: T, cb: (...args: LifecycleEvents[T]) => void): void;
  318. /**
  319. * @usage
  320. * registerAction('someAction', 'someEvent', function () { ... });
  321. * registerAction('someAction', function () { ... });
  322. * registerAction(
  323. * {type: 'someAction', event: 'someEvent', update: 'updateView'},
  324. * function () { ... }
  325. * );
  326. *
  327. * @param {(string|Object)} actionInfo
  328. * @param {string} actionInfo.type
  329. * @param {string} [actionInfo.event]
  330. * @param {string} [actionInfo.update]
  331. * @param {string} [eventName]
  332. * @param {Function} action
  333. */
  334. export declare function registerAction(type: string, eventName: string, action: ActionHandler): void;
  335. export declare function registerAction(type: string, action: ActionHandler): void;
  336. export declare function registerAction(actionInfo: ActionInfo, action: ActionHandler): void;
  337. export declare function registerCoordinateSystem(type: string, coordSysCreator: CoordinateSystemCreator): void;
  338. /**
  339. * Get dimensions of specified coordinate system.
  340. * @param {string} type
  341. * @return {Array.<string|Object>}
  342. */
  343. export declare function getCoordinateSystemDimensions(type: string): DimensionDefinitionLoose[];
  344. export { registerLocale } from './locale.js';
  345. /**
  346. * Layout is a special stage of visual encoding
  347. * Most visual encoding like color are common for different chart
  348. * But each chart has it's own layout algorithm
  349. */
  350. declare function registerLayout(priority: number, layoutTask: StageHandler | StageHandlerOverallReset): void;
  351. declare function registerLayout(layoutTask: StageHandler | StageHandlerOverallReset): void;
  352. declare function registerVisual(priority: number, layoutTask: StageHandler | StageHandlerOverallReset): void;
  353. declare function registerVisual(layoutTask: StageHandler | StageHandlerOverallReset): void;
  354. export { registerLayout, registerVisual };
  355. export declare function registerLoading(name: string, loadingFx: LoadingEffectCreator): void;
  356. /**
  357. * ZRender need a canvas context to do measureText.
  358. * But in node environment canvas may be created by node-canvas.
  359. * So we need to specify how to create a canvas instead of using document.createElement('canvas')
  360. *
  361. *
  362. * @deprecated use setPlatformAPI({ createCanvas }) instead.
  363. *
  364. * @example
  365. * let Canvas = require('canvas');
  366. * let echarts = require('echarts');
  367. * echarts.setCanvasCreator(function () {
  368. * // Small size is enough.
  369. * return new Canvas(32, 32);
  370. * });
  371. */
  372. export declare function setCanvasCreator(creator: () => HTMLCanvasElement): void;
  373. declare type RegisterMapParams = Parameters<typeof geoSourceManager.registerMap>;
  374. /**
  375. * The parameters and usage: see `geoSourceManager.registerMap`.
  376. * Compatible with previous `echarts.registerMap`.
  377. */
  378. export declare function registerMap(mapName: RegisterMapParams[0], geoJson: RegisterMapParams[1], specialAreas?: RegisterMapParams[2]): void;
  379. export declare function getMap(mapName: string): any;
  380. export declare const registerTransform: typeof registerExternalTransform;
  381. export declare const dataTool: {};
  382. export interface EChartsType extends ECharts {
  383. }