index.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { registerAction, registerInteraction } from '@antv/g2';
  2. import { VennElementActive } from './actions/active';
  3. import { VennElementHighlight } from './actions/highlight';
  4. import { VennElementSelected, VennElementSingleSelected } from './actions/selected';
  5. /** ================== 注册交互反馈 aciton ================== */
  6. registerAction('venn-element-active', VennElementActive);
  7. registerAction('venn-element-highlight', VennElementHighlight);
  8. registerAction('venn-element-selected', VennElementSelected);
  9. registerAction('venn-element-single-selected', VennElementSingleSelected);
  10. /** ================== 注册交互 ================== */
  11. // ========= Active 交互 =========
  12. registerInteraction('venn-element-active', {
  13. start: [{ trigger: 'element:mouseenter', action: 'venn-element-active:active' }],
  14. end: [{ trigger: 'element:mouseleave', action: 'venn-element-active:reset' }],
  15. });
  16. // ========= 高亮 交互 =========
  17. registerInteraction('venn-element-highlight', {
  18. start: [{ trigger: 'element:mouseenter', action: 'venn-element-highlight:highlight' }],
  19. end: [{ trigger: 'element:mouseleave', action: 'venn-element-highlight:reset' }],
  20. });
  21. // ========= Selected 交互 =========
  22. // 点击 venn element (可多选)
  23. registerInteraction('venn-element-selected', {
  24. start: [{ trigger: 'element:click', action: 'venn-element-selected:toggle' }],
  25. rollback: [{ trigger: 'dblclick', action: ['venn-element-selected:reset'] }],
  26. });
  27. // 点击 venn element (单选)
  28. registerInteraction('venn-element-single-selected', {
  29. start: [{ trigger: 'element:click', action: 'venn-element-single-selected:toggle' }],
  30. rollback: [{ trigger: 'dblclick', action: ['venn-element-single-selected:reset'] }],
  31. });
  32. // ========= 韦恩图的图例事件,单独注册 =========
  33. // legend hover,element active
  34. registerInteraction('venn-legend-active', {
  35. start: [{ trigger: 'legend-item:mouseenter', action: ['list-active:active', 'venn-element-active:active'] }],
  36. end: [{ trigger: 'legend-item:mouseleave', action: ['list-active:reset', 'venn-element-active:reset'] }],
  37. });
  38. // legend hover,element active
  39. registerInteraction('venn-legend-highlight', {
  40. start: [
  41. {
  42. trigger: 'legend-item:mouseenter',
  43. action: ['legend-item-highlight:highlight', 'venn-element-highlight:highlight'],
  44. },
  45. ],
  46. end: [{ trigger: 'legend-item:mouseleave', action: ['legend-item-highlight:reset', 'venn-element-highlight:reset'] }],
  47. });
  48. //# sourceMappingURL=index.js.map