UNPKG

cione-comp-lib

Version:

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

655 lines (654 loc) 26 kB
import { __extends } from "../../../../tslib/tslib.es6.mjs"; import { defaults, retrieve2, retrieve3, hasOwn, each, indexOf, isString } from "../../../../zrender/lib/core/util.mjs"; import { traverseElements, makePath, getShapeClass } from "../../util/graphic.mjs"; import { toggleHoverEmphasis, setDefaultStateProxy } from "../../util/states.mjs"; import { createTextStyle, createTextConfig, getFont } from "../../label/labelStyle.mjs"; import { getDefaultLabel } from "../helper/labelHelper.mjs"; import { getLayoutOnAxis } from "../../layout/barGrid.mjs"; import DataDiffer from "../../data/DataDiffer.mjs"; import ChartView from "../../view/Chart.mjs"; import { createClipPath } from "../helper/createClipPathFromCoordSys.mjs"; import cartesianPrepareCustom from "../../coord/cartesian/prepareCustom.mjs"; import geoPrepareCustom from "../../coord/geo/prepareCustom.mjs"; import singlePrepareCustom from "../../coord/single/prepareCustom.mjs"; import polarPrepareCustom from "../../coord/polar/prepareCustom.mjs"; import calendarPrepareCustom from "../../coord/calendar/prepareCustom.mjs"; import Displayable from "../../../../zrender/lib/graphic/Displayable.mjs"; import { convertToEC4StyleForCustomSerise, isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from "../../util/styleCompat.mjs"; import { throwError } from "../../util/log.mjs"; import { createOrUpdatePatternFromDecal } from "../../util/decal.mjs"; import { customInnerStore, STYLE_VISUAL_TYPE, NON_STYLE_VISUAL_PROPS } from "./CustomSeries.mjs"; import { applyLeaveTransition, applyUpdateTransition } from "../../animation/customGraphicTransition.mjs"; import { stopPreviousKeyframeAnimationAndRestore, applyKeyframeAnimation } from "../../animation/customGraphicKeyframeAnimation.mjs"; import ZRImage from "../../../../zrender/lib/graphic/Image.mjs"; import ZRText from "../../../../zrender/lib/graphic/Text.mjs"; import Group from "../../../../zrender/lib/graphic/Group.mjs"; import Path from "../../../../zrender/lib/graphic/Path.mjs"; var EMPHASIS = "emphasis"; var NORMAL = "normal"; var BLUR = "blur"; var SELECT = "select"; var STATES = [NORMAL, EMPHASIS, BLUR, SELECT]; var PATH_ITEM_STYLE = { normal: ["itemStyle"], emphasis: [EMPHASIS, "itemStyle"], blur: [BLUR, "itemStyle"], select: [SELECT, "itemStyle"] }; var PATH_LABEL = { normal: ["label"], emphasis: [EMPHASIS, "label"], blur: [BLUR, "label"], select: [SELECT, "label"] }; var DEFAULT_TRANSITION = ["x", "y"]; var GROUP_DIFF_PREFIX = "e\0\0"; var attachedTxInfoTmp = { normal: {}, emphasis: {}, blur: {}, select: {} }; var prepareCustoms = { cartesian2d: cartesianPrepareCustom, geo: geoPrepareCustom, single: singlePrepareCustom, polar: polarPrepareCustom, calendar: calendarPrepareCustom }; function isPath(el) { return el instanceof Path; } function isDisplayable(el) { return el instanceof Displayable; } function copyElement(sourceEl, targetEl) { targetEl.copyTransform(sourceEl); if (isDisplayable(targetEl) && isDisplayable(sourceEl)) { targetEl.setStyle(sourceEl.style); targetEl.z = sourceEl.z; targetEl.z2 = sourceEl.z2; targetEl.zlevel = sourceEl.zlevel; targetEl.invisible = sourceEl.invisible; targetEl.ignore = sourceEl.ignore; if (isPath(targetEl) && isPath(sourceEl)) { targetEl.setShape(sourceEl.shape); } } } var CustomChartView = function(_super) { __extends(CustomChartView2, _super); function CustomChartView2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = CustomChartView2.type; return _this; } CustomChartView2.prototype.render = function(customSeries, ecModel, api, payload) { this._progressiveEls = null; var oldData = this._data; var data = customSeries.getData(); var group = this.group; var renderItem = makeRenderItem(customSeries, data, ecModel, api); if (!oldData) { group.removeAll(); } data.diff(oldData).add(function(newIdx) { createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data); }).remove(function(oldIdx) { var el = oldData.getItemGraphicEl(oldIdx); el && applyLeaveTransition(el, customInnerStore(el).option, customSeries); }).update(function(newIdx, oldIdx) { var oldEl = oldData.getItemGraphicEl(oldIdx); createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data); }).execute(); var clipPath = customSeries.get("clip", true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null; if (clipPath) { group.setClipPath(clipPath); } else { group.removeClipPath(); } this._data = data; }; CustomChartView2.prototype.incrementalPrepareRender = function(customSeries, ecModel, api) { this.group.removeAll(); this._data = null; }; CustomChartView2.prototype.incrementalRender = function(params, customSeries, ecModel, api, payload) { var data = customSeries.getData(); var renderItem = makeRenderItem(customSeries, data, ecModel, api); var progressiveEls = this._progressiveEls = []; function setIncrementalAndHoverLayer(el2) { if (!el2.isGroup) { el2.incremental = true; el2.ensureState("emphasis").hoverLayer = true; } } for (var idx = params.start; idx < params.end; idx++) { var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data); if (el) { el.traverse(setIncrementalAndHoverLayer); progressiveEls.push(el); } } }; CustomChartView2.prototype.eachRendered = function(cb) { traverseElements(this._progressiveEls || this.group, cb); }; CustomChartView2.prototype.filterForExposedEvent = function(eventType, query, targetEl, packedEvent) { var elementName = query.element; if (elementName == null || targetEl.name === elementName) { return true; } while ((targetEl = targetEl.__hostTarget || targetEl.parent) && targetEl !== this.group) { if (targetEl.name === elementName) { return true; } } return false; }; CustomChartView2.type = "custom"; return CustomChartView2; }(ChartView); var CustomChartView$1 = CustomChartView; function createEl(elOption) { var graphicType = elOption.type; var el; if (graphicType === "path") { var shape = elOption.shape; var pathRect = shape.width != null && shape.height != null ? { x: shape.x || 0, y: shape.y || 0, width: shape.width, height: shape.height } : null; var pathData = getPathData(shape); el = makePath(pathData, null, pathRect, shape.layout || "center"); customInnerStore(el).customPathData = pathData; } else if (graphicType === "image") { el = new ZRImage({}); customInnerStore(el).customImagePath = elOption.style.image; } else if (graphicType === "text") { el = new ZRText({}); } else if (graphicType === "group") { el = new Group(); } else if (graphicType === "compoundPath") { throw new Error('"compoundPath" is not supported yet.'); } else { var Clz = getShapeClass(graphicType); if (!Clz) { var errMsg = ""; throwError(errMsg); } el = new Clz(); } customInnerStore(el).customGraphicType = graphicType; el.name = elOption.name; el.z2EmphasisLift = 1; el.z2SelectLift = 1; return el; } function updateElNormal(api, el, dataIndex, elOption, attachedTxInfo, seriesModel, isInit) { stopPreviousKeyframeAnimationAndRestore(el); var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg; if (txCfgOpt) { el.setTextConfig(txCfgOpt); } if (elOption && elOption.transition == null) { elOption.transition = DEFAULT_TRANSITION; } var styleOpt = elOption && elOption.style; if (styleOpt) { if (el.type === "text") { var textOptionStyle = styleOpt; hasOwn(textOptionStyle, "textFill") && (textOptionStyle.fill = textOptionStyle.textFill); hasOwn(textOptionStyle, "textStroke") && (textOptionStyle.stroke = textOptionStyle.textStroke); } var decalPattern = void 0; var decalObj = isPath(el) ? styleOpt.decal : null; if (api && decalObj) { decalObj.dirty = true; decalPattern = createOrUpdatePatternFromDecal(decalObj, api); } styleOpt.__decalPattern = decalPattern; } if (isDisplayable(el)) { if (styleOpt) { var decalPattern = styleOpt.__decalPattern; if (decalPattern) { styleOpt.decal = decalPattern; } } } applyUpdateTransition(el, elOption, seriesModel, { dataIndex, isInit, clearStyle: true }); applyKeyframeAnimation(el, elOption.keyframeAnimation, seriesModel); } function updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo) { var elDisplayable = el.isGroup ? null : el; var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg; if (elDisplayable) { var stateObj = elDisplayable.ensureState(state); if (styleOpt === false) { var existingEmphasisState = elDisplayable.getState(state); if (existingEmphasisState) { existingEmphasisState.style = null; } } else { stateObj.style = styleOpt || null; } if (txCfgOpt) { stateObj.textConfig = txCfgOpt; } setDefaultStateProxy(elDisplayable); } } function updateZ(el, elOption, seriesModel) { if (el.isGroup) { return; } var elDisplayable = el; var currentZ = seriesModel.currentZ; var currentZLevel = seriesModel.currentZLevel; elDisplayable.z = currentZ; elDisplayable.zlevel = currentZLevel; var optZ2 = elOption.z2; optZ2 != null && (elDisplayable.z2 = optZ2 || 0); for (var i = 0; i < STATES.length; i++) { updateZForEachState(elDisplayable, elOption, STATES[i]); } } function updateZForEachState(elDisplayable, elOption, state) { var isNormal = state === NORMAL; var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state); var optZ2 = elStateOpt ? elStateOpt.z2 : null; var stateObj; if (optZ2 != null) { stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state); stateObj.z2 = optZ2 || 0; } } function makeRenderItem(customSeries, data, ecModel, api) { var renderItem = customSeries.get("renderItem"); var coordSys = customSeries.coordinateSystem; var prepareResult = {}; if (coordSys) { prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms(coordSys) : prepareCustoms[coordSys.type](coordSys); } var userAPI = defaults({ getWidth: api.getWidth, getHeight: api.getHeight, getZr: api.getZr, getDevicePixelRatio: api.getDevicePixelRatio, value, style, ordinalRawValue, styleEmphasis, visual, barLayout, currentSeriesIndices, font }, prepareResult.api || {}); var userParams = { context: {}, seriesId: customSeries.id, seriesName: customSeries.name, seriesIndex: customSeries.seriesIndex, coordSys: prepareResult.coordSys, dataInsideLength: data.count(), encode: wrapEncodeDef(customSeries.getData()) }; var currDataIndexInside; var currItemModel; var currItemStyleModels = {}; var currLabelModels = {}; var seriesItemStyleModels = {}; var seriesLabelModels = {}; for (var i = 0; i < STATES.length; i++) { var stateName = STATES[i]; seriesItemStyleModels[stateName] = customSeries.getModel(PATH_ITEM_STYLE[stateName]); seriesLabelModels[stateName] = customSeries.getModel(PATH_LABEL[stateName]); } function getItemModel(dataIndexInside) { return dataIndexInside === currDataIndexInside ? currItemModel || (currItemModel = data.getItemModel(dataIndexInside)) : data.getItemModel(dataIndexInside); } function getItemStyleModel(dataIndexInside, state) { return !data.hasItemOption ? seriesItemStyleModels[state] : dataIndexInside === currDataIndexInside ? currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])) : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]); } function getLabelModel(dataIndexInside, state) { return !data.hasItemOption ? seriesLabelModels[state] : dataIndexInside === currDataIndexInside ? currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])) : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]); } return function(dataIndexInside, payload) { currDataIndexInside = dataIndexInside; currItemModel = null; currItemStyleModels = {}; currLabelModels = {}; return renderItem && renderItem(defaults({ dataIndexInside, dataIndex: data.getRawIndex(dataIndexInside), actionType: payload ? payload.type : null }, userParams), userAPI); }; function value(dim, dataIndexInside) { dataIndexInside == null && (dataIndexInside = currDataIndexInside); return data.getStore().get(data.getDimensionIndex(dim || 0), dataIndexInside); } function ordinalRawValue(dim, dataIndexInside) { dataIndexInside == null && (dataIndexInside = currDataIndexInside); dim = dim || 0; var dimInfo = data.getDimensionInfo(dim); if (!dimInfo) { var dimIndex = data.getDimensionIndex(dim); return dimIndex >= 0 ? data.getStore().get(dimIndex, dataIndexInside) : void 0; } var val = data.get(dimInfo.name, dataIndexInside); var ordinalMeta = dimInfo && dimInfo.ordinalMeta; return ordinalMeta ? ordinalMeta.categories[val] : val; } function style(userProps, dataIndexInside) { dataIndexInside == null && (dataIndexInside = currDataIndexInside); var style2 = data.getItemVisual(dataIndexInside, "style"); var visualColor = style2 && style2.fill; var opacity = style2 && style2.opacity; var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle(); visualColor != null && (itemStyle.fill = visualColor); opacity != null && (itemStyle.opacity = opacity); var opt = { inheritColor: isString(visualColor) ? visualColor : "#000" }; var labelModel = getLabelModel(dataIndexInside, NORMAL); var textStyle = createTextStyle(labelModel, null, opt, false, true); textStyle.text = labelModel.getShallow("show") ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null; var textConfig = createTextConfig(labelModel, opt, false); preFetchFromExtra(userProps, itemStyle); itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig); userProps && applyUserPropsAfter(itemStyle, userProps); itemStyle.legacy = true; return itemStyle; } function styleEmphasis(userProps, dataIndexInside) { dataIndexInside == null && (dataIndexInside = currDataIndexInside); var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle(); var labelModel = getLabelModel(dataIndexInside, EMPHASIS); var textStyle = createTextStyle(labelModel, null, null, true, true); textStyle.text = labelModel.getShallow("show") ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null; var textConfig = createTextConfig(labelModel, null, true); preFetchFromExtra(userProps, itemStyle); itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig); userProps && applyUserPropsAfter(itemStyle, userProps); itemStyle.legacy = true; return itemStyle; } function applyUserPropsAfter(itemStyle, extra) { for (var key in extra) { if (hasOwn(extra, key)) { itemStyle[key] = extra[key]; } } } function preFetchFromExtra(extra, itemStyle) { if (extra) { extra.textFill && (itemStyle.textFill = extra.textFill); extra.textPosition && (itemStyle.textPosition = extra.textPosition); } } function visual(visualType, dataIndexInside) { dataIndexInside == null && (dataIndexInside = currDataIndexInside); if (hasOwn(STYLE_VISUAL_TYPE, visualType)) { var style_1 = data.getItemVisual(dataIndexInside, "style"); return style_1 ? style_1[STYLE_VISUAL_TYPE[visualType]] : null; } if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) { return data.getItemVisual(dataIndexInside, visualType); } } function barLayout(opt) { if (coordSys.type === "cartesian2d") { var baseAxis = coordSys.getBaseAxis(); return getLayoutOnAxis(defaults({ axis: baseAxis }, opt)); } } function currentSeriesIndices() { return ecModel.getCurrentSeriesIndices(); } function font(opt) { return getFont(opt, ecModel); } } function wrapEncodeDef(data) { var encodeDef = {}; each(data.dimensions, function(dimName) { var dimInfo = data.getDimensionInfo(dimName); if (!dimInfo.isExtraCoord) { var coordDim = dimInfo.coordDim; var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || []; dataDims[dimInfo.coordDimIndex] = data.getDimensionIndex(dimName); } }); return encodeDef; } function createOrUpdateItem(api, existsEl, dataIndex, elOption, seriesModel, group, data) { if (!elOption) { group.remove(existsEl); return; } var el = doCreateOrUpdateEl(api, existsEl, dataIndex, elOption, seriesModel, group); el && data.setItemGraphicEl(dataIndex, el); el && toggleHoverEmphasis(el, elOption.focus, elOption.blurScope, elOption.emphasisDisabled); return el; } function doCreateOrUpdateEl(api, existsEl, dataIndex, elOption, seriesModel, group) { var toBeReplacedIdx = -1; var oldEl = existsEl; if (existsEl && doesElNeedRecreate(existsEl, elOption, seriesModel)) { toBeReplacedIdx = indexOf(group.childrenRef(), existsEl); existsEl = null; } var isInit = !existsEl; var el = existsEl; if (!el) { el = createEl(elOption); if (oldEl) { copyElement(oldEl, el); } } else { el.clearStates(); } if (elOption.morph === false) { el.disableMorphing = true; } else if (el.disableMorphing) { el.disableMorphing = false; } attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt = attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt = attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt = attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null; attachedTxInfoTmp.isLegacy = false; doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp); doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit); updateElNormal(api, el, dataIndex, elOption, attachedTxInfoTmp, seriesModel, isInit); hasOwn(elOption, "info") && (customInnerStore(el).info = elOption.info); for (var i = 0; i < STATES.length; i++) { var stateName = STATES[i]; if (stateName !== NORMAL) { var otherStateOpt = retrieveStateOption(elOption, stateName); var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName); updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp); } } updateZ(el, elOption, seriesModel); if (elOption.type === "group") { mergeChildren(api, el, dataIndex, elOption, seriesModel); } if (toBeReplacedIdx >= 0) { group.replaceAt(el, toBeReplacedIdx); } else { group.add(el); } return el; } function doesElNeedRecreate(el, elOption, seriesModel) { var elInner = customInnerStore(el); var elOptionType = elOption.type; var elOptionShape = elOption.shape; var elOptionStyle = elOption.style; return seriesModel.isUniversalTransitionEnabled() || elOptionType != null && elOptionType !== elInner.customGraphicType || elOptionType === "path" && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== elInner.customPathData || elOptionType === "image" && hasOwn(elOptionStyle, "image") && elOptionStyle.image !== elInner.customImagePath; } function doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) { var clipPathOpt = elOption.clipPath; if (clipPathOpt === false) { if (el && el.getClipPath()) { el.removeClipPath(); } } else if (clipPathOpt) { var clipPath = el.getClipPath(); if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt, seriesModel)) { clipPath = null; } if (!clipPath) { clipPath = createEl(clipPathOpt); el.setClipPath(clipPath); } updateElNormal(null, clipPath, dataIndex, clipPathOpt, null, seriesModel, isInit); } } function doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) { if (el.isGroup) { return; } processTxInfo(elOption, null, attachedTxInfo); processTxInfo(elOption, EMPHASIS, attachedTxInfo); var txConOptNormal = attachedTxInfo.normal.conOpt; var txConOptEmphasis = attachedTxInfo.emphasis.conOpt; var txConOptBlur = attachedTxInfo.blur.conOpt; var txConOptSelect = attachedTxInfo.select.conOpt; if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) { var textContent = el.getTextContent(); if (txConOptNormal === false) { textContent && el.removeTextContent(); } else { txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || { type: "text" }; if (!textContent) { textContent = createEl(txConOptNormal); el.setTextContent(textContent); } else { textContent.clearStates(); } updateElNormal(null, textContent, dataIndex, txConOptNormal, null, seriesModel, isInit); var txConStlOptNormal = txConOptNormal && txConOptNormal.style; for (var i = 0; i < STATES.length; i++) { var stateName = STATES[i]; if (stateName !== NORMAL) { var txConOptOtherState = attachedTxInfo[stateName].conOpt; updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null); } } txConStlOptNormal ? textContent.dirty() : textContent.markRedraw(); } } } function processTxInfo(elOption, state, attachedTxInfo) { var stateOpt = !state ? elOption : retrieveStateOption(elOption, state); var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS); var elType = elOption.type; var txCfg = stateOpt ? stateOpt.textConfig : null; var txConOptNormal = elOption.textContent; var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state); if (styleOpt && (attachedTxInfo.isLegacy || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) { attachedTxInfo.isLegacy = true; var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state); if (!txCfg && convertResult.textConfig) { txCfg = convertResult.textConfig; } if (!txConOpt && convertResult.textContent) { txConOpt = convertResult.textContent; } } if (!state && txConOpt) { var txConOptNormal_1 = txConOpt; !txConOptNormal_1.type && (txConOptNormal_1.type = "text"); } var info = !state ? attachedTxInfo.normal : attachedTxInfo[state]; info.cfg = txCfg; info.conOpt = txConOpt; } function retrieveStateOption(elOption, state) { return !state ? elOption : elOption ? elOption[state] : null; } function retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) { var style = stateOption && stateOption.style; if (style == null && state === EMPHASIS && stateOptionNormal) { style = stateOptionNormal.styleEmphasis; } return style; } function mergeChildren(api, el, dataIndex, elOption, seriesModel) { var newChildren = elOption.children; var newLen = newChildren ? newChildren.length : 0; var mergeChildren2 = elOption.$mergeChildren; var byName = mergeChildren2 === "byName" || elOption.diffChildrenByName; var notMerge = mergeChildren2 === false; if (!newLen && !byName && !notMerge) { return; } if (byName) { diffGroupChildren({ api, oldChildren: el.children() || [], newChildren: newChildren || [], dataIndex, seriesModel, group: el }); return; } notMerge && el.removeAll(); var index = 0; for (; index < newLen; index++) { var newChild = newChildren[index]; var oldChild = el.childAt(index); if (newChild) { if (newChild.ignore == null) { newChild.ignore = false; } doCreateOrUpdateEl(api, oldChild, dataIndex, newChild, seriesModel, el); } else { oldChild.ignore = true; } } for (var i = el.childCount() - 1; i >= index; i--) { var child = el.childAt(i); removeChildFromGroup(el, child, seriesModel); } } function removeChildFromGroup(group, child, seriesModel) { child && applyLeaveTransition(child, customInnerStore(group).option, seriesModel); } function diffGroupChildren(context) { new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute(); } function getKey(item, idx) { var name = item && item.name; return name != null ? name : GROUP_DIFF_PREFIX + idx; } function processAddUpdate(newIndex, oldIndex) { var context = this.context; var childOption = newIndex != null ? context.newChildren[newIndex] : null; var child = oldIndex != null ? context.oldChildren[oldIndex] : null; doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group); } function processRemove(oldIndex) { var context = this.context; var child = context.oldChildren[oldIndex]; child && applyLeaveTransition(child, customInnerStore(child).option, context.seriesModel); } function getPathData(shape) { return shape && (shape.pathData || shape.d); } function hasOwnPathData(shape) { return shape && (hasOwn(shape, "pathData") || hasOwn(shape, "d")); } export { CustomChartView$1 as default };