{"version":3,"file":"brush.js","sourceRoot":"","sources":["../../src/adaptor/brush.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,kBAAkB;AAClB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,IAAM,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAEjH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAA8B,MAAiB;IACrE,IAAA,OAAO,GAAK,MAAM,QAAX,CAAY;IAEnB,IAAA,KAAK,GAAK,OAAO,MAAZ,CAAa;IAE1B,iBAAiB;IACjB,IAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,UAAC,CAAC,IAAK,OAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAC;IAEnG,cAAc;IACd,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE;QAClB,WAAW,CAAC,OAAO,CAAC,UAAC,IAAI;YACvB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,QAAQ,KAAK,CAAC,IAAI,EAAE;gBAClB,KAAK,QAAQ;oBACX,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACnF,MAAM;gBACR,KAAK,QAAQ;oBACX,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACnF,MAAM;gBACR;oBACE,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBAC/E,MAAM;aACT;YACD,IAAM,GAAG,GAA0B,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC;YAEpD,IAAI,KAAK,EAAE;gBACT,GAAG,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtD;YACD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,4BAA4B;QAC5B,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,MAAK,WAAW,EAAE;YACjC,YAAY,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,eAAe;gBACrB,GAAG,EAAE;oBACH,YAAY,EAAE,KAAK,CAAC,MAAM;iBAC3B;aACF,CAAC,CAAC;SACJ;KACF;IACD,OAAO,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,cAAA,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC","sourcesContent":["import { filter } from '@antv/util';\nimport { Params } from '../core/adaptor';\n/** 先引入brush 交互 */\nimport '../interactions/brush';\nimport { getInteractionCfg } from '../interactions/brush';\nimport { BrushCfg, Interaction, Options as BaseOptions, Writable } from '../types';\nimport { deepAssign } from '../utils';\n\ntype Options = Pick & { brush?: BrushCfg };\n\nconst BRUSH_TYPES = ['brush', 'brush-x', 'brush-y', 'brush-highlight', 'brush-x-highlight', 'brush-y-highlight'];\n\n/**\n * brush 交互\n */\nexport function brushInteraction(params: Params): Params {\n const { options } = params;\n\n const { brush } = options;\n\n // 先过滤掉 brush 等交互\n const interactions = filter(options.interactions || [], (i) => BRUSH_TYPES.indexOf(i.type) === -1);\n\n // 设置 brush 交互\n if (brush?.enabled) {\n BRUSH_TYPES.forEach((type) => {\n let enable = false;\n switch (brush.type) {\n case 'x-rect':\n enable = type === (brush.action === 'highlight' ? 'brush-x-highlight' : 'brush-x');\n break;\n case 'y-rect':\n enable = type === (brush.action === 'highlight' ? 'brush-y-highlight' : 'brush-y');\n break;\n default:\n enable = type === (brush.action === 'highlight' ? 'brush-highlight' : 'brush');\n break;\n }\n const obj: Writable = { type, enable };\n\n if (brush) {\n obj.cfg = getInteractionCfg(type, brush.type, brush);\n }\n interactions.push(obj);\n });\n\n // 塞入 button 配置 (G2Plot 的封装)\n if (brush?.action !== 'highlight') {\n interactions.push({\n type: 'filter-action',\n cfg: {\n buttonConfig: brush.button,\n },\n });\n }\n }\n return deepAssign({}, params, { options: { interactions } });\n}\n"]}