UNPKG

cione-comp-lib

Version:

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

66 lines (65 loc) 2.77 kB
import { each, extend, isArray, isString } from "../../../zrender/lib/core/util.mjs"; import { queryDataIndex } from "../util/model.mjs"; function createLegacyDataSelectAction(seriesType, ecRegisterAction) { function getSeriesIndices(ecModel, payload) { var seriesIndices = []; ecModel.eachComponent({ mainType: "series", subType: seriesType, query: payload }, function(seriesModel) { seriesIndices.push(seriesModel.seriesIndex); }); return seriesIndices; } each([[seriesType + "ToggleSelect", "toggleSelect"], [seriesType + "Select", "select"], [seriesType + "UnSelect", "unselect"]], function(eventsMap) { ecRegisterAction(eventsMap[0], function(payload, ecModel, api) { payload = extend({}, payload); api.dispatchAction(extend(payload, { type: eventsMap[1], seriesIndex: getSeriesIndices(ecModel, payload) })); }); }); } function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) { var legacyEventName = type + eventPostfix; if (!ecIns.isSilent(legacyEventName)) { ecModel.eachComponent({ mainType: "series", subType: "pie" }, function(seriesModel) { var seriesIndex = seriesModel.seriesIndex; var selectedMap = seriesModel.option.selectedMap; var selected = payload.selected; for (var i = 0; i < selected.length; i++) { if (selected[i].seriesIndex === seriesIndex) { var data = seriesModel.getData(); var dataIndex = queryDataIndex(data, payload.fromActionPayload); ecIns.trigger(legacyEventName, { type: legacyEventName, seriesId: seriesModel.id, name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex), selected: isString(selectedMap) ? selectedMap : extend({}, selectedMap) }); } } }); } } function handleLegacySelectEvents(messageCenter, ecIns, api) { messageCenter.on("selectchanged", function(params) { var ecModel = api.getModel(); if (params.isFromClick) { handleSeriesLegacySelectEvents("map", "selectchanged", ecIns, ecModel, params); handleSeriesLegacySelectEvents("pie", "selectchanged", ecIns, ecModel, params); } else if (params.fromAction === "select") { handleSeriesLegacySelectEvents("map", "selected", ecIns, ecModel, params); handleSeriesLegacySelectEvents("pie", "selected", ecIns, ecModel, params); } else if (params.fromAction === "unselect") { handleSeriesLegacySelectEvents("map", "unselected", ecIns, ecModel, params); handleSeriesLegacySelectEvents("pie", "unselected", ecIns, ecModel, params); } }); } export { createLegacyDataSelectAction, handleLegacySelectEvents };