UNPKG

25 kBJavaScriptView Raw
1// 注册黑暗主题
2import { registerTheme } from './core';
3import { antvDark } from './theme/style-sheet/dark';
4import { createThemeByStyleSheet } from './theme/util/create-by-style-sheet';
5registerTheme('dark', createThemeByStyleSheet(antvDark));
6// 注册 G 渲染引擎
7import * as CanvasEngine from '@antv/g-canvas';
8import * as SVGEngine from '@antv/g-svg';
9import { registerEngine } from './core';
10registerEngine('canvas', CanvasEngine);
11registerEngine('svg', SVGEngine);
12// 注册 G2 内置的 geometry
13import { registerGeometry } from './core';
14import Area from './geometry/area';
15import Edge from './geometry/edge';
16import Heatmap from './geometry/heatmap';
17import Interval from './geometry/interval';
18import Line from './geometry/line';
19import Path from './geometry/path';
20import Point from './geometry/point';
21import Polygon from './geometry/polygon';
22import Schema from './geometry/schema';
23import Violin from './geometry/violin';
24registerGeometry('Polygon', Polygon);
25registerGeometry('Interval', Interval);
26registerGeometry('Schema', Schema);
27registerGeometry('Path', Path);
28registerGeometry('Point', Point);
29registerGeometry('Line', Line);
30registerGeometry('Area', Area);
31registerGeometry('Edge', Edge);
32registerGeometry('Heatmap', Heatmap);
33registerGeometry('Violin', Violin);
34// 引入所有内置的 shapes
35import './geometry/shape/area/line';
36import './geometry/shape/area/smooth';
37import './geometry/shape/area/smooth-line';
38import './geometry/shape/edge/arc';
39import './geometry/shape/edge/smooth';
40import './geometry/shape/edge/vhv';
41import './geometry/shape/interval/funnel';
42import './geometry/shape/interval/hollow-rect';
43import './geometry/shape/interval/line';
44import './geometry/shape/interval/pyramid';
45import './geometry/shape/interval/tick';
46import './geometry/shape/line/step';
47import './geometry/shape/point/hollow';
48import './geometry/shape/point/image';
49import './geometry/shape/point/solid';
50import './geometry/shape/schema/box';
51import './geometry/shape/schema/candle';
52import './geometry/shape/polygon/square';
53import './geometry/shape/violin/smooth';
54import './geometry/shape/violin/hollow';
55// 注册 Geometry 内置的 label
56import { registerGeometryLabel } from './core';
57import GeometryLabel from './geometry/label/base';
58import IntervalLabel from './geometry/label/interval';
59import PieLabel from './geometry/label/pie';
60import PolarLabel from './geometry/label/polar';
61registerGeometryLabel('base', GeometryLabel);
62registerGeometryLabel('interval', IntervalLabel);
63registerGeometryLabel('pie', PieLabel);
64registerGeometryLabel('polar', PolarLabel);
65// 注册 Geometry label 内置的布局函数
66import { registerGeometryLabelLayout } from './core';
67import { distribute } from './geometry/label/layout/pie/distribute';
68import { pieOuterLabelLayout } from './geometry/label/layout/pie/outer';
69import { pieSpiderLabelLayout } from './geometry/label/layout/pie/spider';
70import { limitInCanvas } from './geometry/label/layout/limit-in-canvas';
71import { limitInShape } from './geometry/label/layout/limit-in-shape';
72import { fixedOverlap, overlap } from './geometry/label/layout/overlap';
73import { hideOverlap } from './geometry/label/layout/hide-overlap';
74import { adjustColor } from './geometry/label/layout/adjust-color';
75import { intervalAdjustPosition } from './geometry/label/layout/interval/adjust-position';
76import { intervalHideOverlap } from './geometry/label/layout/interval/hide-overlap';
77import { pointAdjustPosition } from './geometry/label/layout/point/adjust-position';
78import { pathAdjustPosition } from './geometry/label/layout/path/adjust-position';
79import { limitInPlot } from './geometry/label/layout/limit-in-plot';
80registerGeometryLabelLayout('overlap', overlap);
81registerGeometryLabelLayout('distribute', distribute);
82registerGeometryLabelLayout('fixed-overlap', fixedOverlap);
83registerGeometryLabelLayout('hide-overlap', hideOverlap);
84registerGeometryLabelLayout('limit-in-shape', limitInShape);
85registerGeometryLabelLayout('limit-in-canvas', limitInCanvas);
86registerGeometryLabelLayout('limit-in-plot', limitInPlot);
87registerGeometryLabelLayout('pie-outer', pieOuterLabelLayout);
88registerGeometryLabelLayout('adjust-color', adjustColor);
89registerGeometryLabelLayout('interval-adjust-position', intervalAdjustPosition);
90registerGeometryLabelLayout('interval-hide-overlap', intervalHideOverlap);
91registerGeometryLabelLayout('point-adjust-position', pointAdjustPosition);
92registerGeometryLabelLayout('pie-spider', pieSpiderLabelLayout);
93registerGeometryLabelLayout('path-adjust-position', pathAdjustPosition);
94// 注册需要的动画执行函数
95import { fadeIn, fadeOut } from './animate/animation/fade';
96import { growInX, growInXY, growInY } from './animate/animation/grow-in';
97import { pathIn } from './animate/animation/path-in';
98import { positionUpdate } from './animate/animation/position-update';
99import { scaleInX, scaleInY } from './animate/animation/scale-in';
100import { sectorPathUpdate } from './animate/animation/sector-path-update';
101import { waveIn } from './animate/animation/wave-in';
102import { zoomIn, zoomOut } from './animate/animation/zoom';
103import { registerAnimation } from './core';
104registerAnimation('fade-in', fadeIn);
105registerAnimation('fade-out', fadeOut);
106registerAnimation('grow-in-x', growInX);
107registerAnimation('grow-in-xy', growInXY);
108registerAnimation('grow-in-y', growInY);
109registerAnimation('scale-in-x', scaleInX);
110registerAnimation('scale-in-y', scaleInY);
111registerAnimation('wave-in', waveIn);
112registerAnimation('zoom-in', zoomIn);
113registerAnimation('zoom-out', zoomOut);
114registerAnimation('position-update', positionUpdate);
115registerAnimation('sector-path-update', sectorPathUpdate);
116registerAnimation('path-in', pathIn);
117// 注册内置的 Facet
118import { registerFacet } from './core';
119import Circle from './facet/circle';
120import List from './facet/list';
121import Matrix from './facet/matrix';
122import Mirror from './facet/mirror';
123import Rect from './facet/rect';
124import Tree from './facet/tree';
125registerFacet('rect', Rect);
126registerFacet('mirror', Mirror);
127registerFacet('list', List);
128registerFacet('matrix', Matrix);
129registerFacet('circle', Circle);
130registerFacet('tree', Tree);
131// 注册内置的 Component
132import { registerComponentController } from './core';
133import Annotation from './chart/controller/annotation';
134import Axis from './chart/controller/axis';
135import Legend from './chart/controller/legend';
136import Slider from './chart/controller/slider';
137import Tooltip from './chart/controller/tooltip';
138import Scrollbar from './chart/controller/scrollbar';
139// register build-in components
140registerComponentController('axis', Axis);
141registerComponentController('legend', Legend);
142registerComponentController('tooltip', Tooltip);
143registerComponentController('annotation', Annotation);
144registerComponentController('slider', Slider);
145registerComponentController('scrollbar', Scrollbar);
146// 注册 Interaction Action
147import { registerAction } from './core';
148import ActiveRegion from './interaction/action/active-region';
149import SiblingTooltip from './interaction/action/component/tooltip/sibling';
150import TooltipAction from './interaction/action/component/tooltip/geometry';
151import EllipsisTextAction from './interaction/action/component/tooltip/ellipsis-text';
152import ElementActive from './interaction/action/element/active';
153import ElementLinkByColor from './interaction/action/element/link-by-color';
154import ElementRangeActive from './interaction/action/element/range-active';
155import ElementSingleActive from './interaction/action/element/single-active';
156import ElementHighlight from './interaction/action/element/highlight';
157import ElementHighlightByColor from './interaction/action/element/highlight-by-color';
158import ElementHighlightByX from './interaction/action/element/highlight-by-x';
159import ElementRangeHighlight, { ELEMENT_RANGE_HIGHLIGHT_EVENTS } from './interaction/action/element/range-highlight';
160import ElementSingleHighlight from './interaction/action/element/single-highlight';
161import ElementRangeSelected from './interaction/action/element/range-selected';
162import ElementSelected from './interaction/action/element/selected';
163import ElementSingleSelected from './interaction/action/element/single-selected';
164import ListActive from './interaction/action/component/list-active';
165import ListHighlight from './interaction/action/component/list-highlight';
166import ListSelected from './interaction/action/component/list-selected';
167import ListUnchecked from './interaction/action/component/list-unchecked';
168import ListChecked from './interaction/action/component/list-checked';
169import ListFocus from './interaction/action/component/list-focus';
170import ListRadio from './interaction/action/component/list-radio';
171import CircleMask from './interaction/action/mask/circle';
172import DimMask from './interaction/action/mask/dim-rect';
173import PathMask from './interaction/action/mask/path';
174import RectMask from './interaction/action/mask/rect';
175import SmoothPathMask from './interaction/action/mask/smooth-path';
176import CursorAction from './interaction/action/cursor';
177import DataFilter from './interaction/action/data/filter';
178import DataRangeFilter, { BRUSH_FILTER_EVENTS } from './interaction/action/data/range-filter';
179import SiblingFilter from './interaction/action/data/sibling-filter';
180import ElementFilter from './interaction/action/element/filter';
181import ElementSiblingFilter from './interaction/action/element/sibling-filter';
182import ButtonAction from './interaction/action/view/button';
183import ViewDrag from './interaction/action/view/drag';
184import ViewMove from './interaction/action/view/move';
185import ScaleTranslate from './interaction/action/view/scale-translate';
186import ScaleZoom from './interaction/action/view/scale-zoom';
187import MousewheelScroll from './interaction/action/view/mousewheel-scroll';
188registerAction('tooltip', TooltipAction);
189registerAction('sibling-tooltip', SiblingTooltip);
190registerAction('ellipsis-text', EllipsisTextAction);
191registerAction('element-active', ElementActive);
192registerAction('element-single-active', ElementSingleActive);
193registerAction('element-range-active', ElementRangeActive);
194registerAction('element-highlight', ElementHighlight);
195registerAction('element-highlight-by-x', ElementHighlightByX);
196registerAction('element-highlight-by-color', ElementHighlightByColor);
197registerAction('element-single-highlight', ElementSingleHighlight);
198registerAction('element-range-highlight', ElementRangeHighlight);
199registerAction('element-sibling-highlight', ElementRangeHighlight, {
200 effectSiblings: true,
201 effectByRecord: true,
202});
203registerAction('element-selected', ElementSelected);
204registerAction('element-single-selected', ElementSingleSelected);
205registerAction('element-range-selected', ElementRangeSelected);
206registerAction('element-link-by-color', ElementLinkByColor);
207registerAction('active-region', ActiveRegion);
208registerAction('list-active', ListActive);
209registerAction('list-selected', ListSelected);
210registerAction('list-highlight', ListHighlight);
211registerAction('list-unchecked', ListUnchecked);
212registerAction('list-checked', ListChecked);
213registerAction('list-focus', ListFocus);
214registerAction('list-radio', ListRadio);
215registerAction('legend-item-highlight', ListHighlight, {
216 componentNames: ['legend'],
217});
218registerAction('axis-label-highlight', ListHighlight, {
219 componentNames: ['axis'],
220});
221registerAction('rect-mask', RectMask);
222registerAction('x-rect-mask', DimMask, { dim: 'x' });
223registerAction('y-rect-mask', DimMask, { dim: 'y' });
224registerAction('circle-mask', CircleMask);
225registerAction('path-mask', PathMask);
226registerAction('smooth-path-mask', SmoothPathMask);
227registerAction('cursor', CursorAction);
228registerAction('data-filter', DataFilter);
229registerAction('brush', DataRangeFilter);
230registerAction('brush-x', DataRangeFilter, { dims: ['x'] });
231registerAction('brush-y', DataRangeFilter, { dims: ['y'] });
232registerAction('sibling-filter', SiblingFilter);
233registerAction('sibling-x-filter', SiblingFilter);
234registerAction('sibling-y-filter', SiblingFilter);
235registerAction('element-filter', ElementFilter);
236registerAction('element-sibling-filter', ElementSiblingFilter);
237registerAction('element-sibling-filter-record', ElementSiblingFilter, { byRecord: true });
238registerAction('view-drag', ViewDrag);
239registerAction('view-move', ViewMove);
240registerAction('scale-translate', ScaleTranslate);
241registerAction('scale-zoom', ScaleZoom);
242registerAction('reset-button', ButtonAction, {
243 name: 'reset-button',
244 text: 'reset',
245});
246registerAction('mousewheel-scroll', MousewheelScroll);
247// 注册默认的 Interaction 交互行为
248import { registerInteraction } from './core';
249function isPointInView(context) {
250 return context.isInPlot();
251}
252// 注册 tooltip 的 interaction
253registerInteraction('tooltip', {
254 start: [
255 { trigger: 'plot:mousemove', action: 'tooltip:show', throttle: { wait: 50, leading: true, trailing: false } },
256 { trigger: 'plot:touchmove', action: 'tooltip:show', throttle: { wait: 50, leading: true, trailing: false } },
257 ],
258 end: [
259 { trigger: 'plot:mouseleave', action: 'tooltip:hide' },
260 { trigger: 'plot:leave', action: 'tooltip:hide' },
261 { trigger: 'plot:touchend', action: 'tooltip:hide' },
262 ],
263});
264registerInteraction('ellipsis-text', {
265 start: [
266 {
267 trigger: 'legend-item-name:mousemove',
268 action: 'ellipsis-text:show',
269 throttle: { wait: 50, leading: true, trailing: false },
270 },
271 {
272 trigger: 'legend-item-name:touchstart',
273 action: 'ellipsis-text:show',
274 throttle: { wait: 50, leading: true, trailing: false },
275 },
276 {
277 trigger: 'axis-label:mousemove',
278 action: 'ellipsis-text:show',
279 throttle: { wait: 50, leading: true, trailing: false },
280 },
281 {
282 trigger: 'axis-label:touchstart',
283 action: 'ellipsis-text:show',
284 throttle: { wait: 50, leading: true, trailing: false },
285 },
286 ],
287 end: [
288 { trigger: 'legend-item-name:mouseleave', action: 'ellipsis-text:hide' },
289 { trigger: 'legend-item-name:touchend', action: 'ellipsis-text:hide' },
290 { trigger: 'axis-label:mouseleave', action: 'ellipsis-text:hide' },
291 { trigger: 'axis-label:touchend', action: 'ellipsis-text:hide' },
292 ],
293});
294// 移动到 element 上 active
295registerInteraction('element-active', {
296 start: [{ trigger: 'element:mouseenter', action: 'element-active:active' }],
297 end: [{ trigger: 'element:mouseleave', action: 'element-active:reset' }],
298});
299// 点击选中,允许取消
300registerInteraction('element-selected', {
301 start: [{ trigger: 'element:click', action: 'element-selected:toggle' }],
302});
303// hover highlight,允许取消
304registerInteraction('element-highlight', {
305 start: [{ trigger: 'element:mouseenter', action: 'element-highlight:highlight' }],
306 end: [{ trigger: 'element:mouseleave', action: 'element-highlight:reset' }],
307});
308// hover highlight by x,允许取消
309registerInteraction('element-highlight-by-x', {
310 start: [{ trigger: 'element:mouseenter', action: 'element-highlight-by-x:highlight' }],
311 end: [{ trigger: 'element:mouseleave', action: 'element-highlight-by-x:reset' }],
312});
313// hover highlight by y,允许取消
314registerInteraction('element-highlight-by-color', {
315 start: [{ trigger: 'element:mouseenter', action: 'element-highlight-by-color:highlight' }],
316 end: [{ trigger: 'element:mouseleave', action: 'element-highlight-by-color:reset' }],
317});
318// legend hover,element active
319registerInteraction('legend-active', {
320 start: [{ trigger: 'legend-item:mouseenter', action: ['list-active:active', 'element-active:active'] }],
321 end: [{ trigger: 'legend-item:mouseleave', action: ['list-active:reset', 'element-active:reset'] }],
322});
323// legend hover,element active
324registerInteraction('legend-highlight', {
325 start: [
326 { trigger: 'legend-item:mouseenter', action: ['legend-item-highlight:highlight', 'element-highlight:highlight'] },
327 ],
328 end: [{ trigger: 'legend-item:mouseleave', action: ['legend-item-highlight:reset', 'element-highlight:reset'] }],
329});
330// legend hover,element active
331registerInteraction('axis-label-highlight', {
332 start: [
333 { trigger: 'axis-label:mouseenter', action: ['axis-label-highlight:highlight', 'element-highlight:highlight'] },
334 ],
335 end: [{ trigger: 'axis-label:mouseleave', action: ['axis-label-highlight:reset', 'element-highlight:reset'] }],
336});
337// legend hover,element active
338registerInteraction('element-list-highlight', {
339 start: [{ trigger: 'element:mouseenter', action: ['list-highlight:highlight', 'element-highlight:highlight'] }],
340 end: [{ trigger: 'element:mouseleave', action: ['list-highlight:reset', 'element-highlight:reset'] }],
341});
342// 框选
343registerInteraction('element-range-highlight', {
344 showEnable: [
345 { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },
346 { trigger: 'mask:mouseenter', action: 'cursor:move' },
347 { trigger: 'plot:mouseleave', action: 'cursor:default' },
348 { trigger: 'mask:mouseleave', action: 'cursor:crosshair' },
349 ],
350 start: [
351 {
352 trigger: 'plot:mousedown',
353 isEnable: function (context) {
354 // 不要点击在 mask 上重新开始
355 return !context.isInShape('mask');
356 },
357 action: ['rect-mask:start', 'rect-mask:show'],
358 },
359 {
360 trigger: 'mask:dragstart',
361 action: ['rect-mask:moveStart'],
362 },
363 ],
364 processing: [
365 {
366 trigger: 'plot:mousemove',
367 action: ['rect-mask:resize'],
368 },
369 {
370 trigger: 'mask:drag',
371 action: ['rect-mask:move'],
372 },
373 {
374 trigger: 'mask:change',
375 action: ['element-range-highlight:highlight'],
376 },
377 ],
378 end: [
379 { trigger: 'plot:mouseup', action: ['rect-mask:end'] },
380 { trigger: 'mask:dragend', action: ['rect-mask:moveEnd'] },
381 {
382 trigger: 'document:mouseup',
383 isEnable: function (context) {
384 return !context.isInPlot();
385 },
386 action: ['element-range-highlight:clear', 'rect-mask:end', 'rect-mask:hide'],
387 },
388 ],
389 rollback: [{ trigger: 'dblclick', action: ['element-range-highlight:clear', 'rect-mask:hide'] }],
390});
391registerInteraction('brush', {
392 showEnable: [
393 { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },
394 { trigger: 'plot:mouseleave', action: 'cursor:default' },
395 ],
396 start: [
397 {
398 trigger: 'mousedown',
399 isEnable: isPointInView,
400 action: ['brush:start', 'rect-mask:start', 'rect-mask:show'],
401 },
402 ],
403 processing: [
404 {
405 trigger: 'mousemove',
406 isEnable: isPointInView,
407 action: ['rect-mask:resize'],
408 },
409 ],
410 end: [
411 {
412 trigger: 'mouseup',
413 isEnable: isPointInView,
414 action: ['brush:filter', 'brush:end', 'rect-mask:end', 'rect-mask:hide', 'reset-button:show'],
415 },
416 ],
417 rollback: [{ trigger: 'reset-button:click', action: ['brush:reset', 'reset-button:hide', 'cursor:crosshair'] }],
418});
419registerInteraction('brush-visible', {
420 showEnable: [
421 { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },
422 { trigger: 'plot:mouseleave', action: 'cursor:default' },
423 ],
424 start: [
425 {
426 trigger: 'plot:mousedown',
427 action: ['rect-mask:start', 'rect-mask:show'],
428 },
429 ],
430 processing: [
431 {
432 trigger: 'plot:mousemove',
433 action: ['rect-mask:resize'],
434 },
435 { trigger: 'mask:change', action: ['element-range-highlight:highlight'] },
436 ],
437 end: [
438 {
439 trigger: 'plot:mouseup',
440 action: ['rect-mask:end', 'rect-mask:hide', 'element-filter:filter', 'element-range-highlight:clear'],
441 },
442 ],
443 rollback: [
444 {
445 trigger: 'dblclick',
446 action: ['element-filter:clear'],
447 },
448 ],
449});
450registerInteraction('brush-x', {
451 showEnable: [
452 { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },
453 { trigger: 'plot:mouseleave', action: 'cursor:default' },
454 ],
455 start: [
456 {
457 trigger: 'mousedown',
458 isEnable: isPointInView,
459 action: ['brush-x:start', 'x-rect-mask:start', 'x-rect-mask:show'],
460 },
461 ],
462 processing: [
463 {
464 trigger: 'mousemove',
465 isEnable: isPointInView,
466 action: ['x-rect-mask:resize'],
467 },
468 ],
469 end: [
470 {
471 trigger: 'mouseup',
472 isEnable: isPointInView,
473 action: ['brush-x:filter', 'brush-x:end', 'x-rect-mask:end', 'x-rect-mask:hide'],
474 },
475 ],
476 rollback: [{ trigger: 'dblclick', action: ['brush-x:reset'] }],
477});
478registerInteraction('element-path-highlight', {
479 showEnable: [
480 { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },
481 { trigger: 'plot:mouseleave', action: 'cursor:default' },
482 ],
483 start: [
484 { trigger: 'mousedown', isEnable: isPointInView, action: 'path-mask:start' },
485 { trigger: 'mousedown', isEnable: isPointInView, action: 'path-mask:show' },
486 ],
487 processing: [{ trigger: 'mousemove', action: 'path-mask:addPoint' }],
488 end: [{ trigger: 'mouseup', action: 'path-mask:end' }],
489 rollback: [{ trigger: 'dblclick', action: 'path-mask:hide' }],
490});
491// 点击选中,允许取消
492registerInteraction('element-single-selected', {
493 start: [{ trigger: 'element:click', action: 'element-single-selected:toggle' }],
494});
495// 筛选数据
496registerInteraction('legend-filter', {
497 showEnable: [
498 { trigger: 'legend-item:mouseenter', action: ['cursor:pointer', 'list-radio:show'] },
499 { trigger: 'legend-item:mouseleave', action: ['cursor:default', 'list-radio:hide'] },
500 ],
501 start: [
502 {
503 trigger: 'legend-item:click',
504 isEnable: function (context) {
505 return !context.isInShape('legend-item-radio');
506 },
507 action: ['list-unchecked:toggle', 'data-filter:filter', 'list-radio:show'],
508 },
509 // 正反选数据: 只有当 radio === truthy 的时候才会有 legend-item-radio 这个元素
510 {
511 trigger: 'legend-item-radio:mouseenter',
512 action: ['list-radio:showTip'],
513 },
514 {
515 trigger: 'legend-item-radio:mouseleave',
516 action: ['list-radio:hideTip'],
517 },
518 {
519 trigger: 'legend-item-radio:click',
520 action: ['list-focus:toggle', 'data-filter:filter', 'list-radio:show'],
521 },
522 ],
523});
524// 筛选数据
525registerInteraction('continuous-filter', {
526 start: [{ trigger: 'legend:valuechanged', action: 'data-filter:filter' }],
527});
528// 筛选数据
529registerInteraction('continuous-visible-filter', {
530 start: [{ trigger: 'legend:valuechanged', action: 'element-filter:filter' }],
531});
532// 筛选图形
533registerInteraction('legend-visible-filter', {
534 showEnable: [
535 { trigger: 'legend-item:mouseenter', action: 'cursor:pointer' },
536 { trigger: 'legend-item:mouseleave', action: 'cursor:default' },
537 ],
538 start: [{ trigger: 'legend-item:click', action: ['list-unchecked:toggle', 'element-filter:filter'] }],
539});
540// 出现背景框
541registerInteraction('active-region', {
542 start: [{ trigger: 'plot:mousemove', action: 'active-region:show' }],
543 end: [{ trigger: 'plot:mouseleave', action: 'active-region:hide' }],
544});
545function isWheelDown(event) {
546 event.gEvent.preventDefault();
547 return event.gEvent.originalEvent.deltaY > 0;
548}
549registerInteraction('view-zoom', {
550 start: [
551 {
552 trigger: 'plot:mousewheel',
553 isEnable: function (context) {
554 return isWheelDown(context.event);
555 },
556 action: 'scale-zoom:zoomOut',
557 throttle: { wait: 100, leading: true, trailing: false },
558 },
559 {
560 trigger: 'plot:mousewheel',
561 isEnable: function (context) {
562 return !isWheelDown(context.event);
563 },
564 action: 'scale-zoom:zoomIn',
565 throttle: { wait: 100, leading: true, trailing: false },
566 },
567 ],
568});
569registerInteraction('sibling-tooltip', {
570 start: [{ trigger: 'plot:mousemove', action: 'sibling-tooltip:show' }],
571 end: [{ trigger: 'plot:mouseleave', action: 'sibling-tooltip:hide' }],
572});
573registerInteraction('plot-mousewheel-scroll', {
574 start: [{ trigger: 'plot:mousewheel', action: 'mousewheel-scroll:scroll' }],
575});
576// 暴露一些常量
577export { VIEW_LIFE_CIRCLE } from './constant';
578/** brush 范围筛选的一些事件常量 */
579export { BRUSH_FILTER_EVENTS, ELEMENT_RANGE_HIGHLIGHT_EVENTS };
580export * from './core';
581//# sourceMappingURL=index.js.map
\No newline at end of file