UNPKG

cione-comp-lib

Version:

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

120 lines (119 loc) 4.37 kB
import { each } from "../../../zrender/lib/core/util.mjs"; import Group from "../../../zrender/lib/graphic/Group.mjs"; import { getUID } from "../util/component.mjs"; import { enableClassExtend, enableClassManagement } from "../util/clazz.mjs"; import { queryDataIndex, normalizeToArray, makeInner } from "../util/model.mjs"; import { getHighlightDigit, isHighDownDispatcher, enterEmphasis, leaveEmphasis } from "../util/states.mjs"; import { createTask } from "../core/task.mjs"; import createRenderPlanner from "../chart/helper/createRenderPlanner.mjs"; import { traverseElements } from "../util/graphic.mjs"; var inner = makeInner(); var renderPlanner = createRenderPlanner(); var ChartView = function() { function ChartView2() { this.group = new Group(); this.uid = getUID("viewChart"); this.renderTask = createTask({ plan: renderTaskPlan, reset: renderTaskReset }); this.renderTask.context = { view: this }; } ChartView2.prototype.init = function(ecModel, api) { }; ChartView2.prototype.render = function(seriesModel, ecModel, api, payload) { }; ChartView2.prototype.highlight = function(seriesModel, ecModel, api, payload) { var data = seriesModel.getData(payload && payload.dataType); if (!data) { return; } toggleHighlight(data, payload, "emphasis"); }; ChartView2.prototype.downplay = function(seriesModel, ecModel, api, payload) { var data = seriesModel.getData(payload && payload.dataType); if (!data) { return; } toggleHighlight(data, payload, "normal"); }; ChartView2.prototype.remove = function(ecModel, api) { this.group.removeAll(); }; ChartView2.prototype.dispose = function(ecModel, api) { }; ChartView2.prototype.updateView = function(seriesModel, ecModel, api, payload) { this.render(seriesModel, ecModel, api, payload); }; ChartView2.prototype.updateLayout = function(seriesModel, ecModel, api, payload) { this.render(seriesModel, ecModel, api, payload); }; ChartView2.prototype.updateVisual = function(seriesModel, ecModel, api, payload) { this.render(seriesModel, ecModel, api, payload); }; ChartView2.prototype.eachRendered = function(cb) { traverseElements(this.group, cb); }; ChartView2.markUpdateMethod = function(payload, methodName) { inner(payload).updateMethod = methodName; }; ChartView2.protoInitialize = function() { var proto = ChartView2.prototype; proto.type = "chart"; }(); return ChartView2; }(); function elSetState(el, state, highlightDigit) { if (el && isHighDownDispatcher(el)) { (state === "emphasis" ? enterEmphasis : leaveEmphasis)(el, highlightDigit); } } function toggleHighlight(data, payload, state) { var dataIndex = queryDataIndex(data, payload); var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null; if (dataIndex != null) { each(normalizeToArray(dataIndex), function(dataIdx) { elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit); }); } else { data.eachItemGraphicEl(function(el) { elSetState(el, state, highlightDigit); }); } } enableClassExtend(ChartView); enableClassManagement(ChartView); function renderTaskPlan(context) { return renderPlanner(context.model); } function renderTaskReset(context) { var seriesModel = context.model; var ecModel = context.ecModel; var api = context.api; var payload = context.payload; var progressiveRender = seriesModel.pipelineContext.progressiveRender; var view = context.view; var updateMethod = payload && inner(payload).updateMethod; var methodName = progressiveRender ? "incrementalPrepareRender" : updateMethod && view[updateMethod] ? updateMethod : "render"; if (methodName !== "render") { view[methodName](seriesModel, ecModel, api, payload); } return progressMethodMap[methodName]; } var progressMethodMap = { incrementalPrepareRender: { progress: function(params, context) { context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload); } }, render: { forceFirstProgress: true, progress: function(params, context) { context.view.render(context.model, context.ecModel, context.api, context.payload); } } }; var ChartView$1 = ChartView; export { ChartView$1 as default };