{"version":3,"file":"brush.js","sourceRoot":"","sources":["../../src/interactions/brush.ts"],"names":[],"mappings":"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","sourcesContent":["import { registerAction, registerInteraction } from '@antv/g2';\nimport { BrushCfg } from '../types';\nimport { ButtonAction } from './actions/reset-button';\n\nregisterAction('brush-reset-button', ButtonAction, {\n name: 'brush-reset-button',\n});\n\nregisterInteraction('filter-action', {});\n\n/**\n * G2 已经内置了 brush、brush-x、brush-y 等交互,其它:\n *\n * 1. element-range-highlight 是否可用重命名为 brush-highlight?(mask 可以移动)\n * 2. brush-visible 与 brush 的区别是?\n */\n\nfunction isPointInView(context) {\n return context.isInPlot();\n}\n\n/**\n * 获取 交互 start 阶段的相关配置\n */\nexport function getInteractionCfg(interactionType: string, brushType?: string, options?: BrushCfg) {\n const { mask, isStartEnable } = options || {};\n const maskType = brushType || 'rect';\n\n switch (interactionType) {\n case 'brush':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (() => true) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n ],\n start: [\n {\n trigger: 'mousedown',\n isEnable: isStartEnable || isPointInView,\n action: ['brush:start', `${maskType}-mask:start`, `${maskType}-mask:show`],\n // 对应第二个action的参数\n arg: [null, { maskStyle: mask?.style }],\n },\n ],\n processing: [\n {\n trigger: 'mousemove',\n isEnable: isPointInView,\n action: [`${maskType}-mask:resize`],\n },\n ],\n end: [\n {\n trigger: 'mouseup',\n isEnable: isPointInView,\n action: [\n 'brush:filter',\n 'brush:end',\n `${maskType}-mask:end`,\n `${maskType}-mask:hide`,\n 'brush-reset-button:show',\n ],\n },\n ],\n rollback: [\n {\n trigger: 'brush-reset-button:click',\n action: ['brush:reset', 'brush-reset-button:hide', 'cursor:crosshair'],\n },\n ],\n };\n case 'brush-highlight':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (() => true) },\n { trigger: 'plot:mousemove', action: 'cursor:crosshair', isEnable: isStartEnable || (() => true) },\n {\n trigger: 'plot:mousemove',\n action: 'cursor:default',\n isEnable: (context) => (isStartEnable ? !isStartEnable(context) : false),\n },\n { trigger: 'mask:mouseenter', action: 'cursor:move', isEnable: isStartEnable || (() => true) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n { trigger: 'mask:mouseleave', action: 'cursor:crosshair' },\n ],\n start: [\n {\n trigger: 'plot:mousedown',\n isEnable:\n isStartEnable ||\n ((context) => {\n // 不要点击在 mask 上重新开始\n return !context.isInShape('mask');\n }),\n action: [`${maskType}-mask:start`, `${maskType}-mask:show`],\n // 对应第 1 个action的参数\n arg: [{ maskStyle: mask?.style }],\n },\n {\n trigger: 'mask:dragstart',\n action: [`${maskType}-mask:moveStart`],\n },\n ],\n processing: [\n {\n trigger: 'plot:mousemove',\n action: [`${maskType}-mask:resize`],\n },\n {\n trigger: 'mask:drag',\n action: [`${maskType}-mask:move`],\n },\n {\n trigger: 'mask:change',\n action: ['element-range-highlight:highlight'],\n },\n ],\n end: [\n { trigger: 'plot:mouseup', action: [`${maskType}-mask:end`] },\n { trigger: 'mask:dragend', action: [`${maskType}-mask:moveEnd`] },\n {\n trigger: 'document:mouseup',\n isEnable(context) {\n return !context.isInPlot();\n },\n action: ['element-range-highlight:clear', `${maskType}-mask:end`, `${maskType}-mask:hide`],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['element-range-highlight:clear', `${maskType}-mask:hide`] }],\n };\n case 'brush-x':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (() => true) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n ],\n start: [\n {\n trigger: 'mousedown',\n isEnable: isStartEnable || isPointInView,\n action: ['brush-x:start', `${maskType}-mask:start`, `${maskType}-mask:show`],\n // 对应第二个action的参数\n arg: [null, { maskStyle: mask?.style }],\n },\n ],\n processing: [\n {\n trigger: 'mousemove',\n isEnable: isPointInView,\n action: [`${maskType}-mask:resize`],\n },\n ],\n end: [\n {\n trigger: 'mouseup',\n isEnable: isPointInView,\n action: ['brush-x:filter', 'brush-x:end', `${maskType}-mask:end`, `${maskType}-mask:hide`],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['brush-x:reset'] }],\n };\n case 'brush-x-highlight':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (() => true) },\n { trigger: 'mask:mouseenter', action: 'cursor:move', isEnable: isStartEnable || (() => true) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n { trigger: 'mask:mouseleave', action: 'cursor:crosshair' },\n ],\n start: [\n {\n trigger: 'plot:mousedown',\n isEnable:\n isStartEnable ||\n ((context) => {\n // 不要点击在 mask 上重新开始\n return !context.isInShape('mask');\n }),\n action: [`${maskType}-mask:start`, `${maskType}-mask:show`],\n // 对应第 1 个action的参数\n arg: [{ maskStyle: mask?.style }],\n },\n {\n trigger: 'mask:dragstart',\n action: [`${maskType}-mask:moveStart`],\n },\n ],\n processing: [\n {\n trigger: 'plot:mousemove',\n action: [`${maskType}-mask:resize`],\n },\n {\n trigger: 'mask:drag',\n action: [`${maskType}-mask:move`],\n },\n {\n trigger: 'mask:change',\n action: ['element-range-highlight:highlight'],\n },\n ],\n end: [\n { trigger: 'plot:mouseup', action: [`${maskType}-mask:end`] },\n { trigger: 'mask:dragend', action: [`${maskType}-mask:moveEnd`] },\n {\n trigger: 'document:mouseup',\n isEnable(context) {\n return !context.isInPlot();\n },\n action: ['element-range-highlight:clear', `${maskType}-mask:end`, `${maskType}-mask:hide`],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['element-range-highlight:clear', `${maskType}-mask:hide`] }],\n };\n case 'brush-y':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (() => true) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n ],\n start: [\n {\n trigger: 'mousedown',\n isEnable: isStartEnable || isPointInView,\n action: ['brush-y:start', `${maskType}-mask:start`, `${maskType}-mask:show`],\n // 对应第二个action的参数\n arg: [null, { maskStyle: mask?.style }],\n },\n ],\n processing: [\n {\n trigger: 'mousemove',\n isEnable: isPointInView,\n action: [`${maskType}-mask:resize`],\n },\n ],\n end: [\n {\n trigger: 'mouseup',\n isEnable: isPointInView,\n action: ['brush-y:filter', 'brush-y:end', `${maskType}-mask:end`, `${maskType}-mask:hide`],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['brush-y:reset'] }],\n };\n case 'brush-y-highlight':\n return {\n showEnable: [\n { trigger: 'plot:mouseenter', action: 'cursor:crosshair', isEnable: isStartEnable || (() => true) },\n { trigger: 'mask:mouseenter', action: 'cursor:move', isEnable: isStartEnable || (() => true) },\n { trigger: 'plot:mouseleave', action: 'cursor:default' },\n { trigger: 'mask:mouseleave', action: 'cursor:crosshair' },\n ],\n start: [\n {\n trigger: 'plot:mousedown',\n isEnable:\n isStartEnable ||\n ((context) => {\n // 不要点击在 mask 上重新开始\n return !context.isInShape('mask');\n }),\n action: [`${maskType}-mask:start`, `${maskType}-mask:show`],\n // 对应第 1 个action的参数\n arg: [{ maskStyle: mask?.style }],\n },\n {\n trigger: 'mask:dragstart',\n action: [`${maskType}-mask:moveStart`],\n },\n ],\n processing: [\n {\n trigger: 'plot:mousemove',\n action: [`${maskType}-mask:resize`],\n },\n {\n trigger: 'mask:drag',\n action: [`${maskType}-mask:move`],\n },\n {\n trigger: 'mask:change',\n action: ['element-range-highlight:highlight'],\n },\n ],\n end: [\n { trigger: 'plot:mouseup', action: [`${maskType}-mask:end`] },\n { trigger: 'mask:dragend', action: [`${maskType}-mask:moveEnd`] },\n {\n trigger: 'document:mouseup',\n isEnable(context) {\n return !context.isInPlot();\n },\n action: ['element-range-highlight:clear', `${maskType}-mask:end`, `${maskType}-mask:hide`],\n },\n ],\n rollback: [{ trigger: 'dblclick', action: ['element-range-highlight:clear', `${maskType}-mask:hide`] }],\n };\n\n default:\n return {};\n }\n}\n\n// 直接拷贝过来的\nregisterInteraction('brush', getInteractionCfg('brush'));\n// 复写 element-range-highlight interaction\nregisterInteraction('brush-highlight', getInteractionCfg('brush-highlight'));\n// 复写\nregisterInteraction('brush-x', getInteractionCfg('brush-x', 'x-rect'));\n// 复写\nregisterInteraction('brush-y', getInteractionCfg('brush-y', 'y-rect'));\n// 新增, x 框选高亮\nregisterInteraction('brush-x-highlight', getInteractionCfg('brush-x-highlight', 'x-rect'));\n// 新增, y 框选高亮\nregisterInteraction('brush-y-highlight', getInteractionCfg('brush-y-highlight', 'y-rect'));\n"]}