UNPKG

@alicloud/cloud-charts

Version:

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

55 lines (54 loc) 1.95 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.ListChecked = void 0; var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _listUnchecked = _interopRequireDefault(require("@antv/g2/esm/interaction/action/component/list-unchecked")); // 图例正选 Action var ListChecked = exports.ListChecked = /*#__PURE__*/function (_ListUnchecked) { (0, _inheritsLoose2["default"])(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["default"]);