UNPKG

@visactor/react-vchart

Version:

The react version of VChart 4.x

130 lines (115 loc) 4.75 kB
export const REACT_TO_VCHART_EVENTS = { onPointerDown: "pointerdown", onPointerUp: "pointerup", onPointerUpOutside: "pointerupoutside", onPointerTap: "pointertap", onPointerOver: "pointerover", onPointerMove: "pointermove", onPointerEnter: "pointerenter", onPointerLeave: "pointerleave", onPointerOut: "pointerout", onMouseDown: "mousedown", onMouseUp: "mouseup", onMouseUpOutside: "mouseupoutside", onMouseMove: "mousemove", onMouseOver: "mouseover", onMouseOut: "mouseout", onMouseEnter: "mouseenter", onMouseLeave: "mouseleave", onPinch: "pinch", onPinchStart: "pinchstart", onPinchEnd: "pinchend", onPan: "pan", onPanStart: "panstart", onPanEnd: "panend", onDrag: "drag", onDragStart: "dragstart", onDragEnter: "dragenter", onDragLeave: "dragleave", onDragOver: "dragover", onDragEnd: "dragend", onRightDown: "rightdown", onRightUp: "rightup", onRightUpOutside: "rightupoutside", onTouchStart: "touchstart", onTouchEnd: "touchend", onTouchEndOutside: "touchendoutside", onTouchMove: "touchmove", onTouchCancel: "touchcancel", onPress: "press", onPressUp: "pressup", onPressEnd: "pressend", onSwipe: "swipe", onDrop: "drop", onWeel: "wheel", onClick: "click", onDblClick: "dblclick" }; export const LEGEND_CUSTOMIZED_EVENTS = { onLegendItemHover: "legendItemHover", onLegendItemUnHover: "legendItemUnHover", onLegendItemClick: "legendItemClick", onLegendFilter: "legendFilter", onLegendSelectedDataChange: "legendSelectedDataChange" }; export const BRUSH_CUSTOMIZED_EVENTS = { onBrushStart: "brushStart", onBrushChange: "brushChange", onBrushEnd: "brushEnd", onBrushClear: "brushClear" }; export const DATAZOOM_CUSTOMIZED_EVENTS = { onDataZoomChange: "dataZoomChange" }; export const PLAYER_CUSTOMIZED_EVENTS = { onPlayerPlay: "playerPlay", onPlayerPause: "playerPause", onPlayerEnd: "playerEnd", onPlayerChange: "playerChange", onPlayerForward: "playerForward", onPlayerBackward: "playerBackward" }; export const SCROLLBAR_CUSTOMIZED_EVENTS = { onScrollBarChange: "scrollBarChange" }; export const DIMENSION_EVENTS = { onDimensionHover: "dimensionHover", onDimensionClick: "dimensionClick" }; export const HIERARCHY_EVENTS = { onDrill: "drill" }; export const CHART_LIFECYCLE_EVENTS = { onInitialized: "initialized", onRendered: "rendered", onRenderFinished: "renderFinished", onAnimationFinished: "animationFinished", onLayoutStart: "layoutStart", onLayoutEnd: "layoutEnd" }; export const CHART_EVENTS = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, LEGEND_CUSTOMIZED_EVENTS), BRUSH_CUSTOMIZED_EVENTS), PLAYER_CUSTOMIZED_EVENTS), DATAZOOM_CUSTOMIZED_EVENTS), SCROLLBAR_CUSTOMIZED_EVENTS), DIMENSION_EVENTS), CHART_LIFECYCLE_EVENTS), HIERARCHY_EVENTS), REACT_TO_VCHART_EVENTS); export const CHART_EVENTS_KEYS = Object.keys(CHART_EVENTS).concat(Object.keys(REACT_TO_VCHART_EVENTS).map((evt => `${evt}Filter`))); export const COMMON_EVENTK_KEYS = Object.keys(REACT_TO_VCHART_EVENTS); export const VCHART_TO_REACT_EVENTS = Object.keys(REACT_TO_VCHART_EVENTS).reduce(((res, key) => (res[REACT_TO_VCHART_EVENTS[key]] = key, res)), {}); export const findEventProps = (props, supportedEvents = REACT_TO_VCHART_EVENTS) => { const result = {}; return Object.keys(props).forEach((key => { supportedEvents[key] && props[key] && (result[key] = props[key]); })), result; }; export const bindEventsToChart = (chart, newProps, prevProps, supportedEvents = REACT_TO_VCHART_EVENTS) => { if (!newProps && !prevProps || !chart) return !1; const prevEventProps = prevProps ? findEventProps(prevProps, supportedEvents) : null, newEventProps = newProps ? findEventProps(newProps, supportedEvents) : null; return prevEventProps && Object.keys(prevEventProps).forEach((eventKey => { if (!newEventProps || !newEventProps[eventKey] || newEventProps[eventKey] !== prevEventProps[eventKey]) { chart.off(supportedEvents[eventKey], prevEventProps[eventKey]); } })), newEventProps && Object.keys(newEventProps).forEach((eventKey => { if (!prevEventProps || !prevEventProps[eventKey] || prevEventProps[eventKey] !== newEventProps[eventKey]) { const filter = newProps[`${eventKey}Filter`]; filter ? chart.on(supportedEvents[eventKey], filter, newEventProps[eventKey]) : chart.on(supportedEvents[eventKey], newEventProps[eventKey]); } })), !0; }; //# sourceMappingURL=eventsUtils.js.map