| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import { registerInteraction } from '@antv/g2';
- var INTERACTION_MAP = {
- hover: '__interval-connected-area-hover__',
- click: '__interval-connected-area-click__',
- };
- var getStartStages = function (trigger, style) {
- if (trigger === 'hover') {
- return [
- {
- trigger: "interval:mouseenter",
- action: ['element-highlight-by-color:highlight', 'element-link-by-color:link'],
- arg: [null, { style: style }],
- },
- ];
- }
- return [
- {
- trigger: "interval:click",
- action: [
- 'element-highlight-by-color:clear',
- 'element-highlight-by-color:highlight',
- 'element-link-by-color:clear',
- 'element-link-by-color:unlink',
- 'element-link-by-color:link',
- ],
- arg: [null, null, null, null, { style: style }],
- },
- ];
- };
- /** hover 触发的连通区域交互 */
- registerInteraction(INTERACTION_MAP.hover, {
- start: getStartStages(INTERACTION_MAP.hover),
- end: [
- {
- trigger: 'interval:mouseleave',
- action: ['element-highlight-by-color:reset', 'element-link-by-color:unlink'],
- },
- ],
- });
- /** click 触发的联通区域交互 */
- registerInteraction(INTERACTION_MAP.click, {
- start: getStartStages(INTERACTION_MAP.click),
- end: [
- {
- trigger: 'document:mousedown',
- action: ['element-highlight-by-color:clear', 'element-link-by-color:clear'],
- },
- ],
- });
- /**
- * 返回支持联通区域组件交互的 adaptor,适用于堆叠柱形图/堆叠条形图
- * @param disable
- */
- export function connectedArea(disable) {
- if (disable === void 0) { disable = false; }
- return function (params) {
- var chart = params.chart, options = params.options;
- var connectedArea = options.connectedArea;
- var clear = function () {
- chart.removeInteraction(INTERACTION_MAP.hover);
- chart.removeInteraction(INTERACTION_MAP.click);
- };
- if (!disable && connectedArea) {
- var trigger = connectedArea.trigger || 'hover';
- clear();
- chart.interaction(INTERACTION_MAP[trigger], {
- start: getStartStages(trigger, connectedArea.style),
- });
- }
- else {
- clear();
- }
- return params;
- };
- }
- //# sourceMappingURL=connected-area.js.map
|