cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
44 lines (43 loc) • 1.9 kB
JavaScript
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 };