UNPKG

@alicloud/cloud-charts

Version:

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

51 lines (50 loc) 2.01 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.ListReverseChecked = void 0; var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _listUnchecked = _interopRequireDefault(require("@antv/g2/esm/interaction/action/component/list-unchecked")); // 图例反选 Action 默认行为 var ListReverseChecked = exports.ListReverseChecked = /*#__PURE__*/function (_ListUnchecked) { (0, _inheritsLoose2["default"])(ListReverseChecked, _ListUnchecked); function ListReverseChecked() { return _ListUnchecked.apply(this, arguments) || this; } var _proto = ListReverseChecked.prototype; _proto.toggle = function toggle() { var _this = this; // 获取原始事件 var originEvent = this.context.event.event; var _ref = this.getTriggerListInfo() || {}, item = _ref.item, list = _ref.list; // 用于显示分组的items不触发交互 if (!item || !!item.dodge) { return; } // 是否按Control var hasControl = originEvent.ctrlKey || originEvent.metaKey; // 当前选中状态 false-选中,true-未选 var currentEnable = this.hasState(list, item); if (hasControl) { // Control进入单选默认 var listItems = list.getItems(); var isOneChecked = listItems.reduce(function (pre, cur) { return pre + (_this.hasState(list, cur) ? 0 : 1); }, 0) === 1; listItems.forEach(function (listItem) { var enable = _this.hasState(list, listItem); var otherEnable = !currentEnable && isOneChecked ? !enable : true; if (listItem !== item) { _this.setItemState(list, listItem, otherEnable); } else { _this.setItemState(list, listItem, false); } }); } else { // 非Control时保持默认反选 this.setItemState(list, item, !currentEnable); } }; return ListReverseChecked; }(_listUnchecked["default"]);