UNPKG

@alicloud/cloud-charts

Version:

![](https://img.shields.io/npm/v/@alicloud/cloud-charts?color=%23ff8200)

51 lines (50 loc) 1.69 kB
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose"; import ListUnchecked from '@antv/g2/esm/interaction/action/component/list-unchecked'; // 图例正选 Action export var ListChecked = /*#__PURE__*/function (_ListUnchecked) { _inheritsLoose(ListChecked, _ListUnchecked); function ListChecked() { return _ListUnchecked.apply(this, arguments) || this; } var _proto = ListChecked.prototype; _proto.toggle = function toggle() { var _this = this; // 获取原始事件 var originEvent = this.context.event.event; var _ref = this.getTriggerListInfo() || {}, item = _ref.item, list = _ref.list; if (!item || !!item.dodge) { return; } // 是否按Control var hasControl = originEvent.ctrlKey || originEvent.metaKey; // 当前选中状态 false-选中,true-未选 var currentEnable = this.hasState(list, item); var listItems = list.getItems(); // 是否点击唯一选中的一个 var checkedNums = 0; var isSameItem = false; listItems.forEach(function (listItem) { if (!_this.hasState(list, listItem)) { checkedNums += 1; isSameItem = listItem === item; } }); var isOneChecked = checkedNums === 1 && isSameItem; if (!hasControl) { // 非Control时采用默认单选模式 listItems.forEach(function (listItem) { if (listItem !== item) { _this.setItemState(list, listItem, !isOneChecked); } else { _this.setItemState(list, listItem, false); } }); } else { // Control时反选 this.setItemState(list, item, !currentEnable); } }; return ListChecked; }(ListUnchecked);