UNPKG

cione-comp-lib

Version:

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

58 lines (57 loc) 1.84 kB
import { extend } from "../../../../zrender/lib/core/util.mjs"; import { retrieveTargetInfo, aboveViewRoot } from "../helper/treeHelper.mjs"; var ROOT_TO_NODE_ACTION = "sunburstRootToNode"; var HIGHLIGHT_ACTION = "sunburstHighlight"; var UNHIGHLIGHT_ACTION = "sunburstUnhighlight"; function installSunburstAction(registers) { registers.registerAction({ type: ROOT_TO_NODE_ACTION, update: "updateView" }, function(payload, ecModel) { ecModel.eachComponent({ mainType: "series", subType: "sunburst", query: payload }, handleRootToNode); function handleRootToNode(model, index) { var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model); if (targetInfo) { var originViewRoot = model.getViewRoot(); if (originViewRoot) { payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? "rollUp" : "drillDown"; } model.resetViewRoot(targetInfo.node); } } }); registers.registerAction({ type: HIGHLIGHT_ACTION, update: "none" }, function(payload, ecModel, api) { payload = extend({}, payload); ecModel.eachComponent({ mainType: "series", subType: "sunburst", query: payload }, handleHighlight); function handleHighlight(model) { var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model); if (targetInfo) { payload.dataIndex = targetInfo.node.dataIndex; } } api.dispatchAction(extend(payload, { type: "highlight" })); }); registers.registerAction({ type: UNHIGHLIGHT_ACTION, update: "updateView" }, function(payload, ecModel, api) { payload = extend({}, payload); api.dispatchAction(extend(payload, { type: "downplay" })); }); } export { ROOT_TO_NODE_ACTION, installSunburstAction };