qauMaWeb/node_modules/.cache/babel-loader/a102cb4eda334cfff4d0e8e9666...

1 line
79 KiB
JSON

{"ast":null,"code":"import \"core-js/modules/es.array.fill.js\";\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport LRU from 'zrender/lib/core/LRU.js';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each, isString, isGradientObject, map } from 'zrender/lib/core/util.js';\nimport { getECData } from './innerStore.js';\nimport * as colorTool from 'zrender/lib/tool/color.js';\nimport { queryDataIndex, makeInner } from './model.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport { error } from './log.js'; // Reserve 0 as default.\n\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nvar getComponentStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n return fillOrStroke != null && fillOrStroke !== 'none';\n} // Most lifted color are duplicated.\n\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n if (isString(color)) {\n var liftedColor = liftedColorCache.get(color);\n\n if (!liftedColor) {\n liftedColor = colorTool.lift(color, -0.1);\n liftedColorCache.put(color, liftedColor);\n }\n\n return liftedColor;\n } else if (isGradientObject(color)) {\n var ret = extend({}, color);\n ret.colorStops = map(color.colorStops, function (stop) {\n return {\n offset: stop.offset,\n color: colorTool.lift(stop.color, -0.1)\n };\n });\n return ret;\n } // Change nothing.\n\n\n return color;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n el.onHoverStateChange(stateName);\n }\n\n el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n // Only mark the flag.\n // States will be applied in the echarts.ts in next frame.\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n // Only mark the flag.\n // States will be applied in the echarts.ts in next frame.\n if (el.hoverState === HOVER_STATE_EMPHASIS) {\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n }\n}\n\nfunction singleEnterBlur(el) {\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n if (el.hoverState === HOVER_STATE_BLUR) {\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n }\n}\n\nfunction singleEnterSelect(el) {\n el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n updateElementState(el, updater, commonParam);\n el.isGroup && el.traverse(function (child) {\n updateElementState(child, updater, commonParam);\n });\n}\n\nexport function setStatesFlag(el, stateName) {\n switch (stateName) {\n case 'emphasis':\n el.hoverState = HOVER_STATE_EMPHASIS;\n break;\n\n case 'normal':\n el.hoverState = HOVER_STATE_NORMAL;\n break;\n\n case 'blur':\n el.hoverState = HOVER_STATE_BLUR;\n break;\n\n case 'select':\n el.selected = true;\n }\n}\n/**\n * If we reuse elements when rerender.\n * DON'T forget to clearStates before we update the style and shape.\n * Or we may update on the wrong state instead of normal state.\n */\n\nexport function clearStates(el) {\n if (el.isGroup) {\n el.traverse(function (child) {\n child.clearStates();\n });\n } else {\n el.clearStates();\n }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n var style = el.style;\n var fromState = {};\n\n for (var i = 0; i < props.length; i++) {\n var propName = props[i];\n var val = style[propName];\n fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n }\n\n for (var i = 0; i < el.animators.length; i++) {\n var animator = el.animators[i];\n\n if (animator.__fromStateTransition // Don't consider the animation to emphasis state.\n && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n animator.saveTo(fromState, props);\n }\n }\n\n return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n var cloned = false;\n\n if (el instanceof Path) {\n var store = getSavedStates(el);\n var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n state = state || {};\n var emphasisStyle = state.style || {}; // inherit case\n\n if (emphasisStyle.fill === 'inherit') {\n cloned = true;\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle);\n emphasisStyle.fill = fromFill;\n } // Apply default color lift\n else if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n cloned = true; // Not modify the original value.\n\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle); // Already being applied 'emphasis'. DON'T lift color multiple times.\n\n emphasisStyle.fill = liftColor(fromFill);\n } // Not highlight stroke if fill has been highlighted.\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n if (!cloned) {\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle);\n }\n\n emphasisStyle.stroke = liftColor(fromStroke);\n }\n\n state.style = emphasisStyle;\n }\n }\n\n if (state) {\n // TODO Share with textContent?\n if (state.z2 == null) {\n if (!cloned) {\n state = extend({}, state);\n }\n\n var z2EmphasisLift = el.z2EmphasisLift;\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n }\n }\n\n return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n // const hasSelect = indexOf(el.currentStates, stateName) >= 0;\n if (state) {\n // TODO Share with textContent?\n if (state.z2 == null) {\n state = extend({}, state);\n var z2SelectLift = el.z2SelectLift;\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n }\n }\n\n return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n var currentOpacity = el.style.opacity;\n var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n opacity: 1\n }) : null;\n state = state || {};\n var blurStyle = state.style || {};\n\n if (blurStyle.opacity == null) {\n // clone state\n state = extend({}, state);\n blurStyle = extend({\n // Already being applied 'emphasis'. DON'T mul opacity multiple times.\n opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n }, blurStyle);\n state.style = blurStyle;\n }\n\n return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n var state = this.states[stateName];\n\n if (this.style) {\n if (stateName === 'emphasis') {\n return createEmphasisDefaultState(this, stateName, targetStates, state);\n } else if (stateName === 'blur') {\n return createBlurDefaultState(this, stateName, state);\n } else if (stateName === 'select') {\n return createSelectDefaultState(this, stateName, state);\n }\n }\n\n return state;\n}\n/**\n * Set hover style (namely \"emphasis style\") of element.\n * @param el Should not be `zrender/graphic/Group`.\n * @param focus 'self' | 'selfInSeries' | 'series'\n */\n\n\nexport function setDefaultStateProxy(el) {\n el.stateProxy = elementStateProxy;\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine();\n\n if (textContent) {\n textContent.stateProxy = elementStateProxy;\n }\n\n if (textGuide) {\n textGuide.stateProxy = elementStateProxy;\n }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n !shouldSilent(el, e) // \"emphasis\" event highlight has higher priority than mouse highlight.\n && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n !shouldSilent(el, e) // \"emphasis\" event highlight has higher priority than mouse highlight.\n && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n el.__highByOuter |= 1 << (highlightDigit || 0);\n traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nexport function allLeaveBlur(api) {\n var model = api.getModel();\n var leaveBlurredSeries = [];\n var allComponentViews = [];\n model.eachComponent(function (componentType, componentModel) {\n var componentStates = getComponentStates(componentModel);\n var isSeries = componentType === 'series';\n var view = isSeries ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n !isSeries && allComponentViews.push(view);\n\n if (componentStates.isBlured) {\n // Leave blur anyway\n view.group.traverse(function (child) {\n singleLeaveBlur(child);\n });\n isSeries && leaveBlurredSeries.push(componentModel);\n }\n\n componentStates.isBlured = false;\n });\n each(allComponentViews, function (view) {\n if (view && view.toggleBlurSeries) {\n view.toggleBlurSeries(leaveBlurredSeries, false, model);\n }\n });\n}\nexport function blurSeries(targetSeriesIndex, focus, blurScope, api) {\n var ecModel = api.getModel();\n blurScope = blurScope || 'coordinateSystem';\n\n function leaveBlurOfIndices(data, dataIndices) {\n for (var i = 0; i < dataIndices.length; i++) {\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\n itemEl && leaveBlur(itemEl);\n }\n }\n\n if (targetSeriesIndex == null) {\n return;\n }\n\n if (!focus || focus === 'none') {\n return;\n }\n\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n if (targetCoordSys && targetCoordSys.master) {\n targetCoordSys = targetCoordSys.master;\n }\n\n var blurredSeries = [];\n ecModel.eachSeries(function (seriesModel) {\n var sameSeries = targetSeriesModel === seriesModel;\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.master) {\n coordSys = coordSys.master;\n }\n\n var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries; // If there is no coordinate system. use sameSeries instead.\n\n if (!( // Not blur other series if blurScope series\n blurScope === 'series' && !sameSeries // Not blur other coordinate system if blurScope is coordinateSystem\n || blurScope === 'coordinateSystem' && !sameCoordSys // Not blur self series if focus is series.\n || focus === 'series' && sameSeries // TODO blurScope: coordinate system\n )) {\n var view = api.getViewOfSeriesModel(seriesModel);\n view.group.traverse(function (child) {\n singleEnterBlur(child);\n });\n\n if (isArrayLike(focus)) {\n leaveBlurOfIndices(seriesModel.getData(), focus);\n } else if (isObject(focus)) {\n var dataTypes = keys(focus);\n\n for (var d = 0; d < dataTypes.length; d++) {\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n }\n }\n\n blurredSeries.push(seriesModel);\n getComponentStates(seriesModel).isBlured = true;\n }\n });\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType === 'series') {\n return;\n }\n\n var view = api.getViewOfComponentModel(componentModel);\n\n if (view && view.toggleBlurSeries) {\n view.toggleBlurSeries(blurredSeries, true, ecModel);\n }\n });\n}\nexport function blurComponent(componentMainType, componentIndex, api) {\n if (componentMainType == null || componentIndex == null) {\n return;\n }\n\n var componentModel = api.getModel().getComponent(componentMainType, componentIndex);\n\n if (!componentModel) {\n return;\n }\n\n getComponentStates(componentModel).isBlured = true;\n var view = api.getViewOfComponentModel(componentModel);\n\n if (!view || !view.focusBlurEnabled) {\n return;\n }\n\n view.group.traverse(function (child) {\n singleEnterBlur(child);\n });\n}\nexport function blurSeriesFromHighlightPayload(seriesModel, payload, api) {\n var seriesIndex = seriesModel.seriesIndex;\n var data = seriesModel.getData(payload.dataType);\n\n if (!data) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Unknown dataType \" + payload.dataType);\n }\n\n return;\n }\n\n var dataIndex = queryDataIndex(data, payload); // Pick the first one if there is multiple/none exists.\n\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n var el = data.getItemGraphicEl(dataIndex);\n\n if (!el) {\n var count = data.count();\n var current = 0; // If data on dataIndex is NaN.\n\n while (!el && current < count) {\n el = data.getItemGraphicEl(current++);\n }\n }\n\n if (el) {\n var ecData = getECData(el);\n blurSeries(seriesIndex, ecData.focus, ecData.blurScope, api);\n } else {\n // If there is no element put on the data. Try getting it from raw option\n // TODO Should put it on seriesModel?\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n if (focus_1 != null) {\n blurSeries(seriesIndex, focus_1, blurScope, api);\n }\n }\n}\nexport function findComponentHighDownDispatchers(componentMainType, componentIndex, name, api) {\n var ret = {\n focusSelf: false,\n dispatchers: null\n };\n\n if (componentMainType == null || componentMainType === 'series' || componentIndex == null || name == null) {\n return ret;\n }\n\n var componentModel = api.getModel().getComponent(componentMainType, componentIndex);\n\n if (!componentModel) {\n return ret;\n }\n\n var view = api.getViewOfComponentModel(componentModel);\n\n if (!view || !view.findHighDownDispatchers) {\n return ret;\n }\n\n var dispatchers = view.findHighDownDispatchers(name); // At presnet, the component (like Geo) only blur inside itself.\n // So we do not use `blurScope` in component.\n\n var focusSelf;\n\n for (var i = 0; i < dispatchers.length; i++) {\n if (process.env.NODE_ENV !== 'production' && !isHighDownDispatcher(dispatchers[i])) {\n error('param should be highDownDispatcher');\n }\n\n if (getECData(dispatchers[i]).focus === 'self') {\n focusSelf = true;\n break;\n }\n }\n\n return {\n focusSelf: focusSelf,\n dispatchers: dispatchers\n };\n}\nexport function handleGlobalMouseOverForHighDown(dispatcher, e, api) {\n if (process.env.NODE_ENV !== 'production' && !isHighDownDispatcher(dispatcher)) {\n error('param should be highDownDispatcher');\n }\n\n var ecData = getECData(dispatcher);\n\n var _a = findComponentHighDownDispatchers(ecData.componentMainType, ecData.componentIndex, ecData.componentHighDownName, api),\n dispatchers = _a.dispatchers,\n focusSelf = _a.focusSelf; // If `findHighDownDispatchers` is supported on the component,\n // highlight/downplay elements with the same name.\n\n\n if (dispatchers) {\n if (focusSelf) {\n blurComponent(ecData.componentMainType, ecData.componentIndex, api);\n }\n\n each(dispatchers, function (dispatcher) {\n return enterEmphasisWhenMouseOver(dispatcher, e);\n });\n } else {\n // Try blur all in the related series. Then emphasis the hoverred.\n // TODO. progressive mode.\n blurSeries(ecData.seriesIndex, ecData.focus, ecData.blurScope, api);\n\n if (ecData.focus === 'self') {\n blurComponent(ecData.componentMainType, ecData.componentIndex, api);\n } // Other than series, component that not support `findHighDownDispatcher` will\n // also use it. But in this case, highlight/downplay are only supported in\n // mouse hover but not in dispatchAction.\n\n\n enterEmphasisWhenMouseOver(dispatcher, e);\n }\n}\nexport function handleGlobalMouseOutForHighDown(dispatcher, e, api) {\n if (process.env.NODE_ENV !== 'production' && !isHighDownDispatcher(dispatcher)) {\n error('param should be highDownDispatcher');\n }\n\n allLeaveBlur(api);\n var ecData = getECData(dispatcher);\n var dispatchers = findComponentHighDownDispatchers(ecData.componentMainType, ecData.componentIndex, ecData.componentHighDownName, api).dispatchers;\n\n if (dispatchers) {\n each(dispatchers, function (dispatcher) {\n return leaveEmphasisWhenMouseOut(dispatcher, e);\n });\n } else {\n leaveEmphasisWhenMouseOut(dispatcher, e);\n }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n if (!isSelectChangePayload(payload)) {\n return;\n }\n\n var dataType = payload.dataType;\n var data = seriesModel.getData(dataType);\n var dataIndex = queryDataIndex(data, payload);\n\n if (!isArray(dataIndex)) {\n dataIndex = [dataIndex];\n }\n\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n var allData = seriesModel.getAllData();\n each(allData, function (_a) {\n var data = _a.data,\n type = _a.type;\n data.eachItemGraphicEl(function (el, idx) {\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n });\n });\n}\nexport function getAllSelectedIndices(ecModel) {\n var ret = [];\n ecModel.eachSeries(function (seriesModel) {\n var allData = seriesModel.getAllData();\n each(allData, function (_a) {\n var data = _a.data,\n type = _a.type;\n var dataIndices = seriesModel.getSelectedDataIndices();\n\n if (dataIndices.length > 0) {\n var item = {\n dataIndex: dataIndices,\n seriesIndex: seriesModel.seriesIndex\n };\n\n if (type != null) {\n item.dataType = type;\n }\n\n ret.push(item);\n }\n });\n });\n return ret;\n}\n/**\n * Enable the function that mouseover will trigger the emphasis state.\n *\n * NOTE:\n * This function should be used on the element with dataIndex, seriesIndex.\n *\n */\n\nexport function enableHoverEmphasis(el, focus, blurScope) {\n setAsHighDownDispatcher(el, true);\n traverseUpdateState(el, setDefaultStateProxy);\n enableHoverFocus(el, focus, blurScope);\n}\nexport function disableHoverEmphasis(el) {\n setAsHighDownDispatcher(el, false);\n}\nexport function toggleHoverEmphasis(el, focus, blurScope, isDisabled) {\n isDisabled ? disableHoverEmphasis(el) : enableHoverEmphasis(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n var ecData = getECData(el);\n\n if (focus != null) {\n // TODO dataIndex may be set after this function. This check is not useful.\n // if (ecData.dataIndex == null) {\n // if (__DEV__) {\n // console.warn('focus can only been set on element with dataIndex');\n // }\n // }\n // else {\n ecData.focus = focus;\n ecData.blurScope = blurScope; // }\n } else if (ecData.focus) {\n ecData.focus = null;\n }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n itemStyle: 'getItemStyle',\n lineStyle: 'getLineStyle',\n areaStyle: 'getAreaStyle'\n};\n/**\n * Set emphasis/blur/selected states of element.\n */\n\nexport function setStatesStylesFromModel(el, itemModel, styleType, // default itemStyle\ngetter) {\n styleType = styleType || 'itemStyle';\n\n for (var i = 0; i < OTHER_STATES.length; i++) {\n var stateName = OTHER_STATES[i];\n var model = itemModel.getModel([stateName, styleType]);\n var state = el.ensureState(stateName); // Let it throw error if getterType is not found.\n\n state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n }\n}\n/**\n *\n * Set element as highlight / downplay dispatcher.\n * It will be checked when element received mouseover event or from highlight action.\n * It's in change of all highlight/downplay behavior of it's children.\n *\n * @param el\n * @param el.highDownSilentOnTouch\n * In touch device, mouseover event will be trigger on touchstart event\n * (see module:zrender/dom/HandlerProxy). By this mechanism, we can\n * conveniently use hoverStyle when tap on touch screen without additional\n * code for compatibility.\n * But if the chart/component has select feature, which usually also use\n * hoverStyle, there might be conflict between 'select-highlight' and\n * 'hover-highlight' especially when roam is enabled (see geo for example).\n * In this case, `highDownSilentOnTouch` should be used to disable\n * hover-highlight on touch device.\n * @param asDispatcher If `false`, do not set as \"highDownDispatcher\".\n */\n\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n var disable = asDispatcher === false;\n var extendedEl = el; // Make `highDownSilentOnTouch` and `onStateChange` only work after\n // `setAsHighDownDispatcher` called. Avoid it is modified by user unexpectedly.\n\n if (el.highDownSilentOnTouch) {\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n } // Simple optimize, since this method might be\n // called for each elements of a group in some cases.\n\n\n if (!disable || extendedEl.__highDownDispatcher) {\n // Emphasis, normal can be triggered manually by API or other components like hover link.\n // el[method]('emphasis', onElementEmphasisEvent)[method]('normal', onElementNormalEvent);\n // Also keep previous record.\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n extendedEl.__highDownDispatcher = !disable;\n }\n}\nexport function isHighDownDispatcher(el) {\n return !!(el && el.__highDownDispatcher);\n}\n/**\n * Enable component highlight/downplay features:\n * + hover link (within the same name)\n * + focus blur in component\n */\n\nexport function enableComponentHighDownFeatures(el, componentModel, componentHighDownName) {\n var ecData = getECData(el);\n ecData.componentMainType = componentModel.mainType;\n ecData.componentIndex = componentModel.componentIndex;\n ecData.componentHighDownName = componentHighDownName;\n}\n/**\n * Support highlight/downplay record on each elements.\n * For the case: hover highlight/downplay (legend, visualMap, ...) and\n * user triggered highlight/downplay should not conflict.\n * Only all of the highlightDigit cleared, return to normal.\n * @param {string} highlightKey\n * @return {number} highlightDigit\n */\n\nexport function getHighlightDigit(highlightKey) {\n var highlightDigit = _highlightKeyMap[highlightKey];\n\n if (highlightDigit == null && _highlightNextDigit <= 32) {\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n }\n\n return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n var payloadType = payload.type;\n return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n var payloadType = payload.type;\n return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n var store = getSavedStates(el);\n store.normalFill = el.style.fill;\n store.normalStroke = el.style.stroke;\n var selectState = el.states.select || {};\n store.selectFill = selectState.style && selectState.style.fill || null;\n store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src啊/ElectronicMallVue/node_modules/echarts/lib/util/states.js"],"names":["LRU","extend","indexOf","isArrayLike","isObject","keys","isArray","each","isString","isGradientObject","map","getECData","colorTool","queryDataIndex","makeInner","Path","error","_highlightNextDigit","_highlightKeyMap","getSavedStates","getComponentStates","HOVER_STATE_NORMAL","HOVER_STATE_BLUR","HOVER_STATE_EMPHASIS","SPECIAL_STATES","DISPLAY_STATES","Z2_EMPHASIS_LIFT","Z2_SELECT_LIFT","HIGHLIGHT_ACTION_TYPE","DOWNPLAY_ACTION_TYPE","SELECT_ACTION_TYPE","UNSELECT_ACTION_TYPE","TOGGLE_SELECT_ACTION_TYPE","hasFillOrStroke","fillOrStroke","liftedColorCache","liftColor","color","liftedColor","get","lift","put","ret","colorStops","stop","offset","doChangeHoverState","el","stateName","hoverStateEnum","onHoverStateChange","hoverState","singleEnterEmphasis","singleLeaveEmphasis","singleEnterBlur","singleLeaveBlur","singleEnterSelect","selected","singleLeaveSelect","updateElementState","updater","commonParam","traverseUpdateState","isGroup","traverse","child","setStatesFlag","clearStates","getFromStateStyle","props","toStateName","defaultValue","style","fromState","i","length","propName","val","animators","animator","__fromStateTransition","targetName","saveTo","createEmphasisDefaultState","targetStates","state","hasSelect","cloned","store","fromFill","selectFill","normalFill","fromStroke","selectStroke","normalStroke","emphasisStyle","fill","stroke","z2","z2EmphasisLift","createSelectDefaultState","z2SelectLift","createBlurDefaultState","hasBlur","currentStates","currentOpacity","opacity","blurStyle","elementStateProxy","states","setDefaultStateProxy","stateProxy","textContent","getTextContent","textGuide","getTextGuideLine","enterEmphasisWhenMouseOver","e","shouldSilent","__highByOuter","leaveEmphasisWhenMouseOut","enterEmphasis","highlightDigit","leaveEmphasis","enterBlur","leaveBlur","enterSelect","leaveSelect","__highDownSilentOnTouch","zrByTouch","allLeaveBlur","api","model","getModel","leaveBlurredSeries","allComponentViews","eachComponent","componentType","componentModel","componentStates","isSeries","view","getViewOfSeriesModel","getViewOfComponentModel","push","isBlured","group","toggleBlurSeries","blurSeries","targetSeriesIndex","focus","blurScope","ecModel","leaveBlurOfIndices","data","dataIndices","itemEl","getItemGraphicEl","targetSeriesModel","getSeriesByIndex","targetCoordSys","coordinateSystem","master","blurredSeries","eachSeries","seriesModel","sameSeries","coordSys","sameCoordSys","getData","dataTypes","d","blurComponent","componentMainType","componentIndex","getComponent","focusBlurEnabled","blurSeriesFromHighlightPayload","payload","seriesIndex","dataType","process","env","NODE_ENV","dataIndex","count","current","ecData","focus_1","findComponentHighDownDispatchers","name","focusSelf","dispatchers","findHighDownDispatchers","isHighDownDispatcher","handleGlobalMouseOverForHighDown","dispatcher","_a","componentHighDownName","handleGlobalMouseOutForHighDown","toggleSelectionFromPayload","isSelectChangePayload","type","updateSeriesElementSelection","allData","getAllData","eachItemGraphicEl","idx","isSelected","getAllSelectedIndices","getSelectedDataIndices","item","enableHoverEmphasis","setAsHighDownDispatcher","enableHoverFocus","disableHoverEmphasis","toggleHoverEmphasis","isDisabled","OTHER_STATES","defaultStyleGetterMap","itemStyle","lineStyle","areaStyle","setStatesStylesFromModel","itemModel","styleType","getter","ensureState","asDispatcher","disable","extendedEl","highDownSilentOnTouch","__highDownDispatcher","enableComponentHighDownFeatures","mainType","getHighlightDigit","highlightKey","payloadType","isHighDownPayload","savePathStates","selectState","select"],"mappings":"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","sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport LRU from 'zrender/lib/core/LRU.js';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each, isString, isGradientObject, map } from 'zrender/lib/core/util.js';\nimport { getECData } from './innerStore.js';\nimport * as colorTool from 'zrender/lib/tool/color.js';\nimport { queryDataIndex, makeInner } from './model.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport { error } from './log.js'; // Reserve 0 as default.\n\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nvar getComponentStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n return fillOrStroke != null && fillOrStroke !== 'none';\n} // Most lifted color are duplicated.\n\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n if (isString(color)) {\n var liftedColor = liftedColorCache.get(color);\n\n if (!liftedColor) {\n liftedColor = colorTool.lift(color, -0.1);\n liftedColorCache.put(color, liftedColor);\n }\n\n return liftedColor;\n } else if (isGradientObject(color)) {\n var ret = extend({}, color);\n ret.colorStops = map(color.colorStops, function (stop) {\n return {\n offset: stop.offset,\n color: colorTool.lift(stop.color, -0.1)\n };\n });\n return ret;\n } // Change nothing.\n\n\n return color;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n el.onHoverStateChange(stateName);\n }\n\n el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n // Only mark the flag.\n // States will be applied in the echarts.ts in next frame.\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n // Only mark the flag.\n // States will be applied in the echarts.ts in next frame.\n if (el.hoverState === HOVER_STATE_EMPHASIS) {\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n }\n}\n\nfunction singleEnterBlur(el) {\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n if (el.hoverState === HOVER_STATE_BLUR) {\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n }\n}\n\nfunction singleEnterSelect(el) {\n el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n updateElementState(el, updater, commonParam);\n el.isGroup && el.traverse(function (child) {\n updateElementState(child, updater, commonParam);\n });\n}\n\nexport function setStatesFlag(el, stateName) {\n switch (stateName) {\n case 'emphasis':\n el.hoverState = HOVER_STATE_EMPHASIS;\n break;\n\n case 'normal':\n el.hoverState = HOVER_STATE_NORMAL;\n break;\n\n case 'blur':\n el.hoverState = HOVER_STATE_BLUR;\n break;\n\n case 'select':\n el.selected = true;\n }\n}\n/**\n * If we reuse elements when rerender.\n * DON'T forget to clearStates before we update the style and shape.\n * Or we may update on the wrong state instead of normal state.\n */\n\nexport function clearStates(el) {\n if (el.isGroup) {\n el.traverse(function (child) {\n child.clearStates();\n });\n } else {\n el.clearStates();\n }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n var style = el.style;\n var fromState = {};\n\n for (var i = 0; i < props.length; i++) {\n var propName = props[i];\n var val = style[propName];\n fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n }\n\n for (var i = 0; i < el.animators.length; i++) {\n var animator = el.animators[i];\n\n if (animator.__fromStateTransition // Don't consider the animation to emphasis state.\n && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n animator.saveTo(fromState, props);\n }\n }\n\n return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n var cloned = false;\n\n if (el instanceof Path) {\n var store = getSavedStates(el);\n var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n state = state || {};\n var emphasisStyle = state.style || {}; // inherit case\n\n if (emphasisStyle.fill === 'inherit') {\n cloned = true;\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle);\n emphasisStyle.fill = fromFill;\n } // Apply default color lift\n else if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n cloned = true; // Not modify the original value.\n\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle); // Already being applied 'emphasis'. DON'T lift color multiple times.\n\n emphasisStyle.fill = liftColor(fromFill);\n } // Not highlight stroke if fill has been highlighted.\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n if (!cloned) {\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle);\n }\n\n emphasisStyle.stroke = liftColor(fromStroke);\n }\n\n state.style = emphasisStyle;\n }\n }\n\n if (state) {\n // TODO Share with textContent?\n if (state.z2 == null) {\n if (!cloned) {\n state = extend({}, state);\n }\n\n var z2EmphasisLift = el.z2EmphasisLift;\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n }\n }\n\n return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n // const hasSelect = indexOf(el.currentStates, stateName) >= 0;\n if (state) {\n // TODO Share with textContent?\n if (state.z2 == null) {\n state = extend({}, state);\n var z2SelectLift = el.z2SelectLift;\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n }\n }\n\n return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n var currentOpacity = el.style.opacity;\n var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n opacity: 1\n }) : null;\n state = state || {};\n var blurStyle = state.style || {};\n\n if (blurStyle.opacity == null) {\n // clone state\n state = extend({}, state);\n blurStyle = extend({\n // Already being applied 'emphasis'. DON'T mul opacity multiple times.\n opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n }, blurStyle);\n state.style = blurStyle;\n }\n\n return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n var state = this.states[stateName];\n\n if (this.style) {\n if (stateName === 'emphasis') {\n return createEmphasisDefaultState(this, stateName, targetStates, state);\n } else if (stateName === 'blur') {\n return createBlurDefaultState(this, stateName, state);\n } else if (stateName === 'select') {\n return createSelectDefaultState(this, stateName, state);\n }\n }\n\n return state;\n}\n/**\n * Set hover style (namely \"emphasis style\") of element.\n * @param el Should not be `zrender/graphic/Group`.\n * @param focus 'self' | 'selfInSeries' | 'series'\n */\n\n\nexport function setDefaultStateProxy(el) {\n el.stateProxy = elementStateProxy;\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine();\n\n if (textContent) {\n textContent.stateProxy = elementStateProxy;\n }\n\n if (textGuide) {\n textGuide.stateProxy = elementStateProxy;\n }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n !shouldSilent(el, e) // \"emphasis\" event highlight has higher priority than mouse highlight.\n && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n !shouldSilent(el, e) // \"emphasis\" event highlight has higher priority than mouse highlight.\n && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n el.__highByOuter |= 1 << (highlightDigit || 0);\n traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nexport function allLeaveBlur(api) {\n var model = api.getModel();\n var leaveBlurredSeries = [];\n var allComponentViews = [];\n model.eachComponent(function (componentType, componentModel) {\n var componentStates = getComponentStates(componentModel);\n var isSeries = componentType === 'series';\n var view = isSeries ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n !isSeries && allComponentViews.push(view);\n\n if (componentStates.isBlured) {\n // Leave blur anyway\n view.group.traverse(function (child) {\n singleLeaveBlur(child);\n });\n isSeries && leaveBlurredSeries.push(componentModel);\n }\n\n componentStates.isBlured = false;\n });\n each(allComponentViews, function (view) {\n if (view && view.toggleBlurSeries) {\n view.toggleBlurSeries(leaveBlurredSeries, false, model);\n }\n });\n}\nexport function blurSeries(targetSeriesIndex, focus, blurScope, api) {\n var ecModel = api.getModel();\n blurScope = blurScope || 'coordinateSystem';\n\n function leaveBlurOfIndices(data, dataIndices) {\n for (var i = 0; i < dataIndices.length; i++) {\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\n itemEl && leaveBlur(itemEl);\n }\n }\n\n if (targetSeriesIndex == null) {\n return;\n }\n\n if (!focus || focus === 'none') {\n return;\n }\n\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n if (targetCoordSys && targetCoordSys.master) {\n targetCoordSys = targetCoordSys.master;\n }\n\n var blurredSeries = [];\n ecModel.eachSeries(function (seriesModel) {\n var sameSeries = targetSeriesModel === seriesModel;\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.master) {\n coordSys = coordSys.master;\n }\n\n var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries; // If there is no coordinate system. use sameSeries instead.\n\n if (!( // Not blur other series if blurScope series\n blurScope === 'series' && !sameSeries // Not blur other coordinate system if blurScope is coordinateSystem\n || blurScope === 'coordinateSystem' && !sameCoordSys // Not blur self series if focus is series.\n || focus === 'series' && sameSeries // TODO blurScope: coordinate system\n )) {\n var view = api.getViewOfSeriesModel(seriesModel);\n view.group.traverse(function (child) {\n singleEnterBlur(child);\n });\n\n if (isArrayLike(focus)) {\n leaveBlurOfIndices(seriesModel.getData(), focus);\n } else if (isObject(focus)) {\n var dataTypes = keys(focus);\n\n for (var d = 0; d < dataTypes.length; d++) {\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n }\n }\n\n blurredSeries.push(seriesModel);\n getComponentStates(seriesModel).isBlured = true;\n }\n });\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType === 'series') {\n return;\n }\n\n var view = api.getViewOfComponentModel(componentModel);\n\n if (view && view.toggleBlurSeries) {\n view.toggleBlurSeries(blurredSeries, true, ecModel);\n }\n });\n}\nexport function blurComponent(componentMainType, componentIndex, api) {\n if (componentMainType == null || componentIndex == null) {\n return;\n }\n\n var componentModel = api.getModel().getComponent(componentMainType, componentIndex);\n\n if (!componentModel) {\n return;\n }\n\n getComponentStates(componentModel).isBlured = true;\n var view = api.getViewOfComponentModel(componentModel);\n\n if (!view || !view.focusBlurEnabled) {\n return;\n }\n\n view.group.traverse(function (child) {\n singleEnterBlur(child);\n });\n}\nexport function blurSeriesFromHighlightPayload(seriesModel, payload, api) {\n var seriesIndex = seriesModel.seriesIndex;\n var data = seriesModel.getData(payload.dataType);\n\n if (!data) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Unknown dataType \" + payload.dataType);\n }\n\n return;\n }\n\n var dataIndex = queryDataIndex(data, payload); // Pick the first one if there is multiple/none exists.\n\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n var el = data.getItemGraphicEl(dataIndex);\n\n if (!el) {\n var count = data.count();\n var current = 0; // If data on dataIndex is NaN.\n\n while (!el && current < count) {\n el = data.getItemGraphicEl(current++);\n }\n }\n\n if (el) {\n var ecData = getECData(el);\n blurSeries(seriesIndex, ecData.focus, ecData.blurScope, api);\n } else {\n // If there is no element put on the data. Try getting it from raw option\n // TODO Should put it on seriesModel?\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n if (focus_1 != null) {\n blurSeries(seriesIndex, focus_1, blurScope, api);\n }\n }\n}\nexport function findComponentHighDownDispatchers(componentMainType, componentIndex, name, api) {\n var ret = {\n focusSelf: false,\n dispatchers: null\n };\n\n if (componentMainType == null || componentMainType === 'series' || componentIndex == null || name == null) {\n return ret;\n }\n\n var componentModel = api.getModel().getComponent(componentMainType, componentIndex);\n\n if (!componentModel) {\n return ret;\n }\n\n var view = api.getViewOfComponentModel(componentModel);\n\n if (!view || !view.findHighDownDispatchers) {\n return ret;\n }\n\n var dispatchers = view.findHighDownDispatchers(name); // At presnet, the component (like Geo) only blur inside itself.\n // So we do not use `blurScope` in component.\n\n var focusSelf;\n\n for (var i = 0; i < dispatchers.length; i++) {\n if (process.env.NODE_ENV !== 'production' && !isHighDownDispatcher(dispatchers[i])) {\n error('param should be highDownDispatcher');\n }\n\n if (getECData(dispatchers[i]).focus === 'self') {\n focusSelf = true;\n break;\n }\n }\n\n return {\n focusSelf: focusSelf,\n dispatchers: dispatchers\n };\n}\nexport function handleGlobalMouseOverForHighDown(dispatcher, e, api) {\n if (process.env.NODE_ENV !== 'production' && !isHighDownDispatcher(dispatcher)) {\n error('param should be highDownDispatcher');\n }\n\n var ecData = getECData(dispatcher);\n\n var _a = findComponentHighDownDispatchers(ecData.componentMainType, ecData.componentIndex, ecData.componentHighDownName, api),\n dispatchers = _a.dispatchers,\n focusSelf = _a.focusSelf; // If `findHighDownDispatchers` is supported on the component,\n // highlight/downplay elements with the same name.\n\n\n if (dispatchers) {\n if (focusSelf) {\n blurComponent(ecData.componentMainType, ecData.componentIndex, api);\n }\n\n each(dispatchers, function (dispatcher) {\n return enterEmphasisWhenMouseOver(dispatcher, e);\n });\n } else {\n // Try blur all in the related series. Then emphasis the hoverred.\n // TODO. progressive mode.\n blurSeries(ecData.seriesIndex, ecData.focus, ecData.blurScope, api);\n\n if (ecData.focus === 'self') {\n blurComponent(ecData.componentMainType, ecData.componentIndex, api);\n } // Other than series, component that not support `findHighDownDispatcher` will\n // also use it. But in this case, highlight/downplay are only supported in\n // mouse hover but not in dispatchAction.\n\n\n enterEmphasisWhenMouseOver(dispatcher, e);\n }\n}\nexport function handleGlobalMouseOutForHighDown(dispatcher, e, api) {\n if (process.env.NODE_ENV !== 'production' && !isHighDownDispatcher(dispatcher)) {\n error('param should be highDownDispatcher');\n }\n\n allLeaveBlur(api);\n var ecData = getECData(dispatcher);\n var dispatchers = findComponentHighDownDispatchers(ecData.componentMainType, ecData.componentIndex, ecData.componentHighDownName, api).dispatchers;\n\n if (dispatchers) {\n each(dispatchers, function (dispatcher) {\n return leaveEmphasisWhenMouseOut(dispatcher, e);\n });\n } else {\n leaveEmphasisWhenMouseOut(dispatcher, e);\n }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n if (!isSelectChangePayload(payload)) {\n return;\n }\n\n var dataType = payload.dataType;\n var data = seriesModel.getData(dataType);\n var dataIndex = queryDataIndex(data, payload);\n\n if (!isArray(dataIndex)) {\n dataIndex = [dataIndex];\n }\n\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n var allData = seriesModel.getAllData();\n each(allData, function (_a) {\n var data = _a.data,\n type = _a.type;\n data.eachItemGraphicEl(function (el, idx) {\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n });\n });\n}\nexport function getAllSelectedIndices(ecModel) {\n var ret = [];\n ecModel.eachSeries(function (seriesModel) {\n var allData = seriesModel.getAllData();\n each(allData, function (_a) {\n var data = _a.data,\n type = _a.type;\n var dataIndices = seriesModel.getSelectedDataIndices();\n\n if (dataIndices.length > 0) {\n var item = {\n dataIndex: dataIndices,\n seriesIndex: seriesModel.seriesIndex\n };\n\n if (type != null) {\n item.dataType = type;\n }\n\n ret.push(item);\n }\n });\n });\n return ret;\n}\n/**\n * Enable the function that mouseover will trigger the emphasis state.\n *\n * NOTE:\n * This function should be used on the element with dataIndex, seriesIndex.\n *\n */\n\nexport function enableHoverEmphasis(el, focus, blurScope) {\n setAsHighDownDispatcher(el, true);\n traverseUpdateState(el, setDefaultStateProxy);\n enableHoverFocus(el, focus, blurScope);\n}\nexport function disableHoverEmphasis(el) {\n setAsHighDownDispatcher(el, false);\n}\nexport function toggleHoverEmphasis(el, focus, blurScope, isDisabled) {\n isDisabled ? disableHoverEmphasis(el) : enableHoverEmphasis(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n var ecData = getECData(el);\n\n if (focus != null) {\n // TODO dataIndex may be set after this function. This check is not useful.\n // if (ecData.dataIndex == null) {\n // if (__DEV__) {\n // console.warn('focus can only been set on element with dataIndex');\n // }\n // }\n // else {\n ecData.focus = focus;\n ecData.blurScope = blurScope; // }\n } else if (ecData.focus) {\n ecData.focus = null;\n }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n itemStyle: 'getItemStyle',\n lineStyle: 'getLineStyle',\n areaStyle: 'getAreaStyle'\n};\n/**\n * Set emphasis/blur/selected states of element.\n */\n\nexport function setStatesStylesFromModel(el, itemModel, styleType, // default itemStyle\ngetter) {\n styleType = styleType || 'itemStyle';\n\n for (var i = 0; i < OTHER_STATES.length; i++) {\n var stateName = OTHER_STATES[i];\n var model = itemModel.getModel([stateName, styleType]);\n var state = el.ensureState(stateName); // Let it throw error if getterType is not found.\n\n state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n }\n}\n/**\n *\n * Set element as highlight / downplay dispatcher.\n * It will be checked when element received mouseover event or from highlight action.\n * It's in change of all highlight/downplay behavior of it's children.\n *\n * @param el\n * @param el.highDownSilentOnTouch\n * In touch device, mouseover event will be trigger on touchstart event\n * (see module:zrender/dom/HandlerProxy). By this mechanism, we can\n * conveniently use hoverStyle when tap on touch screen without additional\n * code for compatibility.\n * But if the chart/component has select feature, which usually also use\n * hoverStyle, there might be conflict between 'select-highlight' and\n * 'hover-highlight' especially when roam is enabled (see geo for example).\n * In this case, `highDownSilentOnTouch` should be used to disable\n * hover-highlight on touch device.\n * @param asDispatcher If `false`, do not set as \"highDownDispatcher\".\n */\n\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n var disable = asDispatcher === false;\n var extendedEl = el; // Make `highDownSilentOnTouch` and `onStateChange` only work after\n // `setAsHighDownDispatcher` called. Avoid it is modified by user unexpectedly.\n\n if (el.highDownSilentOnTouch) {\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n } // Simple optimize, since this method might be\n // called for each elements of a group in some cases.\n\n\n if (!disable || extendedEl.__highDownDispatcher) {\n // Emphasis, normal can be triggered manually by API or other components like hover link.\n // el[method]('emphasis', onElementEmphasisEvent)[method]('normal', onElementNormalEvent);\n // Also keep previous record.\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n extendedEl.__highDownDispatcher = !disable;\n }\n}\nexport function isHighDownDispatcher(el) {\n return !!(el && el.__highDownDispatcher);\n}\n/**\n * Enable component highlight/downplay features:\n * + hover link (within the same name)\n * + focus blur in component\n */\n\nexport function enableComponentHighDownFeatures(el, componentModel, componentHighDownName) {\n var ecData = getECData(el);\n ecData.componentMainType = componentModel.mainType;\n ecData.componentIndex = componentModel.componentIndex;\n ecData.componentHighDownName = componentHighDownName;\n}\n/**\n * Support highlight/downplay record on each elements.\n * For the case: hover highlight/downplay (legend, visualMap, ...) and\n * user triggered highlight/downplay should not conflict.\n * Only all of the highlightDigit cleared, return to normal.\n * @param {string} highlightKey\n * @return {number} highlightDigit\n */\n\nexport function getHighlightDigit(highlightKey) {\n var highlightDigit = _highlightKeyMap[highlightKey];\n\n if (highlightDigit == null && _highlightNextDigit <= 32) {\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n }\n\n return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n var payloadType = payload.type;\n return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n var payloadType = payload.type;\n return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n var store = getSavedStates(el);\n store.normalFill = el.style.fill;\n store.normalStroke = el.style.stroke;\n var selectState = el.states.select || {};\n store.selectFill = selectState.style && selectState.style.fill || null;\n store.selectStroke = selectState.style && selectState.style.stroke || null;\n}"]},"metadata":{},"sourceType":"module"}