UNPKG

25.5 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';
188import AxisDescription from './interaction/action/component/axis/axis-description';
189registerAction('tooltip', TooltipAction);
190registerAction('sibling-tooltip', SiblingTooltip);
191registerAction('ellipsis-text', EllipsisTextAction);
192registerAction('element-active', ElementActive);
193registerAction('element-single-active', ElementSingleActive);
194registerAction('element-range-active', ElementRangeActive);
195registerAction('element-highlight', ElementHighlight);
196registerAction('element-highlight-by-x', ElementHighlightByX);
197registerAction('element-highlight-by-color', ElementHighlightByColor);
198registerAction('element-single-highlight', ElementSingleHighlight);
199registerAction('element-range-highlight', ElementRangeHighlight);
200registerAction('element-sibling-highlight', ElementRangeHighlight, {
201 effectSiblings: true,
202 effectByRecord: true,
203});
204registerAction('element-selected', ElementSelected);
205registerAction('element-single-selected', ElementSingleSelected);
206registerAction('element-range-selected', ElementRangeSelected);
207registerAction('element-link-by-color', ElementLinkByColor);
208registerAction('active-region', ActiveRegion);
209registerAction('list-active', ListActive);
210registerAction('list-selected', ListSelected);
211registerAction('list-highlight', ListHighlight);
212registerAction('list-unchecked', ListUnchecked);
213registerAction('list-checked', ListChecked);
214registerAction('list-focus', ListFocus);
215registerAction('list-radio', ListRadio);
216registerAction('legend-item-highlight', ListHighlight, {
217 componentNames: ['legend'],
218});
219registerAction('axis-label-highlight', ListHighlight, {
220 componentNames: ['axis'],
221});
222registerAction('axis-description', AxisDescription);
223registerAction('rect-mask', RectMask);
224registerAction('x-rect-mask', DimMask, { dim: 'x' });
225registerAction('y-rect-mask', DimMask, { dim: 'y' });
226registerAction('circle-mask', CircleMask);
227registerAction('path-mask', PathMask);
228registerAction('smooth-path-mask', SmoothPathMask);
229registerAction('cursor', CursorAction);
230registerAction('data-filter', DataFilter);
231registerAction('brush', DataRangeFilter);
232registerAction('brush-x', DataRangeFilter, { dims: ['x'] });
233registerAction('brush-y', DataRangeFilter, { dims: ['y'] });
234registerAction('sibling-filter', SiblingFilter);
235registerAction('sibling-x-filter', SiblingFilter);
236registerAction('sibling-y-filter', SiblingFilter);
237registerAction('element-filter', ElementFilter);
238registerAction('element-sibling-filter', ElementSiblingFilter);
239registerAction('element-sibling-filter-record', ElementSiblingFilter, { byRecord: true });
240registerAction('view-drag', ViewDrag);
241registerAction('view-move', ViewMove);
242registerAction('scale-translate', ScaleTranslate);
243registerAction('scale-zoom', ScaleZoom);
244registerAction('reset-button', ButtonAction, {
245 name: 'reset-button',
246 text: 'reset',
247});
248registerAction('mousewheel-scroll', MousewheelScroll);
249// 注册默认的 Interaction 交互行为
250import { registerInteraction } from './core';
251function isPointInView(context) {
252 return context.isInPlot();
253}
254// 注册 tooltip 的 interaction
255registerInteraction('tooltip', {
256 start: [
257 { trigger: 'plot:mousemove', action: 'tooltip:show', throttle: { wait: 50, leading: true, trailing: false } },
258 { trigger: 'plot:touchmove', action: 'tooltip:show', throttle: { wait: 50, leading: true, trailing: false } },
259 ],
260 end: [
261 { trigger: 'plot:mouseleave', action: 'tooltip:hide' },
262 { trigger: 'plot:leave', action: 'tooltip:hide' },
263 { trigger: 'plot:touchend', action: 'tooltip:hide' },
264 ],
265});
266registerInteraction('ellipsis-text', {
267 start: [
268 {
269 trigger: 'legend-item-name:mousemove',
270 action: 'ellipsis-text:show',
271 throttle: { wait: 50, leading: true, trailing: false },
272 },
273 {
274 trigger: 'legend-item-name:touchstart',
275 action: 'ellipsis-text:show',
276 throttle: { wait: 50, leading: true, trailing: false },
277 },
278 {
279 trigger: 'axis-label:mousemove',
280 action: 'ellipsis-text:show',
281 throttle: { wait: 50, leading: true, trailing: false },
282 },
283 {
284 trigger: 'axis-label:touchstart',
285 action: 'ellipsis-text:show',
286 throttle: { wait: 50, leading: true, trailing: false },
287 },
288 ],
289 end: [
290 { trigger: 'legend-item-name:mouseleave', action: 'ellipsis-text:hide' },
291 { trigger: 'legend-item-name:touchend', action: 'ellipsis-text:hide' },
292 { trigger: 'axis-label:mouseleave', action: 'ellipsis-text:hide' },
293 { trigger: 'axis-label:mouseout', action: 'ellipsis-text:hide' },
294 { trigger: 'axis-label:touchend', action: 'ellipsis-text:hide' },
295 ],
296});
297// 移动到 element 上 active
298registerInteraction('element-active', {
299 start: [{ trigger: 'element:mouseenter', action: 'element-active:active' }],
300 end: [{ trigger: 'element:mouseleave', action: 'element-active:reset' }],
301});
302// 点击选中,允许取消
303registerInteraction('element-selected', {
304 start: [{ trigger: 'element:click', action: 'element-selected:toggle' }],
305});
306// hover highlight,允许取消
307registerInteraction('element-highlight', {
308 start: [{ trigger: 'element:mouseenter', action: 'element-highlight:highlight' }],
309 end: [{ trigger: 'element:mouseleave', action: 'element-highlight:reset' }],
310});
311// hover highlight by x,允许取消
312registerInteraction('element-highlight-by-x', {
313 start: [{ trigger: 'element:mouseenter', action: 'element-highlight-by-x:highlight' }],
314 end: [{ trigger: 'element:mouseleave', action: 'element-highlight-by-x:reset' }],
315});
316// hover highlight by y,允许取消
317registerInteraction('element-highlight-by-color', {
318 start: [{ trigger: 'element:mouseenter', action: 'element-highlight-by-color:highlight' }],
319 end: [{ trigger: 'element:mouseleave', action: 'element-highlight-by-color:reset' }],
320});
321// legend hover,element active
322registerInteraction('legend-active', {
323 start: [{ trigger: 'legend-item:mouseenter', action: ['list-active:active', 'element-active:active'] }],
324 end: [{ trigger: 'legend-item:mouseleave', action: ['list-active:reset', 'element-active:reset'] }],
325});
326// legend hover,element active
327registerInteraction('legend-highlight', {
328 start: [
329 { trigger: 'legend-item:mouseenter', action: ['legend-item-highlight:highlight', 'element-highlight:highlight'] },
330 ],
331 end: [{ trigger: 'legend-item:mouseleave', action: ['legend-item-highlight:reset', 'element-highlight:reset'] }],
332});
333// legend hover,element active
334registerInteraction('axis-label-highlight', {
335 start: [
336 { trigger: 'axis-label:mouseenter', action: ['axis-label-highlight:highlight', 'element-highlight:highlight'] },
337 ],
338 end: [{ trigger: 'axis-label:mouseleave', action: ['axis-label-highlight:reset', 'element-highlight:reset'] }],
339});
340// legend hover,element active
341registerInteraction('element-list-highlight', {
342 start: [{ trigger: 'element:mouseenter', action: ['list-highlight:highlight', 'element-highlight:highlight'] }],
343 end: [{ trigger: 'element:mouseleave', action: ['list-highlight:reset', 'element-highlight:reset'] }],
344});
345// 框选
346registerInteraction('element-range-highlight', {
347 showEnable: [
348 { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },
349 { trigger: 'mask:mouseenter', action: 'cursor:move' },
350 { trigger: 'plot:mouseleave', action: 'cursor:default' },
351 { trigger: 'mask:mouseleave', action: 'cursor:crosshair' },
352 ],
353 start: [
354 {
355 trigger: 'plot:mousedown',
356 isEnable: function (context) {
357 // 不要点击在 mask 上重新开始
358 return !context.isInShape('mask');
359 },
360 action: ['rect-mask:start', 'rect-mask:show'],
361 },
362 {
363 trigger: 'mask:dragstart',
364 action: ['rect-mask:moveStart'],
365 },
366 ],
367 processing: [
368 {
369 trigger: 'plot:mousemove',
370 action: ['rect-mask:resize'],
371 },
372 {
373 trigger: 'mask:drag',
374 action: ['rect-mask:move'],
375 },
376 {
377 trigger: 'mask:change',
378 action: ['element-range-highlight:highlight'],
379 },
380 ],
381 end: [
382 { trigger: 'plot:mouseup', action: ['rect-mask:end'] },
383 { trigger: 'mask:dragend', action: ['rect-mask:moveEnd'] },
384 {
385 trigger: 'document:mouseup',
386 isEnable: function (context) {
387 return !context.isInPlot();
388 },
389 action: ['element-range-highlight:clear', 'rect-mask:end', 'rect-mask:hide'],
390 },
391 ],
392 rollback: [{ trigger: 'dblclick', action: ['element-range-highlight:clear', 'rect-mask:hide'] }],
393});
394registerInteraction('brush', {
395 showEnable: [
396 { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },
397 { trigger: 'plot:mouseleave', action: 'cursor:default' },
398 ],
399 start: [
400 {
401 trigger: 'mousedown',
402 isEnable: isPointInView,
403 action: ['brush:start', 'rect-mask:start', 'rect-mask:show'],
404 },
405 ],
406 processing: [
407 {
408 trigger: 'mousemove',
409 isEnable: isPointInView,
410 action: ['rect-mask:resize'],
411 },
412 ],
413 end: [
414 {
415 trigger: 'mouseup',
416 isEnable: isPointInView,
417 action: ['brush:filter', 'brush:end', 'rect-mask:end', 'rect-mask:hide', 'reset-button:show'],
418 },
419 ],
420 rollback: [{ trigger: 'reset-button:click', action: ['brush:reset', 'reset-button:hide', 'cursor:crosshair'] }],
421});
422registerInteraction('brush-visible', {
423 showEnable: [
424 { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },
425 { trigger: 'plot:mouseleave', action: 'cursor:default' },
426 ],
427 start: [
428 {
429 trigger: 'plot:mousedown',
430 action: ['rect-mask:start', 'rect-mask:show'],
431 },
432 ],
433 processing: [
434 {
435 trigger: 'plot:mousemove',
436 action: ['rect-mask:resize'],
437 },
438 { trigger: 'mask:change', action: ['element-range-highlight:highlight'] },
439 ],
440 end: [
441 {
442 trigger: 'plot:mouseup',
443 action: ['rect-mask:end', 'rect-mask:hide', 'element-filter:filter', 'element-range-highlight:clear'],
444 },
445 ],
446 rollback: [
447 {
448 trigger: 'dblclick',
449 action: ['element-filter:clear'],
450 },
451 ],
452});
453registerInteraction('brush-x', {
454 showEnable: [
455 { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },
456 { trigger: 'plot:mouseleave', action: 'cursor:default' },
457 ],
458 start: [
459 {
460 trigger: 'mousedown',
461 isEnable: isPointInView,
462 action: ['brush-x:start', 'x-rect-mask:start', 'x-rect-mask:show'],
463 },
464 ],
465 processing: [
466 {
467 trigger: 'mousemove',
468 isEnable: isPointInView,
469 action: ['x-rect-mask:resize'],
470 },
471 ],
472 end: [
473 {
474 trigger: 'mouseup',
475 isEnable: isPointInView,
476 action: ['brush-x:filter', 'brush-x:end', 'x-rect-mask:end', 'x-rect-mask:hide'],
477 },
478 ],
479 rollback: [{ trigger: 'dblclick', action: ['brush-x:reset'] }],
480});
481registerInteraction('element-path-highlight', {
482 showEnable: [
483 { trigger: 'plot:mouseenter', action: 'cursor:crosshair' },
484 { trigger: 'plot:mouseleave', action: 'cursor:default' },
485 ],
486 start: [
487 { trigger: 'mousedown', isEnable: isPointInView, action: 'path-mask:start' },
488 { trigger: 'mousedown', isEnable: isPointInView, action: 'path-mask:show' },
489 ],
490 processing: [{ trigger: 'mousemove', action: 'path-mask:addPoint' }],
491 end: [{ trigger: 'mouseup', action: 'path-mask:end' }],
492 rollback: [{ trigger: 'dblclick', action: 'path-mask:hide' }],
493});
494// 点击选中,允许取消
495registerInteraction('element-single-selected', {
496 start: [{ trigger: 'element:click', action: 'element-single-selected:toggle' }],
497});
498// 筛选数据
499registerInteraction('legend-filter', {
500 showEnable: [
501 { trigger: 'legend-item:mouseenter', action: ['cursor:pointer', 'list-radio:show'] },
502 { trigger: 'legend-item:mouseleave', action: ['cursor:default', 'list-radio:hide'] },
503 ],
504 start: [
505 {
506 trigger: 'legend-item:click',
507 isEnable: function (context) {
508 return !context.isInShape('legend-item-radio');
509 },
510 action: ['list-unchecked:toggle', 'data-filter:filter', 'list-radio:show'],
511 },
512 // 正反选数据: 只有当 radio === truthy 的时候才会有 legend-item-radio 这个元素
513 {
514 trigger: 'legend-item-radio:mouseenter',
515 action: ['list-radio:showTip'],
516 },
517 {
518 trigger: 'legend-item-radio:mouseleave',
519 action: ['list-radio:hideTip'],
520 },
521 {
522 trigger: 'legend-item-radio:click',
523 action: ['list-focus:toggle', 'data-filter:filter', 'list-radio:show'],
524 },
525 ],
526});
527// 筛选数据
528registerInteraction('continuous-filter', {
529 start: [{ trigger: 'legend:valuechanged', action: 'data-filter:filter' }],
530});
531// 筛选数据
532registerInteraction('continuous-visible-filter', {
533 start: [{ trigger: 'legend:valuechanged', action: 'element-filter:filter' }],
534});
535// 筛选图形
536registerInteraction('legend-visible-filter', {
537 showEnable: [
538 { trigger: 'legend-item:mouseenter', action: 'cursor:pointer' },
539 { trigger: 'legend-item:mouseleave', action: 'cursor:default' },
540 ],
541 start: [{ trigger: 'legend-item:click', action: ['list-unchecked:toggle', 'element-filter:filter'] }],
542});
543// 出现背景框
544registerInteraction('active-region', {
545 start: [{ trigger: 'plot:mousemove', action: 'active-region:show' }],
546 end: [{ trigger: 'plot:mouseleave', action: 'active-region:hide' }],
547});
548// 显示坐标轴标题详情信息
549registerInteraction('axis-description', {
550 start: [{ trigger: 'axis-description:mousemove', action: 'axis-description:show' }],
551 end: [{ trigger: 'axis-description:mouseleave', action: 'axis-description:hide' }]
552});
553function isWheelDown(event) {
554 event.gEvent.preventDefault();
555 return event.gEvent.originalEvent.deltaY > 0;
556}
557registerInteraction('view-zoom', {
558 start: [
559 {
560 trigger: 'plot:mousewheel',
561 isEnable: function (context) {
562 return isWheelDown(context.event);
563 },
564 action: 'scale-zoom:zoomOut',
565 throttle: { wait: 100, leading: true, trailing: false },
566 },
567 {
568 trigger: 'plot:mousewheel',
569 isEnable: function (context) {
570 return !isWheelDown(context.event);
571 },
572 action: 'scale-zoom:zoomIn',
573 throttle: { wait: 100, leading: true, trailing: false },
574 },
575 ],
576});
577registerInteraction('sibling-tooltip', {
578 start: [{ trigger: 'plot:mousemove', action: 'sibling-tooltip:show' }],
579 end: [{ trigger: 'plot:mouseleave', action: 'sibling-tooltip:hide' }],
580});
581registerInteraction('plot-mousewheel-scroll', {
582 start: [{ trigger: 'plot:mousewheel', action: 'mousewheel-scroll:scroll' }],
583});
584// 暴露一些常量
585export { VIEW_LIFE_CIRCLE } from './constant';
586/** brush 范围筛选的一些事件常量 */
587export { BRUSH_FILTER_EVENTS, ELEMENT_RANGE_HIGHLIGHT_EVENTS };
588export * from './core';
589//# sourceMappingURL=index.js.map
\No newline at end of file