qauMaWeb/node_modules/.cache/babel-loader/7b03004931301f3485504d9efc8...

1 line
48 KiB
JSON

{"ast":null,"code":"import \"core-js/modules/es.function.name.js\";\nimport \"core-js/modules/es.array.concat.js\";\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport * as modelUtil from '../../util/model.js';\nimport * as graphicUtil from '../../util/graphic.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport { parsePercent } from '../../util/number.js';\nimport ComponentView from '../../view/Component.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat.js';\nimport { applyLeaveTransition, applyUpdateTransition, isTransitionAll, updateLeaveTo } from '../../animation/customGraphicTransition.js';\nimport { updateProps } from '../../animation/basicTrasition.js';\nimport { applyKeyframeAnimation, stopPreviousKeyframeAnimationAndRestore } from '../../animation/customGraphicKeyframeAnimation.js';\nvar nonShapeGraphicElements = {\n // Reserved but not supported in graphic component.\n path: null,\n compoundPath: null,\n // Supported in graphic component.\n group: graphicUtil.Group,\n image: graphicUtil.Image,\n text: graphicUtil.Text\n};\nexport var inner = modelUtil.makeInner(); // ------------------------\n// View\n// ------------------------\n\nvar GraphicComponentView =\n/** @class */\nfunction (_super) {\n __extends(GraphicComponentView, _super);\n\n function GraphicComponentView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GraphicComponentView.type;\n return _this;\n }\n\n GraphicComponentView.prototype.init = function () {\n this._elMap = zrUtil.createHashMap();\n };\n\n GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\n // Having leveraged between use cases and algorithm complexity, a very\n // simple layout mechanism is used:\n // The size(width/height) can be determined by itself or its parent (not\n // implemented yet), but can not by its children. (Top-down travel)\n // The location(x/y) can be determined by the bounding rect of itself\n // (can including its descendants or not) and the size of its parent.\n // (Bottom-up travel)\n // When `chart.clear()` or `chart.setOption({...}, true)` with the same id,\n // view will be reused.\n if (graphicModel !== this._lastGraphicModel) {\n this._clear();\n }\n\n this._lastGraphicModel = graphicModel;\n\n this._updateElements(graphicModel);\n\n this._relocate(graphicModel, api);\n };\n /**\r\n * Update graphic elements.\r\n */\n\n\n GraphicComponentView.prototype._updateElements = function (graphicModel) {\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n if (!elOptionsToUpdate) {\n return;\n }\n\n var elMap = this._elMap;\n var rootGroup = this.group;\n var globalZ = graphicModel.get('z');\n var globalZLevel = graphicModel.get('zlevel'); // Top-down tranverse to assign graphic settings to each elements.\n\n zrUtil.each(elOptionsToUpdate, function (elOption) {\n var id = modelUtil.convertOptionIdName(elOption.id, null);\n var elExisting = id != null ? elMap.get(id) : null;\n var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\n var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n var elType = elOption.type;\n var elOptionStyle = elOption.style;\n\n if (elType === 'text' && elOptionStyle) {\n // In top/bottom mode, textVerticalAlign should not be used, which cause\n // inaccurately locating.\n if (elOption.hv && elOption.hv[1]) {\n elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\n }\n }\n\n var textContentOption = elOption.textContent;\n var textConfig = elOption.textConfig;\n\n if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\n var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\n\n if (!textConfig && convertResult.textConfig) {\n textConfig = elOption.textConfig = convertResult.textConfig;\n }\n\n if (!textContentOption && convertResult.textContent) {\n textContentOption = convertResult.textContent;\n }\n } // Remove unnecessary props to avoid potential problems.\n\n\n var elOptionCleaned = getCleanedElOption(elOption); // For simple, do not support parent change, otherwise reorder is needed.\n\n if (process.env.NODE_ENV !== 'production') {\n elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\n }\n\n var $action = elOption.$action || 'merge';\n var isMerge = $action === 'merge';\n var isReplace = $action === 'replace';\n\n if (isMerge) {\n var isInit = !elExisting;\n var el_1 = elExisting;\n\n if (isInit) {\n el_1 = createEl(id, targetElParent, elOption.type, elMap);\n } else {\n el_1 && (inner(el_1).isNew = false); // Stop and restore before update any other attributes.\n\n stopPreviousKeyframeAnimationAndRestore(el_1);\n }\n\n if (el_1) {\n applyUpdateTransition(el_1, elOptionCleaned, graphicModel, {\n isInit: isInit\n });\n updateCommonAttrs(el_1, elOption, globalZ, globalZLevel);\n }\n } else if (isReplace) {\n removeEl(elExisting, elOption, elMap, graphicModel);\n var el_2 = createEl(id, targetElParent, elOption.type, elMap);\n\n if (el_2) {\n applyUpdateTransition(el_2, elOptionCleaned, graphicModel, {\n isInit: true\n });\n updateCommonAttrs(el_2, elOption, globalZ, globalZLevel);\n }\n } else if ($action === 'remove') {\n updateLeaveTo(elExisting, elOption);\n removeEl(elExisting, elOption, elMap, graphicModel);\n }\n\n var el = elMap.get(id);\n\n if (el && textContentOption) {\n if (isMerge) {\n var textContentExisting = el.getTextContent();\n textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\n } else if (isReplace) {\n el.setTextContent(new graphicUtil.Text(textContentOption));\n }\n }\n\n if (el) {\n var clipPathOption = elOption.clipPath;\n\n if (clipPathOption) {\n var clipPathType = clipPathOption.type;\n var clipPath = void 0;\n var isInit = false;\n\n if (isMerge) {\n var oldClipPath = el.getClipPath();\n isInit = !oldClipPath || inner(oldClipPath).type !== clipPathType;\n clipPath = isInit ? newEl(clipPathType) : oldClipPath;\n } else if (isReplace) {\n isInit = true;\n clipPath = newEl(clipPathType);\n }\n\n el.setClipPath(clipPath);\n applyUpdateTransition(clipPath, clipPathOption, graphicModel, {\n isInit: isInit\n });\n applyKeyframeAnimation(clipPath, clipPathOption.keyframeAnimation, graphicModel);\n }\n\n var elInner = inner(el);\n el.setTextConfig(textConfig);\n elInner.option = elOption;\n setEventData(el, graphicModel, elOption);\n graphicUtil.setTooltipConfig({\n el: el,\n componentModel: graphicModel,\n itemName: el.name,\n itemTooltipOption: elOption.tooltip\n });\n applyKeyframeAnimation(el, elOption.keyframeAnimation, graphicModel);\n }\n });\n };\n /**\r\n * Locate graphic elements.\r\n */\n\n\n GraphicComponentView.prototype._relocate = function (graphicModel, api) {\n var elOptions = graphicModel.option.elements;\n var rootGroup = this.group;\n var elMap = this._elMap;\n var apiWidth = api.getWidth();\n var apiHeight = api.getHeight();\n var xy = ['x', 'y']; // Top-down to calculate percentage width/height of group\n\n for (var i = 0; i < elOptions.length; i++) {\n var elOption = elOptions[i];\n var id = modelUtil.convertOptionIdName(elOption.id, null);\n var el = id != null ? elMap.get(id) : null;\n\n if (!el || !el.isGroup) {\n continue;\n }\n\n var parentEl = el.parent;\n var isParentRoot = parentEl === rootGroup; // Like 'position:absolut' in css, default 0.\n\n var elInner = inner(el);\n var parentElInner = inner(parentEl);\n elInner.width = parsePercent(elInner.option.width, isParentRoot ? apiWidth : parentElInner.width) || 0;\n elInner.height = parsePercent(elInner.option.height, isParentRoot ? apiHeight : parentElInner.height) || 0;\n } // Bottom-up tranvese all elements (consider ec resize) to locate elements.\n\n\n for (var i = elOptions.length - 1; i >= 0; i--) {\n var elOption = elOptions[i];\n var id = modelUtil.convertOptionIdName(elOption.id, null);\n var el = id != null ? elMap.get(id) : null;\n\n if (!el) {\n continue;\n }\n\n var parentEl = el.parent;\n var parentElInner = inner(parentEl);\n var containerInfo = parentEl === rootGroup ? {\n width: apiWidth,\n height: apiHeight\n } : {\n width: parentElInner.width,\n height: parentElInner.height\n }; // PENDING\n // Currently, when `bounding: 'all'`, the union bounding rect of the group\n // does not include the rect of [0, 0, group.width, group.height], which\n // is probably weird for users. Should we make a break change for it?\n\n var layoutPos = {};\n var layouted = layoutUtil.positionElement(el, elOption, containerInfo, null, {\n hv: elOption.hv,\n boundingMode: elOption.bounding\n }, layoutPos);\n\n if (!inner(el).isNew && layouted) {\n var transition = elOption.transition;\n var animatePos = {};\n\n for (var k = 0; k < xy.length; k++) {\n var key = xy[k];\n var val = layoutPos[key];\n\n if (transition && (isTransitionAll(transition) || zrUtil.indexOf(transition, key) >= 0)) {\n animatePos[key] = val;\n } else {\n el[key] = val;\n }\n }\n\n updateProps(el, animatePos, graphicModel, 0);\n } else {\n el.attr(layoutPos);\n }\n }\n };\n /**\r\n * Clear all elements.\r\n */\n\n\n GraphicComponentView.prototype._clear = function () {\n var _this = this;\n\n var elMap = this._elMap;\n elMap.each(function (el) {\n removeEl(el, inner(el).option, elMap, _this._lastGraphicModel);\n });\n this._elMap = zrUtil.createHashMap();\n };\n\n GraphicComponentView.prototype.dispose = function () {\n this._clear();\n };\n\n GraphicComponentView.type = 'graphic';\n return GraphicComponentView;\n}(ComponentView);\n\nexport { GraphicComponentView };\n\nfunction newEl(graphicType) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(graphicType, 'graphic type MUST be set');\n }\n\n var Clz = zrUtil.hasOwn(nonShapeGraphicElements, graphicType) // Those graphic elements are not shapes. They should not be\n // overwritten by users, so do them first.\n ? nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(Clz, \"graphic type \" + graphicType + \" can not be found\");\n }\n\n var el = new Clz({});\n inner(el).type = graphicType;\n return el;\n}\n\nfunction createEl(id, targetElParent, graphicType, elMap) {\n var el = newEl(graphicType);\n targetElParent.add(el);\n elMap.set(id, el);\n inner(el).id = id;\n inner(el).isNew = true;\n return el;\n}\n\nfunction removeEl(elExisting, elOption, elMap, graphicModel) {\n var existElParent = elExisting && elExisting.parent;\n\n if (existElParent) {\n elExisting.type === 'group' && elExisting.traverse(function (el) {\n removeEl(el, elOption, elMap, graphicModel);\n });\n applyLeaveTransition(elExisting, elOption, graphicModel);\n elMap.removeKey(inner(elExisting).id);\n }\n}\n\nfunction updateCommonAttrs(el, elOption, defaultZ, defaultZlevel) {\n if (!el.isGroup) {\n var elDisplayable = el;\n elDisplayable.cursor = zrUtil.retrieve2(elOption.cursor, Displayable.prototype.cursor); // We should not support configure z and zlevel in the element level.\n // But seems we didn't limit it previously. So here still use it to avoid breaking.\n\n elDisplayable.z = zrUtil.retrieve2(elOption.z, defaultZ || 0);\n elDisplayable.zlevel = zrUtil.retrieve2(elOption.zlevel, defaultZlevel || 0); // z2 must not be null/undefined, otherwise sort error may occur.\n\n var optZ2 = elOption.z2;\n optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\n }\n\n zrUtil.each(zrUtil.keys(elOption), function (key) {\n var val = elOption[key]; // Assign event handlers.\n // PENDING: should enumerate all event names or use pattern matching?\n\n if (key.indexOf('on') === 0 && zrUtil.isFunction(val)) {\n el[key] = val;\n }\n });\n el.draggable = elOption.draggable; // Other attributes\n\n elOption.name != null && (el.name = elOption.name);\n elOption.id != null && (el.id = elOption.id);\n} // Remove unnecessary props to avoid potential problems.\n\n\nfunction getCleanedElOption(elOption) {\n elOption = zrUtil.extend({}, elOption);\n zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent', 'clipPath'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n delete elOption[name];\n });\n return elOption;\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n var eventData = getECData(el).eventData; // Simple optimize for large amount of elements that no need event.\n\n if (!el.silent && !el.ignore && !eventData) {\n eventData = getECData(el).eventData = {\n componentType: 'graphic',\n componentIndex: graphicModel.componentIndex,\n name: el.name\n };\n } // `elOption.info` enables user to mount some info on\n // elements and use them in event handlers.\n\n\n if (eventData) {\n eventData.info = elOption.info;\n }\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/qingge-Market/qingge-vue/node_modules/echarts/lib/component/graphic/GraphicView.js"],"names":["__extends","zrUtil","Displayable","modelUtil","graphicUtil","layoutUtil","parsePercent","ComponentView","getECData","isEC4CompatibleStyle","convertFromEC4CompatibleStyle","applyLeaveTransition","applyUpdateTransition","isTransitionAll","updateLeaveTo","updateProps","applyKeyframeAnimation","stopPreviousKeyframeAnimationAndRestore","nonShapeGraphicElements","path","compoundPath","group","Group","image","Image","text","Text","inner","makeInner","GraphicComponentView","_super","_this","apply","arguments","type","prototype","init","_elMap","createHashMap","render","graphicModel","ecModel","api","_lastGraphicModel","_clear","_updateElements","_relocate","elOptionsToUpdate","useElOptionsToUpdate","elMap","rootGroup","globalZ","get","globalZLevel","each","elOption","id","convertOptionIdName","elExisting","parentId","targetElParent","elType","elOptionStyle","style","hv","textVerticalAlign","textBaseline","verticalAlign","align","textContentOption","textContent","textConfig","convertResult","elOptionCleaned","getCleanedElOption","process","env","NODE_ENV","assert","parent","$action","isMerge","isReplace","isInit","el_1","createEl","isNew","updateCommonAttrs","removeEl","el_2","el","textContentExisting","getTextContent","attr","setTextContent","clipPathOption","clipPath","clipPathType","oldClipPath","getClipPath","newEl","setClipPath","keyframeAnimation","elInner","setTextConfig","option","setEventData","setTooltipConfig","componentModel","itemName","name","itemTooltipOption","tooltip","elOptions","elements","apiWidth","getWidth","apiHeight","getHeight","xy","i","length","isGroup","parentEl","isParentRoot","parentElInner","width","height","containerInfo","layoutPos","layouted","positionElement","boundingMode","bounding","transition","animatePos","k","key","val","indexOf","dispose","graphicType","Clz","hasOwn","getShapeClass","add","set","existElParent","traverse","removeKey","defaultZ","defaultZlevel","elDisplayable","cursor","retrieve2","z","zlevel","optZ2","z2","keys","isFunction","draggable","extend","concat","LOCATION_PARAMS","eventData","silent","ignore","componentType","componentIndex","info"],"mappings":"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","sourcesContent":["\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\n\r\n\r\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\r\n\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport * as zrUtil from 'zrender/lib/core/util.js';\r\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\r\nimport * as modelUtil from '../../util/model.js';\r\nimport * as graphicUtil from '../../util/graphic.js';\r\nimport * as layoutUtil from '../../util/layout.js';\r\nimport { parsePercent } from '../../util/number.js';\r\nimport ComponentView from '../../view/Component.js';\r\nimport { getECData } from '../../util/innerStore.js';\r\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat.js';\r\nimport { applyLeaveTransition, applyUpdateTransition, isTransitionAll, updateLeaveTo } from '../../animation/customGraphicTransition.js';\r\nimport { updateProps } from '../../animation/basicTrasition.js';\r\nimport { applyKeyframeAnimation, stopPreviousKeyframeAnimationAndRestore } from '../../animation/customGraphicKeyframeAnimation.js';\r\nvar nonShapeGraphicElements = {\r\n // Reserved but not supported in graphic component.\r\n path: null,\r\n compoundPath: null,\r\n // Supported in graphic component.\r\n group: graphicUtil.Group,\r\n image: graphicUtil.Image,\r\n text: graphicUtil.Text\r\n};\r\nexport var inner = modelUtil.makeInner(); // ------------------------\r\n// View\r\n// ------------------------\r\n\r\nvar GraphicComponentView =\r\n/** @class */\r\nfunction (_super) {\r\n __extends(GraphicComponentView, _super);\r\n\r\n function GraphicComponentView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n\r\n _this.type = GraphicComponentView.type;\r\n return _this;\r\n }\r\n\r\n GraphicComponentView.prototype.init = function () {\r\n this._elMap = zrUtil.createHashMap();\r\n };\r\n\r\n GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\r\n // Having leveraged between use cases and algorithm complexity, a very\r\n // simple layout mechanism is used:\r\n // The size(width/height) can be determined by itself or its parent (not\r\n // implemented yet), but can not by its children. (Top-down travel)\r\n // The location(x/y) can be determined by the bounding rect of itself\r\n // (can including its descendants or not) and the size of its parent.\r\n // (Bottom-up travel)\r\n // When `chart.clear()` or `chart.setOption({...}, true)` with the same id,\r\n // view will be reused.\r\n if (graphicModel !== this._lastGraphicModel) {\r\n this._clear();\r\n }\r\n\r\n this._lastGraphicModel = graphicModel;\r\n\r\n this._updateElements(graphicModel);\r\n\r\n this._relocate(graphicModel, api);\r\n };\r\n /**\r\n * Update graphic elements.\r\n */\r\n\r\n\r\n GraphicComponentView.prototype._updateElements = function (graphicModel) {\r\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\r\n\r\n if (!elOptionsToUpdate) {\r\n return;\r\n }\r\n\r\n var elMap = this._elMap;\r\n var rootGroup = this.group;\r\n var globalZ = graphicModel.get('z');\r\n var globalZLevel = graphicModel.get('zlevel'); // Top-down tranverse to assign graphic settings to each elements.\r\n\r\n zrUtil.each(elOptionsToUpdate, function (elOption) {\r\n var id = modelUtil.convertOptionIdName(elOption.id, null);\r\n var elExisting = id != null ? elMap.get(id) : null;\r\n var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\r\n var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\r\n var elType = elOption.type;\r\n var elOptionStyle = elOption.style;\r\n\r\n if (elType === 'text' && elOptionStyle) {\r\n // In top/bottom mode, textVerticalAlign should not be used, which cause\r\n // inaccurately locating.\r\n if (elOption.hv && elOption.hv[1]) {\r\n elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\r\n }\r\n }\r\n\r\n var textContentOption = elOption.textContent;\r\n var textConfig = elOption.textConfig;\r\n\r\n if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\r\n var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\r\n\r\n if (!textConfig && convertResult.textConfig) {\r\n textConfig = elOption.textConfig = convertResult.textConfig;\r\n }\r\n\r\n if (!textContentOption && convertResult.textContent) {\r\n textContentOption = convertResult.textContent;\r\n }\r\n } // Remove unnecessary props to avoid potential problems.\r\n\r\n\r\n var elOptionCleaned = getCleanedElOption(elOption); // For simple, do not support parent change, otherwise reorder is needed.\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\r\n }\r\n\r\n var $action = elOption.$action || 'merge';\r\n var isMerge = $action === 'merge';\r\n var isReplace = $action === 'replace';\r\n\r\n if (isMerge) {\r\n var isInit = !elExisting;\r\n var el_1 = elExisting;\r\n\r\n if (isInit) {\r\n el_1 = createEl(id, targetElParent, elOption.type, elMap);\r\n } else {\r\n el_1 && (inner(el_1).isNew = false); // Stop and restore before update any other attributes.\r\n\r\n stopPreviousKeyframeAnimationAndRestore(el_1);\r\n }\r\n\r\n if (el_1) {\r\n applyUpdateTransition(el_1, elOptionCleaned, graphicModel, {\r\n isInit: isInit\r\n });\r\n updateCommonAttrs(el_1, elOption, globalZ, globalZLevel);\r\n }\r\n } else if (isReplace) {\r\n removeEl(elExisting, elOption, elMap, graphicModel);\r\n var el_2 = createEl(id, targetElParent, elOption.type, elMap);\r\n\r\n if (el_2) {\r\n applyUpdateTransition(el_2, elOptionCleaned, graphicModel, {\r\n isInit: true\r\n });\r\n updateCommonAttrs(el_2, elOption, globalZ, globalZLevel);\r\n }\r\n } else if ($action === 'remove') {\r\n updateLeaveTo(elExisting, elOption);\r\n removeEl(elExisting, elOption, elMap, graphicModel);\r\n }\r\n\r\n var el = elMap.get(id);\r\n\r\n if (el && textContentOption) {\r\n if (isMerge) {\r\n var textContentExisting = el.getTextContent();\r\n textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\r\n } else if (isReplace) {\r\n el.setTextContent(new graphicUtil.Text(textContentOption));\r\n }\r\n }\r\n\r\n if (el) {\r\n var clipPathOption = elOption.clipPath;\r\n\r\n if (clipPathOption) {\r\n var clipPathType = clipPathOption.type;\r\n var clipPath = void 0;\r\n var isInit = false;\r\n\r\n if (isMerge) {\r\n var oldClipPath = el.getClipPath();\r\n isInit = !oldClipPath || inner(oldClipPath).type !== clipPathType;\r\n clipPath = isInit ? newEl(clipPathType) : oldClipPath;\r\n } else if (isReplace) {\r\n isInit = true;\r\n clipPath = newEl(clipPathType);\r\n }\r\n\r\n el.setClipPath(clipPath);\r\n applyUpdateTransition(clipPath, clipPathOption, graphicModel, {\r\n isInit: isInit\r\n });\r\n applyKeyframeAnimation(clipPath, clipPathOption.keyframeAnimation, graphicModel);\r\n }\r\n\r\n var elInner = inner(el);\r\n el.setTextConfig(textConfig);\r\n elInner.option = elOption;\r\n setEventData(el, graphicModel, elOption);\r\n graphicUtil.setTooltipConfig({\r\n el: el,\r\n componentModel: graphicModel,\r\n itemName: el.name,\r\n itemTooltipOption: elOption.tooltip\r\n });\r\n applyKeyframeAnimation(el, elOption.keyframeAnimation, graphicModel);\r\n }\r\n });\r\n };\r\n /**\r\n * Locate graphic elements.\r\n */\r\n\r\n\r\n GraphicComponentView.prototype._relocate = function (graphicModel, api) {\r\n var elOptions = graphicModel.option.elements;\r\n var rootGroup = this.group;\r\n var elMap = this._elMap;\r\n var apiWidth = api.getWidth();\r\n var apiHeight = api.getHeight();\r\n var xy = ['x', 'y']; // Top-down to calculate percentage width/height of group\r\n\r\n for (var i = 0; i < elOptions.length; i++) {\r\n var elOption = elOptions[i];\r\n var id = modelUtil.convertOptionIdName(elOption.id, null);\r\n var el = id != null ? elMap.get(id) : null;\r\n\r\n if (!el || !el.isGroup) {\r\n continue;\r\n }\r\n\r\n var parentEl = el.parent;\r\n var isParentRoot = parentEl === rootGroup; // Like 'position:absolut' in css, default 0.\r\n\r\n var elInner = inner(el);\r\n var parentElInner = inner(parentEl);\r\n elInner.width = parsePercent(elInner.option.width, isParentRoot ? apiWidth : parentElInner.width) || 0;\r\n elInner.height = parsePercent(elInner.option.height, isParentRoot ? apiHeight : parentElInner.height) || 0;\r\n } // Bottom-up tranvese all elements (consider ec resize) to locate elements.\r\n\r\n\r\n for (var i = elOptions.length - 1; i >= 0; i--) {\r\n var elOption = elOptions[i];\r\n var id = modelUtil.convertOptionIdName(elOption.id, null);\r\n var el = id != null ? elMap.get(id) : null;\r\n\r\n if (!el) {\r\n continue;\r\n }\r\n\r\n var parentEl = el.parent;\r\n var parentElInner = inner(parentEl);\r\n var containerInfo = parentEl === rootGroup ? {\r\n width: apiWidth,\r\n height: apiHeight\r\n } : {\r\n width: parentElInner.width,\r\n height: parentElInner.height\r\n }; // PENDING\r\n // Currently, when `bounding: 'all'`, the union bounding rect of the group\r\n // does not include the rect of [0, 0, group.width, group.height], which\r\n // is probably weird for users. Should we make a break change for it?\r\n\r\n var layoutPos = {};\r\n var layouted = layoutUtil.positionElement(el, elOption, containerInfo, null, {\r\n hv: elOption.hv,\r\n boundingMode: elOption.bounding\r\n }, layoutPos);\r\n\r\n if (!inner(el).isNew && layouted) {\r\n var transition = elOption.transition;\r\n var animatePos = {};\r\n\r\n for (var k = 0; k < xy.length; k++) {\r\n var key = xy[k];\r\n var val = layoutPos[key];\r\n\r\n if (transition && (isTransitionAll(transition) || zrUtil.indexOf(transition, key) >= 0)) {\r\n animatePos[key] = val;\r\n } else {\r\n el[key] = val;\r\n }\r\n }\r\n\r\n updateProps(el, animatePos, graphicModel, 0);\r\n } else {\r\n el.attr(layoutPos);\r\n }\r\n }\r\n };\r\n /**\r\n * Clear all elements.\r\n */\r\n\r\n\r\n GraphicComponentView.prototype._clear = function () {\r\n var _this = this;\r\n\r\n var elMap = this._elMap;\r\n elMap.each(function (el) {\r\n removeEl(el, inner(el).option, elMap, _this._lastGraphicModel);\r\n });\r\n this._elMap = zrUtil.createHashMap();\r\n };\r\n\r\n GraphicComponentView.prototype.dispose = function () {\r\n this._clear();\r\n };\r\n\r\n GraphicComponentView.type = 'graphic';\r\n return GraphicComponentView;\r\n}(ComponentView);\r\n\r\nexport { GraphicComponentView };\r\n\r\nfunction newEl(graphicType) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n zrUtil.assert(graphicType, 'graphic type MUST be set');\r\n }\r\n\r\n var Clz = zrUtil.hasOwn(nonShapeGraphicElements, graphicType) // Those graphic elements are not shapes. They should not be\r\n // overwritten by users, so do them first.\r\n ? nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n zrUtil.assert(Clz, \"graphic type \" + graphicType + \" can not be found\");\r\n }\r\n\r\n var el = new Clz({});\r\n inner(el).type = graphicType;\r\n return el;\r\n}\r\n\r\nfunction createEl(id, targetElParent, graphicType, elMap) {\r\n var el = newEl(graphicType);\r\n targetElParent.add(el);\r\n elMap.set(id, el);\r\n inner(el).id = id;\r\n inner(el).isNew = true;\r\n return el;\r\n}\r\n\r\nfunction removeEl(elExisting, elOption, elMap, graphicModel) {\r\n var existElParent = elExisting && elExisting.parent;\r\n\r\n if (existElParent) {\r\n elExisting.type === 'group' && elExisting.traverse(function (el) {\r\n removeEl(el, elOption, elMap, graphicModel);\r\n });\r\n applyLeaveTransition(elExisting, elOption, graphicModel);\r\n elMap.removeKey(inner(elExisting).id);\r\n }\r\n}\r\n\r\nfunction updateCommonAttrs(el, elOption, defaultZ, defaultZlevel) {\r\n if (!el.isGroup) {\r\n var elDisplayable = el;\r\n elDisplayable.cursor = zrUtil.retrieve2(elOption.cursor, Displayable.prototype.cursor); // We should not support configure z and zlevel in the element level.\r\n // But seems we didn't limit it previously. So here still use it to avoid breaking.\r\n\r\n elDisplayable.z = zrUtil.retrieve2(elOption.z, defaultZ || 0);\r\n elDisplayable.zlevel = zrUtil.retrieve2(elOption.zlevel, defaultZlevel || 0); // z2 must not be null/undefined, otherwise sort error may occur.\r\n\r\n var optZ2 = elOption.z2;\r\n optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\r\n }\r\n\r\n zrUtil.each(zrUtil.keys(elOption), function (key) {\r\n var val = elOption[key]; // Assign event handlers.\r\n // PENDING: should enumerate all event names or use pattern matching?\r\n\r\n if (key.indexOf('on') === 0 && zrUtil.isFunction(val)) {\r\n el[key] = val;\r\n }\r\n });\r\n el.draggable = elOption.draggable; // Other attributes\r\n\r\n elOption.name != null && (el.name = elOption.name);\r\n elOption.id != null && (el.id = elOption.id);\r\n} // Remove unnecessary props to avoid potential problems.\r\n\r\n\r\nfunction getCleanedElOption(elOption) {\r\n elOption = zrUtil.extend({}, elOption);\r\n zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent', 'clipPath'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\r\n delete elOption[name];\r\n });\r\n return elOption;\r\n}\r\n\r\nfunction setEventData(el, graphicModel, elOption) {\r\n var eventData = getECData(el).eventData; // Simple optimize for large amount of elements that no need event.\r\n\r\n if (!el.silent && !el.ignore && !eventData) {\r\n eventData = getECData(el).eventData = {\r\n componentType: 'graphic',\r\n componentIndex: graphicModel.componentIndex,\r\n name: el.name\r\n };\r\n } // `elOption.info` enables user to mount some info on\r\n // elements and use them in event handlers.\r\n\r\n\r\n if (eventData) {\r\n eventData.info = elOption.info;\r\n }\r\n}"]},"metadata":{},"sourceType":"module"}