UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

44 lines (43 loc) 1.9 kB
import { curry, each } from "../../../../zrender/lib/core/util.mjs"; function legendSelectActionHandler(methodName, payload, ecModel) { var selectedMap = {}; var isToggleSelect = methodName === "toggleSelected"; var isSelected; ecModel.eachComponent("legend", function(legendModel) { if (isToggleSelect && isSelected != null) { legendModel[isSelected ? "select" : "unSelect"](payload.name); } else if (methodName === "allSelect" || methodName === "inverseSelect") { legendModel[methodName](); } else { legendModel[methodName](payload.name); isSelected = legendModel.isSelected(payload.name); } var legendData = legendModel.getData(); each(legendData, function(model) { var name = model.get("name"); if (name === "\n" || name === "") { return; } var isItemSelected = legendModel.isSelected(name); if (selectedMap.hasOwnProperty(name)) { selectedMap[name] = selectedMap[name] && isItemSelected; } else { selectedMap[name] = isItemSelected; } }); }); return methodName === "allSelect" || methodName === "inverseSelect" ? { selected: selectedMap } : { name: payload.name, selected: selectedMap }; } function installLegendAction(registers) { registers.registerAction("legendToggleSelect", "legendselectchanged", curry(legendSelectActionHandler, "toggleSelected")); registers.registerAction("legendAllSelect", "legendselectall", curry(legendSelectActionHandler, "allSelect")); registers.registerAction("legendInverseSelect", "legendinverseselect", curry(legendSelectActionHandler, "inverseSelect")); registers.registerAction("legendSelect", "legendselected", curry(legendSelectActionHandler, "select")); registers.registerAction("legendUnSelect", "legendunselected", curry(legendSelectActionHandler, "unSelect")); } export { installLegendAction };