q2-tecton-elements 1.52.7 → 1.52.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/q2-chart-area.cjs.entry.js +14 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +20 -3
- package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +22 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +1 -2
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +14 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +20 -3
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +22 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
- package/dist/collection/components/q2-select/q2-select.js +1 -2
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js +0 -4
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -1
- package/dist/components/q2-chart-area.js +14 -1
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-bar.js +20 -3
- package/dist/components/q2-chart-bar.js.map +1 -1
- package/dist/components/q2-chart-donut.js +22 -1
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-select2.js +1 -2
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/esm/q2-chart-area.entry.js +14 -1
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +20 -3
- package/dist/esm/q2-chart-bar.entry.js.map +1 -1
- package/dist/esm/q2-chart-donut.entry.js +22 -1
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-select.entry.js +1 -2
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +16 -3
- package/dist/q2-tecton-elements/q2-chart-area.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +98 -81
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +28 -7
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-select.entry.js +1 -2
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
- package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +1 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"q2-chart-donut.entry.js","mappings":"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","names":["formatUtil.normalizeCssArray","graphic.Rect","getComputedStyle","each","makeStyleCoord","zrUtil.isObject","zrUtil.each","zrUtil.bind","TooltipRichContent","TooltipHTMLContent","globalListener.register","axisPointerViewHelper.getValueLabel","axisHelper.getAxisRawValue","timeFormat","globalListener.unregister","install","installAxisPointer","TooltipModel","TooltipView","zrUtil.isArray","zrUtil.isString","zrUtil.merge","zrUtil.createHashMap","zrUtil.map","zrUtil.isNumber","zrUtil.filter","zrUtil.indexOf","zrUtil.curry","Group","graphic.Group","layoutUtil.getLayoutRect","zrUtil.defaults","zrUtil.extend","graphic.Text","zrUtil.isFunction","graphic.setTooltipConfig","layoutUtil.box","curry","LegendModel","LegendView","graphic.createIcon","zrUtil.clone","zrUtil.retrieve2","graphic.updateProps","installLegendPlain","ScrollableLegendModel","ScrollableLegendView","installLegendScroll","RADIAN","layout.getLayoutRect","graphic.initProps","graphic.Polyline","graphic.Sector","graphic.removeElementWithFadeOut","labelLayout","modelUtil.makeInner","LegendVisualProvider","modelUtil.defaultEmphasis","PieView","PieSeriesModel","echarts.use","TooltipComponent","LegendComponent","PieChart","CanvasRenderer","AriaComponent","LabelLayout","echarts.init"],"sources":["../../node_modules/echarts/lib/component/helper/listComponent.js","../../node_modules/echarts/lib/component/tooltip/TooltipModel.js","../../node_modules/echarts/lib/component/tooltip/helper.js","../../node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js","../../node_modules/echarts/lib/component/tooltip/TooltipRichContent.js","../../node_modules/echarts/lib/component/tooltip/TooltipView.js","../../node_modules/echarts/lib/component/tooltip/install.js","../../node_modules/echarts/lib/component/legend/LegendModel.js","../../node_modules/echarts/lib/component/legend/LegendView.js","../../node_modules/echarts/lib/component/legend/legendFilter.js","../../node_modules/echarts/lib/component/legend/legendAction.js","../../node_modules/echarts/lib/component/legend/installLegendPlain.js","../../node_modules/echarts/lib/component/legend/ScrollableLegendModel.js","../../node_modules/echarts/lib/component/legend/ScrollableLegendView.js","../../node_modules/echarts/lib/component/legend/scrollableLegendAction.js","../../node_modules/echarts/lib/component/legend/installLegendScroll.js","../../node_modules/echarts/lib/component/legend/install.js","../../node_modules/echarts/lib/chart/pie/pieLayout.js","../../node_modules/echarts/lib/processor/dataFilter.js","../../node_modules/echarts/lib/chart/pie/labelLayout.js","../../node_modules/echarts/lib/chart/pie/PieView.js","../../node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js","../../node_modules/echarts/lib/visual/LegendVisualProvider.js","../../node_modules/echarts/lib/chart/pie/PieSeries.js","../../node_modules/echarts/lib/processor/negativeDataFilter.js","../../node_modules/echarts/lib/chart/pie/install.js","src/components/q2-chart-donut/q2-chart-donut.scss?tag=q2-chart-donut&encapsulation=shadow","src/components/q2-chart-donut/q2-chart-donut.tsx"],"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*/\n// @ts-nocheck\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout.js';\nimport * as formatUtil from '../../util/format.js';\nimport * as graphic from '../../util/graphic.js';\n/**\n * Layout list like component.\n * It will box layout each items in group of component and then position the whole group in the viewport\n * @param {module:zrender/group/Group} group\n * @param {module:echarts/model/Component} componentModel\n * @param {module:echarts/ExtensionAPI}\n */\nexport function layout(group, componentModel, api) {\n var boxLayoutParams = componentModel.getBoxLayoutParams();\n var padding = componentModel.get('padding');\n var viewportSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n var style = componentModel.getItemStyle(['color', 'opacity']);\n style.fill = componentModel.get('backgroundColor');\n rect = new graphic.Rect({\n shape: {\n x: rect.x - padding[3],\n y: rect.y - padding[0],\n width: rect.width + padding[1] + padding[3],\n height: rect.height + padding[0] + padding[2],\n r: componentModel.get('borderRadius')\n },\n style: style,\n silent: true,\n z2: -1\n });\n // FIXME\n // `subPixelOptimizeRect` may bring some gap between edge of viewpart\n // and background rect when setting like `left: 0`, `top: 0`.\n // graphic.subPixelOptimizeRect(rect);\n return rect;\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/**\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 { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\nvar TooltipModel = /** @class */function (_super) {\n __extends(TooltipModel, _super);\n function TooltipModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = TooltipModel.type;\n return _this;\n }\n TooltipModel.type = 'tooltip';\n TooltipModel.dependencies = ['axisPointer'];\n TooltipModel.defaultOption = {\n // zlevel: 0,\n z: 60,\n show: true,\n // tooltip main content\n showContent: true,\n // 'trigger' only works on coordinate system.\n // 'item' | 'axis' | 'none'\n trigger: 'item',\n // 'click' | 'mousemove' | 'none'\n triggerOn: 'mousemove|click',\n alwaysShowContent: false,\n displayMode: 'single',\n renderMode: 'auto',\n // whether restraint content inside viewRect.\n // If renderMode: 'richText', default true.\n // If renderMode: 'html', defaut false (for backward compat).\n confine: null,\n showDelay: 0,\n hideDelay: 100,\n // Animation transition time, unit is second\n transitionDuration: 0.4,\n enterable: false,\n backgroundColor: '#fff',\n // box shadow\n shadowBlur: 10,\n shadowColor: 'rgba(0, 0, 0, .2)',\n shadowOffsetX: 1,\n shadowOffsetY: 2,\n // tooltip border radius, unit is px, default is 4\n borderRadius: 4,\n // tooltip border width, unit is px, default is 0 (no border)\n borderWidth: 1,\n // Tooltip inside padding, default is 5 for all direction\n // Array is allowed to set up, right, bottom, left, same with css\n // The default value: See `tooltip/tooltipMarkup.ts#getPaddingFromTooltipModel`.\n padding: null,\n // Extra css text\n extraCssText: '',\n // axis indicator, trigger by axis\n axisPointer: {\n // default is line\n // legal values: 'line' | 'shadow' | 'cross'\n type: 'line',\n // Valid when type is line, appoint tooltip line locate on which line. Optional\n // legal values: 'x' | 'y' | 'angle' | 'radius' | 'auto'\n // default is 'auto', chose the axis which type is category.\n // for multiply y axis, cartesian coord chose x axis, polar chose angle axis\n axis: 'auto',\n animation: 'auto',\n animationDurationUpdate: 200,\n animationEasingUpdate: 'exponentialOut',\n crossStyle: {\n color: '#999',\n width: 1,\n type: 'dashed',\n // TODO formatter\n textStyle: {}\n }\n // lineStyle and shadowStyle should not be specified here,\n // otherwise it will always override those styles on option.axisPointer.\n },\n\n textStyle: {\n color: '#666',\n fontSize: 14\n }\n };\n return TooltipModel;\n}(ComponentModel);\nexport default TooltipModel;","\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 { toCamelCase } from '../../util/format.js';\nimport env from 'zrender/lib/core/env.js';\n/* global document */\nexport function shouldTooltipConfine(tooltipModel) {\n var confineOption = tooltipModel.get('confine');\n return confineOption != null ? !!confineOption\n // In richText mode, the outside part can not be visible.\n : tooltipModel.get('renderMode') === 'richText';\n}\nfunction testStyle(styleProps) {\n if (!env.domSupported) {\n return;\n }\n var style = document.documentElement.style;\n for (var i = 0, len = styleProps.length; i < len; i++) {\n if (styleProps[i] in style) {\n return styleProps[i];\n }\n }\n}\nexport var TRANSFORM_VENDOR = testStyle(['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']);\nexport var TRANSITION_VENDOR = testStyle(['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);\nexport function toCSSVendorPrefix(styleVendor, styleProp) {\n if (!styleVendor) {\n return styleProp;\n }\n styleProp = toCamelCase(styleProp, true);\n var idx = styleVendor.indexOf(styleProp);\n styleVendor = idx === -1 ? styleProp : \"-\" + styleVendor.slice(0, idx) + \"-\" + styleProp;\n return styleVendor.toLowerCase();\n}\nexport function getComputedStyle(el, style) {\n var stl = el.currentStyle || document.defaultView && document.defaultView.getComputedStyle(el);\n return stl ? style ? stl[style] : stl : null;\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/**\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 { isString, indexOf, each, bind, isFunction, isArray, isDom } from 'zrender/lib/core/util.js';\nimport { normalizeEvent } from 'zrender/lib/core/event.js';\nimport { transformLocalCoord } from 'zrender/lib/core/dom.js';\nimport env from 'zrender/lib/core/env.js';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format.js';\nimport { shouldTooltipConfine, toCSSVendorPrefix, getComputedStyle, TRANSFORM_VENDOR, TRANSITION_VENDOR } from './helper.js';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup.js';\n/* global document, window */\nvar CSS_TRANSITION_VENDOR = toCSSVendorPrefix(TRANSITION_VENDOR, 'transition');\nvar CSS_TRANSFORM_VENDOR = toCSSVendorPrefix(TRANSFORM_VENDOR, 'transform');\n// eslint-disable-next-line\nvar gCssText = \"position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;\" + (env.transform3dSupported ? 'will-change:transform;' : '');\nfunction mirrorPos(pos) {\n pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n return pos;\n}\nfunction assembleArrow(tooltipModel, borderColor, arrowPosition) {\n if (!isString(arrowPosition) || arrowPosition === 'inside') {\n return '';\n }\n var backgroundColor = tooltipModel.get('backgroundColor');\n var borderWidth = tooltipModel.get('borderWidth');\n borderColor = convertToColorString(borderColor);\n var arrowPos = mirrorPos(arrowPosition);\n var arrowSize = Math.max(Math.round(borderWidth) * 1.5, 6);\n var positionStyle = '';\n var transformStyle = CSS_TRANSFORM_VENDOR + ':';\n var rotateDeg;\n if (indexOf(['left', 'right'], arrowPos) > -1) {\n positionStyle += 'top:50%';\n transformStyle += \"translateY(-50%) rotate(\" + (rotateDeg = arrowPos === 'left' ? -225 : -45) + \"deg)\";\n } else {\n positionStyle += 'left:50%';\n transformStyle += \"translateX(-50%) rotate(\" + (rotateDeg = arrowPos === 'top' ? 225 : 45) + \"deg)\";\n }\n var rotateRadian = rotateDeg * Math.PI / 180;\n var arrowWH = arrowSize + borderWidth;\n var rotatedWH = arrowWH * Math.abs(Math.cos(rotateRadian)) + arrowWH * Math.abs(Math.sin(rotateRadian));\n var arrowOffset = Math.round(((rotatedWH - Math.SQRT2 * borderWidth) / 2 + Math.SQRT2 * borderWidth - (rotatedWH - arrowWH) / 2) * 100) / 100;\n positionStyle += \";\" + arrowPos + \":-\" + arrowOffset + \"px\";\n var borderStyle = borderColor + \" solid \" + borderWidth + \"px;\";\n var styleCss = [\"position:absolute;width:\" + arrowSize + \"px;height:\" + arrowSize + \"px;z-index:-1;\", positionStyle + \";\" + transformStyle + \";\", \"border-bottom:\" + borderStyle, \"border-right:\" + borderStyle, \"background-color:\" + backgroundColor + \";\"];\n return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\n}\nfunction assembleTransition(duration, onlyFade) {\n var transitionCurve = 'cubic-bezier(0.23,1,0.32,1)';\n var transitionOption = \" \" + duration / 2 + \"s \" + transitionCurve;\n var transitionText = \"opacity\" + transitionOption + \",visibility\" + transitionOption;\n if (!onlyFade) {\n transitionOption = \" \" + duration + \"s \" + transitionCurve;\n transitionText += env.transformSupported ? \",\" + CSS_TRANSFORM_VENDOR + transitionOption : \",left\" + transitionOption + \",top\" + transitionOption;\n }\n return CSS_TRANSITION_VENDOR + ':' + transitionText;\n}\nfunction assembleTransform(x, y, toString) {\n // If using float on style, the final width of the dom might\n // keep changing slightly while mouse move. So `toFixed(0)` them.\n var x0 = x.toFixed(0) + 'px';\n var y0 = y.toFixed(0) + 'px';\n // not support transform, use `left` and `top` instead.\n if (!env.transformSupported) {\n return toString ? \"top:\" + y0 + \";left:\" + x0 + \";\" : [['top', y0], ['left', x0]];\n }\n // support transform\n var is3d = env.transform3dSupported;\n var translate = \"translate\" + (is3d ? '3d' : '') + \"(\" + x0 + \",\" + y0 + (is3d ? ',0' : '') + \")\";\n return toString ? 'top:0;left:0;' + CSS_TRANSFORM_VENDOR + ':' + translate + ';' : [['top', 0], ['left', 0], [TRANSFORM_VENDOR, translate]];\n}\n/**\n * @param {Object} textStyle\n * @return {string}\n * @inner\n */\nfunction assembleFont(textStyleModel) {\n var cssText = [];\n var fontSize = textStyleModel.get('fontSize');\n var color = textStyleModel.getTextColor();\n color && cssText.push('color:' + color);\n cssText.push('font:' + textStyleModel.getFont());\n fontSize\n // @ts-ignore, leave it to the tooltip refactor.\n && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n var shadowColor = textStyleModel.get('textShadowColor');\n var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n each(['decoration', 'align'], function (name) {\n var val = textStyleModel.get(name);\n val && cssText.push('text-' + name + ':' + val);\n });\n return cssText.join(';');\n}\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n var cssText = [];\n var transitionDuration = tooltipModel.get('transitionDuration');\n var backgroundColor = tooltipModel.get('backgroundColor');\n var shadowBlur = tooltipModel.get('shadowBlur');\n var shadowColor = tooltipModel.get('shadowColor');\n var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n var textStyleModel = tooltipModel.getModel('textStyle');\n var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n cssText.push('box-shadow:' + boxShadow);\n // Animation transition. Do not animate when transitionDuration is 0.\n enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n if (backgroundColor) {\n cssText.push('background-color:' + backgroundColor);\n }\n // Border style\n each(['width', 'color', 'radius'], function (name) {\n var borderName = 'border-' + name;\n var camelCase = toCamelCase(borderName);\n var val = tooltipModel.get(camelCase);\n val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n });\n // Text style\n cssText.push(assembleFont(textStyleModel));\n // Padding\n if (padding != null) {\n cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n }\n return cssText.join(';') + ';';\n}\n// If not able to make, do not modify the input `out`.\nfunction makeStyleCoord(out, zr, container, zrX, zrY) {\n var zrPainter = zr && zr.painter;\n if (container) {\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n if (zrViewportRoot) {\n // Some APPs might use scale on body, so we support CSS transform here.\n transformLocalCoord(out, zrViewportRoot, container, zrX, zrY);\n }\n } else {\n out[0] = zrX;\n out[1] = zrY;\n // xy should be based on canvas root. But tooltipContent is\n // the sibling of canvas root. So padding of ec container\n // should be considered here.\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n if (viewportRootOffset) {\n out[0] += viewportRootOffset.offsetLeft;\n out[1] += viewportRootOffset.offsetTop;\n }\n }\n out[2] = out[0] / zr.getWidth();\n out[3] = out[1] / zr.getHeight();\n}\nvar TooltipHTMLContent = /** @class */function () {\n function TooltipHTMLContent(api, opt) {\n this._show = false;\n this._styleCoord = [0, 0, 0, 0];\n this._enterable = true;\n this._alwaysShowContent = false;\n this._firstShow = true;\n this._longHide = true;\n if (env.wxa) {\n return null;\n }\n var el = document.createElement('div');\n // TODO: TYPE\n el.domBelongToZr = true;\n this.el = el;\n var zr = this._zr = api.getZr();\n var appendTo = opt.appendTo;\n var container = appendTo && (isString(appendTo) ? document.querySelector(appendTo) : isDom(appendTo) ? appendTo : isFunction(appendTo) && appendTo(api.getDom()));\n makeStyleCoord(this._styleCoord, zr, container, api.getWidth() / 2, api.getHeight() / 2);\n (container || api.getDom()).appendChild(el);\n this._api = api;\n this._container = container;\n // FIXME\n // Is it needed to trigger zr event manually if\n // the browser do not support `pointer-events: none`.\n var self = this;\n el.onmouseenter = function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n self._inContent = true;\n };\n el.onmousemove = function (e) {\n e = e || window.event;\n if (!self._enterable) {\n // `pointer-events: none` is set to tooltip content div\n // if `enterable` is set as `false`, and `el.onmousemove`\n // can not be triggered. But in browser that do not\n // support `pointer-events`, we need to do this:\n // Try trigger zrender event to avoid mouse\n // in and out shape too frequently\n var handler = zr.handler;\n var zrViewportRoot = zr.painter.getViewportRoot();\n normalizeEvent(zrViewportRoot, e, true);\n handler.dispatch('mousemove', e);\n }\n };\n el.onmouseleave = function () {\n // set `_inContent` to `false` before `hideLater`\n self._inContent = false;\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n };\n }\n /**\n * Update when tooltip is rendered\n */\n TooltipHTMLContent.prototype.update = function (tooltipModel) {\n // FIXME\n // Move this logic to ec main?\n if (!this._container) {\n var container = this._api.getDom();\n var position = getComputedStyle(container, 'position');\n var domStyle = container.style;\n if (domStyle.position !== 'absolute' && position !== 'absolute') {\n domStyle.position = 'relative';\n }\n }\n // move tooltip if chart resized\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n alwaysShowContent && this._moveIfResized();\n // update alwaysShowContent\n this._alwaysShowContent = alwaysShowContent;\n // update className\n this.el.className = tooltipModel.get('className') || '';\n // Hide the tooltip\n // PENDING\n // this.hide();\n };\n\n TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n clearTimeout(this._hideTimeout);\n clearTimeout(this._longHideTimeout);\n var el = this.el;\n var style = el.style;\n var styleCoord = this._styleCoord;\n if (!el.innerHTML) {\n style.display = 'none';\n } else {\n style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide)\n // initial transform\n + assembleTransform(styleCoord[0], styleCoord[1], true) + (\"border-color:\" + convertToColorString(nearPointColor) + \";\") + (tooltipModel.get('extraCssText') || '')\n // If mouse occasionally move over the tooltip, a mouseout event will be\n // triggered by canvas, and cause some unexpectable result like dragging\n // stop, \"unfocusAdjacency\". Here `pointer-events: none` is used to solve\n // it. Although it is not supported by IE8~IE10, fortunately it is a rare\n // scenario.\n + (\";pointer-events:\" + (this._enterable ? 'auto' : 'none'));\n }\n this._show = true;\n this._firstShow = false;\n this._longHide = false;\n };\n TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n var el = this.el;\n if (content == null) {\n el.innerHTML = '';\n return;\n }\n var arrow = '';\n if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n arrow = assembleArrow(tooltipModel, borderColor, arrowPosition);\n }\n if (isString(content)) {\n el.innerHTML = content + arrow;\n } else if (content) {\n // Clear previous\n el.innerHTML = '';\n if (!isArray(content)) {\n content = [content];\n }\n for (var i = 0; i < content.length; i++) {\n if (isDom(content[i]) && content[i].parentNode !== el) {\n el.appendChild(content[i]);\n }\n }\n // no arrow if empty\n if (arrow && el.childNodes.length) {\n // no need to create a new parent element, but it's not supported by IE 10 and older.\n // const arrowEl = document.createRange().createContextualFragment(arrow);\n var arrowEl = document.createElement('div');\n arrowEl.innerHTML = arrow;\n el.appendChild(arrowEl);\n }\n }\n };\n TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n this._enterable = enterable;\n };\n TooltipHTMLContent.prototype.getSize = function () {\n var el = this.el;\n return [el.offsetWidth, el.offsetHeight];\n };\n TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, this._container, zrX, zrY);\n if (styleCoord[0] != null && styleCoord[1] != null) {\n var style_1 = this.el.style;\n var transforms = assembleTransform(styleCoord[0], styleCoord[1]);\n each(transforms, function (transform) {\n style_1[transform[0]] = transform[1];\n });\n }\n };\n /**\n * when `alwaysShowContent` is true,\n * move the tooltip after chart resized\n */\n TooltipHTMLContent.prototype._moveIfResized = function () {\n // The ratio of left to width\n var ratioX = this._styleCoord[2];\n // The ratio of top to height\n var ratioY = this._styleCoord[3];\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n };\n TooltipHTMLContent.prototype.hide = function () {\n var _this = this;\n var style = this.el.style;\n style.visibility = 'hidden';\n style.opacity = '0';\n env.transform3dSupported && (style.willChange = '');\n this._show = false;\n this._longHideTimeout = setTimeout(function () {\n return _this._longHide = true;\n }, 500);\n };\n TooltipHTMLContent.prototype.hideLater = function (time) {\n if (this._show && !(this._inContent && this._enterable) && !this._alwaysShowContent) {\n if (time) {\n this._hideDelay = time;\n // Set show false to avoid invoke hideLater multiple times\n this._show = false;\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n };\n TooltipHTMLContent.prototype.isShow = function () {\n return this._show;\n };\n TooltipHTMLContent.prototype.dispose = function () {\n clearTimeout(this._hideTimeout);\n clearTimeout(this._longHideTimeout);\n var parentNode = this.el.parentNode;\n parentNode && parentNode.removeChild(this.el);\n this.el = this._container = null;\n };\n return TooltipHTMLContent;\n}();\nexport default TooltipHTMLContent;","\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 * as zrUtil from 'zrender/lib/core/util.js';\nimport ZRText from 'zrender/lib/graphic/Text.js';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup.js';\nimport { throwError } from '../../util/log.js';\nvar TooltipRichContent = /** @class */function () {\n function TooltipRichContent(api) {\n this._show = false;\n this._styleCoord = [0, 0, 0, 0];\n this._alwaysShowContent = false;\n this._enterable = true;\n this._zr = api.getZr();\n makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n }\n /**\n * Update when tooltip is rendered\n */\n TooltipRichContent.prototype.update = function (tooltipModel) {\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n alwaysShowContent && this._moveIfResized();\n // update alwaysShowContent\n this._alwaysShowContent = alwaysShowContent;\n };\n TooltipRichContent.prototype.show = function () {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n }\n this.el.show();\n this._show = true;\n };\n /**\n * Set tooltip content\n */\n TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n var _this = this;\n if (zrUtil.isObject(content)) {\n throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n }\n if (this.el) {\n this._zr.remove(this.el);\n }\n var textStyleModel = tooltipModel.getModel('textStyle');\n this.el = new ZRText({\n style: {\n rich: markupStyleCreator.richTextStyles,\n text: content,\n lineHeight: 22,\n borderWidth: 1,\n borderColor: borderColor,\n textShadowColor: textStyleModel.get('textShadowColor'),\n fill: tooltipModel.get(['textStyle', 'color']),\n padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n verticalAlign: 'top',\n align: 'left'\n },\n z: tooltipModel.get('z')\n });\n zrUtil.each(['backgroundColor', 'borderRadius', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'], function (propName) {\n _this.el.style[propName] = tooltipModel.get(propName);\n });\n zrUtil.each(['textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'], function (propName) {\n _this.el.style[propName] = textStyleModel.get(propName) || 0;\n });\n this._zr.add(this.el);\n var self = this;\n this.el.on('mouseover', function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n self._inContent = true;\n });\n this.el.on('mouseout', function () {\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n self._inContent = false;\n });\n };\n TooltipRichContent.prototype.setEnterable = function (enterable) {\n this._enterable = enterable;\n };\n TooltipRichContent.prototype.getSize = function () {\n var el = this.el;\n var bounding = this.el.getBoundingRect();\n // bounding rect does not include shadow. For renderMode richText,\n // if overflow, it will be cut. So calculate them accurately.\n var shadowOuterSize = calcShadowOuterSize(el.style);\n return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n };\n TooltipRichContent.prototype.moveTo = function (x, y) {\n var el = this.el;\n if (el) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, x, y);\n x = styleCoord[0];\n y = styleCoord[1];\n var style = el.style;\n var borderWidth = mathMaxWith0(style.borderWidth || 0);\n var shadowOuterSize = calcShadowOuterSize(style);\n // rich text x, y do not include border.\n el.x = x + borderWidth + shadowOuterSize.left;\n el.y = y + borderWidth + shadowOuterSize.top;\n el.markRedraw();\n }\n };\n /**\n * when `alwaysShowContent` is true,\n * move the tooltip after chart resized\n */\n TooltipRichContent.prototype._moveIfResized = function () {\n // The ratio of left to width\n var ratioX = this._styleCoord[2];\n // The ratio of top to height\n var ratioY = this._styleCoord[3];\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n };\n TooltipRichContent.prototype.hide = function () {\n if (this.el) {\n this.el.hide();\n }\n this._show = false;\n };\n TooltipRichContent.prototype.hideLater = function (time) {\n if (this._show && !(this._inContent && this._enterable) && !this._alwaysShowContent) {\n if (time) {\n this._hideDelay = time;\n // Set show false to avoid invoke hideLater multiple times\n this._show = false;\n this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n };\n TooltipRichContent.prototype.isShow = function () {\n return this._show;\n };\n TooltipRichContent.prototype.dispose = function () {\n this._zr.remove(this.el);\n };\n return TooltipRichContent;\n}();\nfunction mathMaxWith0(val) {\n return Math.max(0, val);\n}\nfunction calcShadowOuterSize(style) {\n var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n return {\n left: mathMaxWith0(shadowBlur - shadowOffsetX),\n right: mathMaxWith0(shadowBlur + shadowOffsetX),\n top: mathMaxWith0(shadowBlur - shadowOffsetY),\n bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n };\n}\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n out[0] = zrX;\n out[1] = zrY;\n out[2] = out[0] / zr.getWidth();\n out[3] = out[1] / zr.getHeight();\n}\nexport default TooltipRichContent;","\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\nimport { __extends } from \"tslib\";\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 { bind, each, clone, trim, isString, isFunction, isArray, isObject, extend } from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport TooltipHTMLContent from './TooltipHTMLContent.js';\nimport TooltipRichContent from './TooltipRichContent.js';\nimport { convertToColorString, encodeHTML, formatTpl } from '../../util/format.js';\nimport { parsePercent } from '../../util/number.js';\nimport { Rect } from '../../util/graphic.js';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport Model from '../../model/Model.js';\nimport * as globalListener from '../axisPointer/globalListener.js';\nimport * as axisHelper from '../../coord/axisHelper.js';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper.js';\nimport { getTooltipRenderMode, preParseFinder, queryReferringComponents } from '../../util/model.js';\nimport ComponentView from '../../view/Component.js';\nimport { format as timeFormat } from '../../util/time.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { shouldTooltipConfine } from './helper.js';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat.js';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup.js';\nimport { findEventDispatcher } from '../../util/event.js';\nimport { clear, createOrUpdate } from '../../util/throttle.js';\nvar proxyRect = new Rect({\n shape: {\n x: -1,\n y: -1,\n width: 2,\n height: 2\n }\n});\nvar TooltipView = /** @class */function (_super) {\n __extends(TooltipView, _super);\n function TooltipView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = TooltipView.type;\n return _this;\n }\n TooltipView.prototype.init = function (ecModel, api) {\n if (env.node || !api.getDom()) {\n return;\n }\n var tooltipModel = ecModel.getComponent('tooltip');\n var renderMode = this._renderMode = getTooltipRenderMode(tooltipModel.get('renderMode'));\n this._tooltipContent = renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api, {\n appendTo: tooltipModel.get('appendToBody', true) ? 'body' : tooltipModel.get('appendTo', true)\n });\n };\n TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n if (env.node || !api.getDom()) {\n return;\n }\n // Reset\n this.group.removeAll();\n this._tooltipModel = tooltipModel;\n this._ecModel = ecModel;\n this._api = api;\n var tooltipContent = this._tooltipContent;\n tooltipContent.update(tooltipModel);\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\n this._initGlobalListener();\n this._keepShow();\n // PENDING\n // `mousemove` event will be triggered very frequently when the mouse moves fast,\n // which causes that the `updatePosition` function was also called frequently.\n // In Chrome with devtools open and Firefox, tooltip looks laggy and shakes. See #14695 #16101\n // To avoid frequent triggering,\n // consider throttling it in 50ms when transition is enabled\n if (this._renderMode !== 'richText' && tooltipModel.get('transitionDuration')) {\n createOrUpdate(this, '_updatePosition', 50, 'fixRate');\n } else {\n clear(this, '_updatePosition');\n }\n };\n TooltipView.prototype._initGlobalListener = function () {\n var tooltipModel = this._tooltipModel;\n var triggerOn = tooltipModel.get('triggerOn');\n globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n // If 'none', it is not controlled by mouse totally.\n if (triggerOn !== 'none') {\n if (triggerOn.indexOf(currTrigger) >= 0) {\n this._tryShow(e, dispatchAction);\n } else if (currTrigger === 'leave') {\n this._hide(dispatchAction);\n }\n }\n }, this));\n };\n TooltipView.prototype._keepShow = function () {\n var tooltipModel = this._tooltipModel;\n var ecModel = this._ecModel;\n var api = this._api;\n var triggerOn = tooltipModel.get('triggerOn');\n // Try to keep the tooltip show when refreshing\n if (this._lastX != null && this._lastY != null\n // When user is willing to control tooltip totally using API,\n // self.manuallyShowTip({x, y}) might cause tooltip hide,\n // which is not expected.\n && triggerOn !== 'none' && triggerOn !== 'click') {\n var self_1 = this;\n clearTimeout(this._refreshUpdateTimeout);\n this._refreshUpdateTimeout = setTimeout(function () {\n // Show tip next tick after other charts are rendered\n // In case highlight action has wrong result\n // FIXME\n !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n x: self_1._lastX,\n y: self_1._lastY,\n dataByCoordSys: self_1._lastDataByCoordSys\n });\n });\n }\n };\n /**\n * Show tip manually by\n * dispatchAction({\n * type: 'showTip',\n * x: 10,\n * y: 10\n * });\n * Or\n * dispatchAction({\n * type: 'showTip',\n * seriesIndex: 0,\n * dataIndex or dataIndexInside or name\n * });\n *\n * TODO Batch\n */\n TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n if (payload.from === this.uid || env.node || !api.getDom()) {\n return;\n }\n var dispatchAction = makeDispatchAction(payload, api);\n // Reset ticket\n this._ticket = '';\n // When triggered from axisPointer.\n var dataByCoordSys = payload.dataByCoordSys;\n var cmptRef = findComponentReference(payload, ecModel, api);\n if (cmptRef) {\n var rect = cmptRef.el.getBoundingRect().clone();\n rect.applyTransform(cmptRef.el.transform);\n this._tryShow({\n offsetX: rect.x + rect.width / 2,\n offsetY: rect.y + rect.height / 2,\n target: cmptRef.el,\n position: payload.position,\n // When manully trigger, the mouse is not on the el, so we'd better to\n // position tooltip on the bottom of the el and display arrow is possible.\n positionDefault: 'bottom'\n }, dispatchAction);\n } else if (payload.tooltip && payload.x != null && payload.y != null) {\n var el = proxyRect;\n el.x = payload.x;\n el.y = payload.y;\n el.update();\n getECData(el).tooltipConfig = {\n name: null,\n option: payload.tooltip\n };\n // Manually show tooltip while view is not using zrender elements.\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n target: el\n }, dispatchAction);\n } else if (dataByCoordSys) {\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n dataByCoordSys: dataByCoordSys,\n tooltipOption: payload.tooltipOption\n }, dispatchAction);\n } else if (payload.seriesIndex != null) {\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n return;\n }\n var pointInfo = findPointFromSeries(payload, ecModel);\n var cx = pointInfo.point[0];\n var cy = pointInfo.point[1];\n if (cx != null && cy != null) {\n this._tryShow({\n offsetX: cx,\n offsetY: cy,\n target: pointInfo.el,\n position: payload.position,\n // When manully trigger, the mouse is not on the el, so we'd better to\n // position tooltip on the bottom of the el and display arrow is possible.\n positionDefault: 'bottom'\n }, dispatchAction);\n }\n } else if (payload.x != null && payload.y != null) {\n // FIXME\n // should wrap dispatchAction like `axisPointer/globalListener` ?\n api.dispatchAction({\n type: 'updateAxisPointer',\n x: payload.x,\n y: payload.y\n });\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n target: api.getZr().findHover(payload.x, payload.y).target\n }, dispatchAction);\n }\n };\n TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n var tooltipContent = this._tooltipContent;\n if (this._tooltipModel) {\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n }\n this._lastX = this._lastY = this._lastDataByCoordSys = null;\n if (payload.from !== this.uid) {\n this._hide(makeDispatchAction(payload, api));\n }\n };\n // Be compatible with previous design, that is, when tooltip.type is 'axis' and\n // dispatchAction 'showTip' with seriesIndex and dataIndex will trigger axis pointer\n // and tooltip.\n TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n var seriesIndex = payload.seriesIndex;\n var dataIndex = payload.dataIndex;\n // @ts-ignore\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n return;\n }\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n if (!seriesModel) {\n return;\n }\n var data = seriesModel.getData();\n var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model], this._tooltipModel);\n if (tooltipCascadedModel.get('trigger') !== 'axis') {\n return;\n }\n api.dispatchAction({\n type: 'updateAxisPointer',\n seriesIndex: seriesIndex,\n dataIndex: dataIndex,\n position: payload.position\n });\n return true;\n };\n TooltipView.prototype._tryShow = function (e, dispatchAction) {\n var el = e.target;\n var tooltipModel = this._tooltipModel;\n if (!tooltipModel) {\n return;\n }\n // Save mouse x, mouse y. So we can try to keep showing the tip if chart is refreshed\n this._lastX = e.offsetX;\n this._lastY = e.offsetY;\n var dataByCoordSys = e.dataByCoordSys;\n if (dataByCoordSys && dataByCoordSys.length) {\n this._showAxisTooltip(dataByCoordSys, e);\n } else if (el) {\n var ecData = getECData(el);\n if (ecData.ssrType === 'legend') {\n // Don't trigger tooltip for legend tooltip item\n return;\n }\n this._lastDataByCoordSys = null;\n var seriesDispatcher_1;\n var cmptDispatcher_1;\n findEventDispatcher(el, function (target) {\n // Always show item tooltip if mouse is on the element with dataIndex\n if (getECData(target).dataIndex != null) {\n seriesDispatcher_1 = target;\n return true;\n }\n // Tooltip provided directly. Like legend.\n if (getECData(target).tooltipConfig != null) {\n cmptDispatcher_1 = target;\n return true;\n }\n }, true);\n if (seriesDispatcher_1) {\n this._showSeriesItemTooltip(e, seriesDispatcher_1, dispatchAction);\n } else if (cmptDispatcher_1) {\n this._showComponentItemTooltip(e, cmptDispatcher_1, dispatchAction);\n } else {\n this._hide(dispatchAction);\n }\n } else {\n this._lastDataByCoordSys = null;\n this._hide(dispatchAction);\n }\n };\n TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n // showDelay is used in this case: tooltip.enterable is set\n // as true. User intent to move mouse into tooltip and click\n // something. `showDelay` makes it easier to enter the content\n // but tooltip do not move immediately.\n var delay = tooltipModel.get('showDelay');\n cb = bind(cb, this);\n clearTimeout(this._showTimout);\n delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n };\n TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n var ecModel = this._ecModel;\n var globalTooltipModel = this._tooltipModel;\n var point = [e.offsetX, e.offsetY];\n var singleTooltipModel = buildTooltipModel([e.tooltipOption], globalTooltipModel);\n var renderMode = this._renderMode;\n var cbParamsList = [];\n var articleMarkup = createTooltipMarkup('section', {\n blocks: [],\n noHeader: true\n });\n // Only for legacy: `Serise['formatTooltip']` returns a string.\n var markupTextArrLegacy = [];\n var markupStyleCreator = new TooltipMarkupStyleCreator();\n each(dataByCoordSys, function (itemCoordSys) {\n each(itemCoordSys.dataByAxis, function (axisItem) {\n var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n var axisValue = axisItem.value;\n if (!axisModel || axisValue == null) {\n return;\n }\n var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n var axisSectionMarkup = createTooltipMarkup('section', {\n header: axisValueLabel,\n noHeader: !trim(axisValueLabel),\n sortBlocks: true,\n blocks: []\n });\n articleMarkup.blocks.push(axisSectionMarkup);\n each(axisItem.seriesDataIndices, function (idxItem) {\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n var dataIndex = idxItem.dataIndexInside;\n var cbParams = series.getDataParams(dataIndex);\n // Can't find data.\n if (cbParams.dataIndex < 0) {\n return;\n }\n cbParams.axisDim = axisItem.axisDim;\n cbParams.axisIndex = axisItem.axisIndex;\n cbParams.axisType = axisItem.axisType;\n cbParams.axisId = axisItem.axisId;\n cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n value: axisValue\n });\n cbParams.axisValueLabel = axisValueLabel;\n // Pre-create marker style for makers. Users can assemble richText\n // text in `formatter` callback and use those markers style.\n cbParams.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(cbParams.color), renderMode);\n var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n var frag = seriesTooltipResult.frag;\n if (frag) {\n var valueFormatter = buildTooltipModel([series], globalTooltipModel).get('valueFormatter');\n axisSectionMarkup.blocks.push(valueFormatter ? extend({\n valueFormatter: valueFormatter\n }, frag) : frag);\n }\n if (seriesTooltipResult.text) {\n markupTextArrLegacy.push(seriesTooltipResult.text);\n }\n cbParamsList.push(cbParams);\n });\n });\n });\n // In most cases, the second axis is displays upper on the first one.\n // So we reverse it to look better.\n articleMarkup.blocks.reverse();\n markupTextArrLegacy.reverse();\n var positionExpr = e.position;\n var orderMode = singleTooltipModel.get('order');\n var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\n var allMarkupText = markupTextArrLegacy.join(blockBreak);\n this._showOrMove(singleTooltipModel, function () {\n if (this._updateContentNotChangedOnAxis(dataByCoordSys, cbParamsList)) {\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n } else {\n this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n }\n });\n // Do not trigger events here, because this branch only be entered\n // from dispatchAction.\n };\n\n TooltipView.prototype._showSeriesItemTooltip = function (e, dispatcher, dispatchAction) {\n var ecModel = this._ecModel;\n var ecData = getECData(dispatcher);\n // Use dataModel in element if possible\n // Used when mouseover on a element like markPoint or edge\n // In which case, the data is not main data in series.\n var seriesIndex = ecData.seriesIndex;\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n // For example, graph link.\n var dataModel = ecData.dataModel || seriesModel;\n var dataIndex = ecData.dataIndex;\n var dataType = ecData.dataType;\n var data = dataModel.getData(dataType);\n var renderMode = this._renderMode;\n var positionDefault = e.positionDefault;\n var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model], this._tooltipModel, positionDefault ? {\n position: positionDefault\n } : null);\n var tooltipTrigger = tooltipModel.get('trigger');\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n return;\n }\n var params = dataModel.getDataParams(dataIndex, dataType);\n var markupStyleCreator = new TooltipMarkupStyleCreator();\n // Pre-create marker style for makers. Users can assemble richText\n // text in `formatter` callback and use those markers style.\n params.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(params.color), renderMode);\n var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n var orderMode = tooltipModel.get('order');\n var valueFormatter = tooltipModel.get('valueFormatter');\n var frag = seriesTooltipResult.frag;\n var markupText = frag ? buildTooltipMarkup(valueFormatter ? extend({\n valueFormatter: valueFormatter\n }, frag) : frag, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.text;\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n this._showOrMove(tooltipModel, function () {\n this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n });\n // FIXME\n // duplicated showtip if manuallyShowTip is called from dispatchAction.\n dispatchAction({\n type: 'showTip',\n dataIndexInside: dataIndex,\n dataIndex: data.getRawIndex(dataIndex),\n seriesIndex: seriesIndex,\n from: this.uid\n });\n };\n TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n var isHTMLRenderMode = this._renderMode === 'html';\n var ecData = getECData(el);\n var tooltipConfig = ecData.tooltipConfig;\n var tooltipOpt = tooltipConfig.option || {};\n var encodeHTMLContent = tooltipOpt.encodeHTMLContent;\n if (isString(tooltipOpt)) {\n var content = tooltipOpt;\n tooltipOpt = {\n content: content,\n // Fixed formatter\n formatter: content\n };\n // when `tooltipConfig.option` is a string rather than an object,\n // we can't know if the content needs to be encoded\n // for the sake of security, encode it by default.\n encodeHTMLContent = true;\n }\n if (encodeHTMLContent && isHTMLRenderMode && tooltipOpt.content) {\n // clone might be unnecessary?\n tooltipOpt = clone(tooltipOpt);\n tooltipOpt.content = encodeHTML(tooltipOpt.content);\n }\n var tooltipModelCascade = [tooltipOpt];\n var cmpt = this._ecModel.getComponent(ecData.componentMainType, ecData.componentIndex);\n if (cmpt) {\n tooltipModelCascade.push(cmpt);\n }\n // In most cases, component tooltip formatter has different params with series tooltip formatter,\n // so that they cannot share the same formatter. Since the global tooltip formatter is used for series\n // by convention, we do not use it as the default formatter for component.\n tooltipModelCascade.push({\n formatter: tooltipOpt.content\n });\n var positionDefault = e.positionDefault;\n var subTooltipModel = buildTooltipModel(tooltipModelCascade, this._tooltipModel, positionDefault ? {\n position: positionDefault\n } : null);\n var defaultHtml = subTooltipModel.get('content');\n var asyncTicket = Math.random() + '';\n // PENDING: this case do not support richText style yet.\n var markupStyleCreator = new TooltipMarkupStyleCreator();\n // Do not check whether `trigger` is 'none' here, because `trigger`\n // only works on coordinate system. In fact, we have not found case\n // that requires setting `trigger` nothing on component yet.\n this._showOrMove(subTooltipModel, function () {\n // Use formatterParams from element defined in component\n // Avoid users modify it.\n var formatterParams = clone(subTooltipModel.get('formatterParams') || {});\n this._showTooltipContent(subTooltipModel, defaultHtml, formatterParams, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n });\n // If not dispatch showTip, tip may be hide triggered by axis.\n dispatchAction({\n type: 'showTip',\n from: this.uid\n });\n };\n TooltipView.prototype._showTooltipContent = function (\n // Use Model<TooltipOption> insteadof TooltipModel because this model may be from series or other options.\n // Instead of top level tooltip.\n tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n // Reset ticket\n this._ticket = '';\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n return;\n }\n var tooltipContent = this._tooltipContent;\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\n var formatter = tooltipModel.get('formatter');\n positionExpr = positionExpr || tooltipModel.get('position');\n var html = defaultHtml;\n var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n var nearPointColor = nearPoint.color;\n if (formatter) {\n if (isString(formatter)) {\n var useUTC = tooltipModel.ecModel.get('useUTC');\n var params0 = isArray(params) ? params[0] : params;\n var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n html = formatter;\n if (isTimeAxis) {\n html = timeFormat(params0.axisValue, html, useUTC);\n }\n html = formatTpl(html, params, true);\n } else if (isFunction(formatter)) {\n var callback = bind(function (cbTicket, html) {\n if (cbTicket === this._ticket) {\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPointColor, positionExpr);\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n }\n }, this);\n this._ticket = asyncTicket;\n html = formatter(params, asyncTicket, callback);\n } else {\n html = formatter;\n }\n }\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPointColor, positionExpr);\n tooltipContent.show(tooltipModel, nearPointColor);\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n };\n TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n if (trigger === 'axis' || isArray(tooltipDataParams)) {\n return {\n color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n };\n }\n if (!isArray(tooltipDataParams)) {\n return {\n color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n };\n }\n };\n TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x,\n // Mouse x\n y,\n // Mouse y\n content, params, el) {\n var viewWidth = this._api.getWidth();\n var viewHeight = this._api.getHeight();\n positionExpr = positionExpr || tooltipModel.get('position');\n var contentSize = content.getSize();\n var align = tooltipModel.get('align');\n var vAlign = tooltipModel.get('verticalAlign');\n var rect = el && el.getBoundingRect().clone();\n el && rect.applyTransform(el.transform);\n if (isFunction(positionExpr)) {\n // Callback of position can be an array or a string specify the position\n positionExpr = positionExpr([x, y], params, content.el, rect, {\n viewSize: [viewWidth, viewHeight],\n contentSize: contentSize.slice()\n });\n }\n if (isArray(positionExpr)) {\n x = parsePercent(positionExpr[0], viewWidth);\n y = parsePercent(positionExpr[1], viewHeight);\n } else if (isObject(positionExpr)) {\n var boxLayoutPosition = positionExpr;\n boxLayoutPosition.width = contentSize[0];\n boxLayoutPosition.height = contentSize[1];\n var layoutRect = getLayoutRect(boxLayoutPosition, {\n width: viewWidth,\n height: viewHeight\n });\n x = layoutRect.x;\n y = layoutRect.y;\n align = null;\n // When positionExpr is left/top/right/bottom,\n // align and verticalAlign will not work.\n vAlign = null;\n }\n // Specify tooltip position by string 'top' 'bottom' 'left' 'right' around graphic element\n else if (isString(positionExpr) && el) {\n var pos = calcTooltipPosition(positionExpr, rect, contentSize, tooltipModel.get('borderWidth'));\n x = pos[0];\n y = pos[1];\n } else {\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n x = pos[0];\n y = pos[1];\n }\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n if (shouldTooltipConfine(tooltipModel)) {\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n x = pos[0];\n y = pos[1];\n }\n content.moveTo(x, y);\n };\n // FIXME\n // Should we remove this but leave this to user?\n TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys, cbParamsList) {\n var lastCoordSys = this._lastDataByCoordSys;\n var lastCbParamsList = this._cbParamsList;\n var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n var thisItem = thisDataByAxis[indexAxis] || {};\n var lastIndices = lastItem.seriesDataIndices || [];\n var newIndices = thisItem.seriesDataIndices || [];\n contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n var newIdxItem = newIndices[j];\n contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n });\n // check is cbParams data value changed\n lastCbParamsList && each(lastItem.seriesDataIndices, function (idxItem) {\n var seriesIdx = idxItem.seriesIndex;\n var cbParams = cbParamsList[seriesIdx];\n var lastCbParams = lastCbParamsList[seriesIdx];\n if (cbParams && lastCbParams && lastCbParams.data !== cbParams.data) {\n contentNotChanged = false;\n }\n });\n });\n });\n this._lastDataByCoordSys = dataByCoordSys;\n this._cbParamsList = cbParamsList;\n return !!contentNotChanged;\n };\n TooltipView.prototype._hide = function (dispatchAction) {\n // Do not directly hideLater here, because this behavior may be prevented\n // in dispatchAction when showTip is dispatched.\n // FIXME\n // duplicated hideTip if manuallyHideTip is called from dispatchAction.\n this._lastDataByCoordSys = null;\n dispatchAction({\n type: 'hideTip',\n from: this.uid\n });\n };\n TooltipView.prototype.dispose = function (ecModel, api) {\n if (env.node || !api.getDom()) {\n return;\n }\n clear(this, '_updatePosition');\n this._tooltipContent.dispose();\n globalListener.unregister('itemTooltip', api);\n };\n TooltipView.type = 'tooltip';\n return TooltipView;\n}(ComponentView);\n/**\n * From top to bottom. (the last one should be globalTooltipModel);\n */\nfunction buildTooltipModel(modelCascade, globalTooltipModel, defaultTooltipOption) {\n // Last is always tooltip model.\n var ecModel = globalTooltipModel.ecModel;\n var resultModel;\n if (defaultTooltipOption) {\n resultModel = new Model(defaultTooltipOption, ecModel, ecModel);\n resultModel = new Model(globalTooltipModel.option, resultModel, ecModel);\n } else {\n resultModel = globalTooltipModel;\n }\n for (var i = modelCascade.length - 1; i >= 0; i--) {\n var tooltipOpt = modelCascade[i];\n if (tooltipOpt) {\n if (tooltipOpt instanceof Model) {\n tooltipOpt = tooltipOpt.get('tooltip', true);\n }\n // In each data item tooltip can be simply write:\n // {\n // value: 10,\n // tooltip: 'Something you need to know'\n // }\n if (isString(tooltipOpt)) {\n tooltipOpt = {\n formatter: tooltipOpt\n };\n }\n if (tooltipOpt) {\n resultModel = new Model(tooltipOpt, resultModel, ecModel);\n }\n }\n }\n return resultModel;\n}\nfunction makeDispatchAction(payload, api) {\n return payload.dispatchAction || bind(api.dispatchAction, api);\n}\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n var size = content.getSize();\n var width = size[0];\n var height = size[1];\n if (gapH != null) {\n // Add extra 2 pixels for this case:\n // At present the \"values\" in default tooltip are using CSS `float: right`.\n // When the right edge of the tooltip box is on the right side of the\n // viewport, the `float` layout might push the \"values\" to the second line.\n if (x + width + gapH + 2 > viewWidth) {\n x -= width + gapH;\n } else {\n x += gapH;\n }\n }\n if (gapV != null) {\n if (y + height + gapV > viewHeight) {\n y -= height + gapV;\n } else {\n y += gapV;\n }\n }\n return [x, y];\n}\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n var size = content.getSize();\n var width = size[0];\n var height = size[1];\n x = Math.min(x + width, viewWidth) - width;\n y = Math.min(y + height, viewHeight) - height;\n x = Math.max(x, 0);\n y = Math.max(y, 0);\n return [x, y];\n}\nfunction calcTooltipPosition(position, rect, contentSize, borderWidth) {\n var domWidth = contentSize[0];\n var domHeight = contentSize[1];\n var offset = Math.ceil(Math.SQRT2 * borderWidth) + 8;\n var x = 0;\n var y = 0;\n var rectWidth = rect.width;\n var rectHeight = rect.height;\n switch (position) {\n case 'inside':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n case 'top':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y - domHeight - offset;\n break;\n case 'bottom':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight + offset;\n break;\n case 'left':\n x = rect.x - domWidth - offset;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n case 'right':\n x = rect.x + rectWidth + offset;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n }\n return [x, y];\n}\nfunction isCenterAlign(align) {\n return align === 'center' || align === 'middle';\n}\n/**\n * Find target component by payload like:\n * ```js\n * { legendId: 'some_id', name: 'xxx' }\n * { toolboxIndex: 1, name: 'xxx' }\n * { geoName: 'some_name', name: 'xxx' }\n * ```\n * PENDING: at present only\n *\n * If not found, return null/undefined.\n */\nfunction findComponentReference(payload, ecModel, api) {\n var queryOptionMap = preParseFinder(payload).queryOptionMap;\n var componentMainType = queryOptionMap.keys()[0];\n if (!componentMainType || componentMainType === 'series') {\n return;\n }\n var queryResult = queryReferringComponents(ecModel, componentMainType, queryOptionMap.get(componentMainType), {\n useDefault: false,\n enableAll: false,\n enableNone: false\n });\n var model = queryResult.models[0];\n if (!model) {\n return;\n }\n var view = api.getViewOfComponentModel(model);\n var el;\n view.group.traverse(function (subEl) {\n var tooltipConfig = getECData(subEl).tooltipConfig;\n if (tooltipConfig && tooltipConfig.name === payload.name) {\n el = subEl;\n return true; // stop\n }\n });\n\n if (el) {\n return {\n componentMainType: componentMainType,\n componentIndex: model.componentIndex,\n el: el\n };\n }\n}\nexport default TooltipView;","\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 { install as installAxisPointer } from '../axisPointer/install.js';\nimport { use } from '../../extension.js';\nimport TooltipModel from './TooltipModel.js';\nimport TooltipView from './TooltipView.js';\nimport { noop } from 'zrender/lib/core/util.js';\nexport function install(registers) {\n use(installAxisPointer);\n registers.registerComponentModel(TooltipModel);\n registers.registerComponentView(TooltipView);\n /**\n * @action\n * @property {string} type\n * @property {number} seriesIndex\n * @property {number} dataIndex\n * @property {number} [x]\n * @property {number} [y]\n */\n registers.registerAction({\n type: 'showTip',\n event: 'showTip',\n update: 'tooltip:manuallyShowTip'\n }, noop);\n registers.registerAction({\n type: 'hideTip',\n event: 'hideTip',\n update: 'tooltip:manuallyHideTip'\n }, noop);\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/**\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 { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Model from '../../model/Model.js';\nimport { isNameSpecified } from '../../util/model.js';\nimport ComponentModel from '../../model/Component.js';\nvar getDefaultSelectorOptions = function (ecModel, type) {\n if (type === 'all') {\n return {\n type: 'all',\n title: ecModel.getLocaleModel().get(['legend', 'selector', 'all'])\n };\n } else if (type === 'inverse') {\n return {\n type: 'inverse',\n title: ecModel.getLocaleModel().get(['legend', 'selector', 'inverse'])\n };\n }\n};\nvar LegendModel = /** @class */function (_super) {\n __extends(LegendModel, _super);\n function LegendModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = LegendModel.type;\n _this.layoutMode = {\n type: 'box',\n // legend.width/height are maxWidth/maxHeight actually,\n // whereas real width/height is calculated by its content.\n // (Setting {left: 10, right: 10} does not make sense).\n // So consider the case:\n // `setOption({legend: {left: 10});`\n // then `setOption({legend: {right: 10});`\n // The previous `left` should be cleared by setting `ignoreSize`.\n ignoreSize: true\n };\n return _this;\n }\n LegendModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n option.selected = option.selected || {};\n this._updateSelector(option);\n };\n LegendModel.prototype.mergeOption = function (option, ecModel) {\n _super.prototype.mergeOption.call(this, option, ecModel);\n this._updateSelector(option);\n };\n LegendModel.prototype._updateSelector = function (option) {\n var selector = option.selector;\n var ecModel = this.ecModel;\n if (selector === true) {\n selector = option.selector = ['all', 'inverse'];\n }\n if (zrUtil.isArray(selector)) {\n zrUtil.each(selector, function (item, index) {\n zrUtil.isString(item) && (item = {\n type: item\n });\n selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n });\n }\n };\n LegendModel.prototype.optionUpdated = function () {\n this._updateData(this.ecModel);\n var legendData = this._data;\n // If selectedMode is single, try to select one\n if (legendData[0] && this.get('selectedMode') === 'single') {\n var hasSelected = false;\n // If has any selected in option.selected\n for (var i = 0; i < legendData.length; i++) {\n var name_1 = legendData[i].get('name');\n if (this.isSelected(name_1)) {\n // Force to unselect others\n this.select(name_1);\n hasSelected = true;\n break;\n }\n }\n // Try select the first if selectedMode is single\n !hasSelected && this.select(legendData[0].get('name'));\n }\n };\n LegendModel.prototype._updateData = function (ecModel) {\n var potentialData = [];\n var availableNames = [];\n ecModel.eachRawSeries(function (seriesModel) {\n var seriesName = seriesModel.name;\n availableNames.push(seriesName);\n var isPotential;\n if (seriesModel.legendVisualProvider) {\n var provider = seriesModel.legendVisualProvider;\n var names = provider.getAllNames();\n if (!ecModel.isSeriesFiltered(seriesModel)) {\n availableNames = availableNames.concat(names);\n }\n if (names.length) {\n potentialData = potentialData.concat(names);\n } else {\n isPotential = true;\n }\n } else {\n isPotential = true;\n }\n if (isPotential && isNameSpecified(seriesModel)) {\n potentialData.push(seriesModel.name);\n }\n });\n /**\n * @type {Array.<string>}\n * @private\n */\n this._availableNames = availableNames;\n // If legend.data is not specified in option, use availableNames as data,\n // which is convenient for user preparing option.\n var rawData = this.get('data') || potentialData;\n var legendNameMap = zrUtil.createHashMap();\n var legendData = zrUtil.map(rawData, function (dataItem) {\n // Can be string or number\n if (zrUtil.isString(dataItem) || zrUtil.isNumber(dataItem)) {\n dataItem = {\n name: dataItem\n };\n }\n if (legendNameMap.get(dataItem.name)) {\n // remove legend name duplicate\n return null;\n }\n legendNameMap.set(dataItem.name, true);\n return new Model(dataItem, this, this.ecModel);\n }, this);\n /**\n * @type {Array.<module:echarts/model/Model>}\n * @private\n */\n this._data = zrUtil.filter(legendData, function (item) {\n return !!item;\n });\n };\n LegendModel.prototype.getData = function () {\n return this._data;\n };\n LegendModel.prototype.select = function (name) {\n var selected = this.option.selected;\n var selectedMode = this.get('selectedMode');\n if (selectedMode === 'single') {\n var data = this._data;\n zrUtil.each(data, function (dataItem) {\n selected[dataItem.get('name')] = false;\n });\n }\n selected[name] = true;\n };\n LegendModel.prototype.unSelect = function (name) {\n if (this.get('selectedMode') !== 'single') {\n this.option.selected[name] = false;\n }\n };\n LegendModel.prototype.toggleSelected = function (name) {\n var selected = this.option.selected;\n // Default is true\n if (!selected.hasOwnProperty(name)) {\n selected[name] = true;\n }\n this[selected[name] ? 'unSelect' : 'select'](name);\n };\n LegendModel.prototype.allSelect = function () {\n var data = this._data;\n var selected = this.option.selected;\n zrUtil.each(data, function (dataItem) {\n selected[dataItem.get('name', true)] = true;\n });\n };\n LegendModel.prototype.inverseSelect = function () {\n var data = this._data;\n var selected = this.option.selected;\n zrUtil.each(data, function (dataItem) {\n var name = dataItem.get('name', true);\n // Initially, default value is true\n if (!selected.hasOwnProperty(name)) {\n selected[name] = true;\n }\n selected[name] = !selected[name];\n });\n };\n LegendModel.prototype.isSelected = function (name) {\n var selected = this.option.selected;\n return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n };\n LegendModel.prototype.getOrient = function () {\n return this.get('orient') === 'vertical' ? {\n index: 1,\n name: 'vertical'\n } : {\n index: 0,\n name: 'horizontal'\n };\n };\n LegendModel.type = 'legend.plain';\n LegendModel.dependencies = ['series'];\n LegendModel.defaultOption = {\n // zlevel: 0,\n z: 4,\n show: true,\n orient: 'horizontal',\n left: 'center',\n // right: 'center',\n top: 0,\n // bottom: null,\n align: 'auto',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n borderRadius: 0,\n borderWidth: 0,\n padding: 5,\n itemGap: 10,\n itemWidth: 25,\n itemHeight: 14,\n symbolRotate: 'inherit',\n symbolKeepAspect: true,\n inactiveColor: '#ccc',\n inactiveBorderColor: '#ccc',\n inactiveBorderWidth: 'auto',\n itemStyle: {\n color: 'inherit',\n opacity: 'inherit',\n borderColor: 'inherit',\n borderWidth: 'auto',\n borderCap: 'inherit',\n borderJoin: 'inherit',\n borderDashOffset: 'inherit',\n borderMiterLimit: 'inherit'\n },\n lineStyle: {\n width: 'auto',\n color: 'inherit',\n inactiveColor: '#ccc',\n inactiveWidth: 2,\n opacity: 'inherit',\n type: 'inherit',\n cap: 'inherit',\n join: 'inherit',\n dashOffset: 'inherit',\n miterLimit: 'inherit'\n },\n textStyle: {\n color: '#333'\n },\n selectedMode: true,\n selector: false,\n selectorLabel: {\n show: true,\n borderRadius: 10,\n padding: [3, 5, 3, 5],\n fontSize: 12,\n fontFamily: 'sans-serif',\n color: '#666',\n borderWidth: 1,\n borderColor: '#666'\n },\n emphasis: {\n selectorLabel: {\n show: true,\n color: '#eee',\n backgroundColor: '#666'\n }\n },\n selectorPosition: 'auto',\n selectorItemGap: 7,\n selectorButtonGap: 10,\n tooltip: {\n show: false\n }\n };\n return LegendModel;\n}(ComponentModel);\nexport default LegendModel;","\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 { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { parse, stringify } from 'zrender/lib/tool/color.js';\nimport * as graphic from '../../util/graphic.js';\nimport { enableHoverEmphasis } from '../../util/states.js';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle.js';\nimport { makeBackground } from '../helper/listComponent.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport ComponentView from '../../view/Component.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nimport { getECData } from '../../util/innerStore.js';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\nvar LegendView = /** @class */function (_super) {\n __extends(LegendView, _super);\n function LegendView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = LegendView.type;\n _this.newlineDisabled = false;\n return _this;\n }\n LegendView.prototype.init = function () {\n this.group.add(this._contentGroup = new Group());\n this.group.add(this._selectorGroup = new Group());\n this._isFirstRender = true;\n };\n /**\n * @protected\n */\n LegendView.prototype.getContentGroup = function () {\n return this._contentGroup;\n };\n /**\n * @protected\n */\n LegendView.prototype.getSelectorGroup = function () {\n return this._selectorGroup;\n };\n /**\n * @override\n */\n LegendView.prototype.render = function (legendModel, ecModel, api) {\n var isFirstRender = this._isFirstRender;\n this._isFirstRender = false;\n this.resetInner();\n if (!legendModel.get('show', true)) {\n return;\n }\n var itemAlign = legendModel.get('align');\n var orient = legendModel.get('orient');\n if (!itemAlign || itemAlign === 'auto') {\n itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n }\n // selector has been normalized to an array in model\n var selector = legendModel.get('selector', true);\n var selectorPosition = legendModel.get('selectorPosition', true);\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n }\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n // Perform layout.\n var positionInfo = legendModel.getBoxLayoutParams();\n var viewportSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var padding = legendModel.get('padding');\n var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\n // Place mainGroup, based on the calculated `mainRect`.\n var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n width: mainRect.width,\n height: mainRect.height\n }, positionInfo), viewportSize, padding);\n this.group.x = layoutRect.x - mainRect.x;\n this.group.y = layoutRect.y - mainRect.y;\n this.group.markRedraw();\n // Render background after group is layout.\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n };\n LegendView.prototype.resetInner = function () {\n this.getContentGroup().removeAll();\n this._backgroundEl && this.group.remove(this._backgroundEl);\n this.getSelectorGroup().removeAll();\n };\n LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var contentGroup = this.getContentGroup();\n var legendDrawnMap = zrUtil.createHashMap();\n var selectMode = legendModel.get('selectedMode');\n var excludeSeriesId = [];\n ecModel.eachRawSeries(function (seriesModel) {\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n });\n each(legendModel.getData(), function (legendItemModel, dataIndex) {\n var name = legendItemModel.get('name');\n // Use empty string or \\n as a newline string\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n var g = new Group();\n // @ts-ignore\n g.newline = true;\n contentGroup.add(g);\n return;\n }\n // Representitive series.\n var seriesModel = ecModel.getSeriesByName(name)[0];\n if (legendDrawnMap.get(name)) {\n // Have been drawn\n return;\n }\n // Legend to control series.\n if (seriesModel) {\n var data = seriesModel.getData();\n var lineVisualStyle = data.getVisual('legendLineStyle') || {};\n var legendIcon = data.getVisual('legendIcon');\n /**\n * `data.getVisual('style')` may be the color from the register\n * in series. For example, for line series,\n */\n var style = data.getVisual('style');\n var itemGroup = this._createItem(seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, lineVisualStyle, style, legendIcon, selectMode, api);\n itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n if (ecModel.ssr) {\n itemGroup.eachChild(function (child) {\n var ecData = getECData(child);\n ecData.seriesIndex = seriesModel.seriesIndex;\n ecData.dataIndex = dataIndex;\n ecData.ssrType = 'legend';\n });\n }\n legendDrawnMap.set(name, true);\n } else {\n // Legend to control data. In pie and funnel.\n ecModel.eachRawSeries(function (seriesModel) {\n // In case multiple series has same data name\n if (legendDrawnMap.get(name)) {\n return;\n }\n if (seriesModel.legendVisualProvider) {\n var provider = seriesModel.legendVisualProvider;\n if (!provider.containName(name)) {\n return;\n }\n var idx = provider.indexOfName(name);\n var style = provider.getItemVisual(idx, 'style');\n var legendIcon = provider.getItemVisual(idx, 'legendIcon');\n var colorArr = parse(style.fill);\n // Color may be set to transparent in visualMap when data is out of range.\n // Do not show nothing.\n if (colorArr && colorArr[3] === 0) {\n colorArr[3] = 0.2;\n // TODO color is set to 0, 0, 0, 0. Should show correct RGBA\n style = zrUtil.extend(zrUtil.extend({}, style), {\n fill: stringify(colorArr, 'rgba')\n });\n }\n var itemGroup = this._createItem(seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, {}, style, legendIcon, selectMode, api);\n // FIXME: consider different series has items with the same name.\n itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId))\n // Should not specify the series name, consider legend controls\n // more than one pie series.\n .on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n if (ecModel.ssr) {\n itemGroup.eachChild(function (child) {\n var ecData = getECData(child);\n ecData.seriesIndex = seriesModel.seriesIndex;\n ecData.dataIndex = dataIndex;\n ecData.ssrType = 'legend';\n });\n }\n legendDrawnMap.set(name, true);\n }\n }, this);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!legendDrawnMap.get(name)) {\n console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n }\n }\n }, this);\n if (selector) {\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\n }\n };\n LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n each(selector, function createSelectorButton(selectorItem) {\n var type = selectorItem.type;\n var labelText = new graphic.Text({\n style: {\n x: 0,\n y: 0,\n align: 'center',\n verticalAlign: 'middle'\n },\n onclick: function () {\n api.dispatchAction({\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n });\n }\n });\n selectorGroup.add(labelText);\n var labelModel = legendModel.getModel('selectorLabel');\n var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n setLabelStyle(labelText, {\n normal: labelModel,\n emphasis: emphasisLabelModel\n }, {\n defaultText: selectorItem.title\n });\n enableHoverEmphasis(labelText);\n });\n };\n LegendView.prototype._createItem = function (seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, lineVisualStyle, itemVisualStyle, legendIcon, selectMode, api) {\n var drawType = seriesModel.visualDrawType;\n var itemWidth = legendModel.get('itemWidth');\n var itemHeight = legendModel.get('itemHeight');\n var isSelected = legendModel.isSelected(name);\n var iconRotate = legendItemModel.get('symbolRotate');\n var symbolKeepAspect = legendItemModel.get('symbolKeepAspect');\n var legendIconType = legendItemModel.get('icon');\n legendIcon = legendIconType || legendIcon || 'roundRect';\n var style = getLegendStyle(legendIcon, legendItemModel, lineVisualStyle, itemVisualStyle, drawType, isSelected, api);\n var itemGroup = new Group();\n var textStyleModel = legendItemModel.getModel('textStyle');\n if (zrUtil.isFunction(seriesModel.getLegendIcon) && (!legendIconType || legendIconType === 'inherit')) {\n // Series has specific way to define legend icon\n itemGroup.add(seriesModel.getLegendIcon({\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n icon: legendIcon,\n iconRotate: iconRotate,\n itemStyle: style.itemStyle,\n lineStyle: style.lineStyle,\n symbolKeepAspect: symbolKeepAspect\n }));\n } else {\n // Use default legend icon policy for most series\n var rotate = legendIconType === 'inherit' && seriesModel.getData().getVisual('symbol') ? iconRotate === 'inherit' ? seriesModel.getData().getVisual('symbolRotate') : iconRotate : 0; // No rotation for no icon\n itemGroup.add(getDefaultLegendIcon({\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n icon: legendIcon,\n iconRotate: rotate,\n itemStyle: style.itemStyle,\n lineStyle: style.lineStyle,\n symbolKeepAspect: symbolKeepAspect\n }));\n }\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n var textAlign = itemAlign;\n var formatter = legendModel.get('formatter');\n var content = name;\n if (zrUtil.isString(formatter) && formatter) {\n content = formatter.replace('{name}', name != null ? name : '');\n } else if (zrUtil.isFunction(formatter)) {\n content = formatter(name);\n }\n var textColor = isSelected ? textStyleModel.getTextColor() : legendItemModel.get('inactiveColor');\n itemGroup.add(new graphic.Text({\n style: createTextStyle(textStyleModel, {\n text: content,\n x: textX,\n y: itemHeight / 2,\n fill: textColor,\n align: textAlign,\n verticalAlign: 'middle'\n }, {\n inheritColor: textColor\n })\n }));\n // Add a invisible rect to increase the area of mouse hover\n var hitRect = new graphic.Rect({\n shape: itemGroup.getBoundingRect(),\n style: {\n // Cannot use 'invisible' because SVG SSR will miss the node\n fill: 'transparent'\n }\n });\n var tooltipModel = legendItemModel.getModel('tooltip');\n if (tooltipModel.get('show')) {\n graphic.setTooltipConfig({\n el: hitRect,\n componentModel: legendModel,\n itemName: name,\n itemTooltipOption: tooltipModel.option\n });\n }\n itemGroup.add(hitRect);\n itemGroup.eachChild(function (child) {\n child.silent = true;\n });\n hitRect.silent = !selectMode;\n this.getContentGroup().add(itemGroup);\n enableHoverEmphasis(itemGroup);\n // @ts-ignore\n itemGroup.__legendDataIndex = dataIndex;\n return itemGroup;\n };\n LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var contentGroup = this.getContentGroup();\n var selectorGroup = this.getSelectorGroup();\n // Place items in contentGroup.\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n var contentRect = contentGroup.getBoundingRect();\n var contentPos = [-contentRect.x, -contentRect.y];\n selectorGroup.markRedraw();\n contentGroup.markRedraw();\n if (selector) {\n // Place buttons in selectorGroup\n layoutUtil.box(\n // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var orientIdx = legendModel.getOrient().index;\n var wh = orientIdx === 0 ? 'width' : 'height';\n var hw = orientIdx === 0 ? 'height' : 'width';\n var yx = orientIdx === 0 ? 'y' : 'x';\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n } else {\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n }\n // Always align selector to content as 'middle'\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n selectorGroup.x = selectorPos[0];\n selectorGroup.y = selectorPos[1];\n contentGroup.x = contentPos[0];\n contentGroup.y = contentPos[1];\n var mainRect = {\n x: 0,\n y: 0\n };\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n return mainRect;\n } else {\n contentGroup.x = contentPos[0];\n contentGroup.y = contentPos[1];\n return this.group.getBoundingRect();\n }\n };\n /**\n * @protected\n */\n LegendView.prototype.remove = function () {\n this.getContentGroup().removeAll();\n this._isFirstRender = true;\n };\n LegendView.type = 'legend.plain';\n return LegendView;\n}(ComponentView);\nfunction getLegendStyle(iconType, legendItemModel, lineVisualStyle, itemVisualStyle, drawType, isSelected, api) {\n /**\n * Use series style if is inherit;\n * elsewise, use legend style\n */\n function handleCommonProps(style, visualStyle) {\n // If lineStyle.width is 'auto', it is set to be 2 if series has border\n if (style.lineWidth === 'auto') {\n style.lineWidth = visualStyle.lineWidth > 0 ? 2 : 0;\n }\n each(style, function (propVal, propName) {\n style[propName] === 'inherit' && (style[propName] = visualStyle[propName]);\n });\n }\n // itemStyle\n var itemStyleModel = legendItemModel.getModel('itemStyle');\n var itemStyle = itemStyleModel.getItemStyle();\n var iconBrushType = iconType.lastIndexOf('empty', 0) === 0 ? 'fill' : 'stroke';\n var decalStyle = itemStyleModel.getShallow('decal');\n itemStyle.decal = !decalStyle || decalStyle === 'inherit' ? itemVisualStyle.decal : createOrUpdatePatternFromDecal(decalStyle, api);\n if (itemStyle.fill === 'inherit') {\n /**\n * Series with visualDrawType as 'stroke' should have\n * series stroke as legend fill\n */\n itemStyle.fill = itemVisualStyle[drawType];\n }\n if (itemStyle.stroke === 'inherit') {\n /**\n * icon type with \"emptyXXX\" should use fill color\n * in visual style\n */\n itemStyle.stroke = itemVisualStyle[iconBrushType];\n }\n if (itemStyle.opacity === 'inherit') {\n /**\n * Use lineStyle.opacity if drawType is stroke\n */\n itemStyle.opacity = (drawType === 'fill' ? itemVisualStyle : lineVisualStyle).opacity;\n }\n handleCommonProps(itemStyle, itemVisualStyle);\n // lineStyle\n var legendLineModel = legendItemModel.getModel('lineStyle');\n var lineStyle = legendLineModel.getLineStyle();\n handleCommonProps(lineStyle, lineVisualStyle);\n // Fix auto color to real color\n itemStyle.fill === 'auto' && (itemStyle.fill = itemVisualStyle.fill);\n itemStyle.stroke === 'auto' && (itemStyle.stroke = itemVisualStyle.fill);\n lineStyle.stroke === 'auto' && (lineStyle.stroke = itemVisualStyle.fill);\n if (!isSelected) {\n var borderWidth = legendItemModel.get('inactiveBorderWidth');\n /**\n * Since stroke is set to be inactiveBorderColor, it may occur that\n * there is no border in series but border in legend, so we need to\n * use border only when series has border if is set to be auto\n */\n var visualHasBorder = itemStyle[iconBrushType];\n itemStyle.lineWidth = borderWidth === 'auto' ? itemVisualStyle.lineWidth > 0 && visualHasBorder ? 2 : 0 : itemStyle.lineWidth;\n itemStyle.fill = legendItemModel.get('inactiveColor');\n itemStyle.stroke = legendItemModel.get('inactiveBorderColor');\n lineStyle.stroke = legendLineModel.get('inactiveColor');\n lineStyle.lineWidth = legendLineModel.get('inactiveWidth');\n }\n return {\n itemStyle: itemStyle,\n lineStyle: lineStyle\n };\n}\nfunction getDefaultLegendIcon(opt) {\n var symboType = opt.icon || 'roundRect';\n var icon = createSymbol(symboType, 0, 0, opt.itemWidth, opt.itemHeight, opt.itemStyle.fill, opt.symbolKeepAspect);\n icon.setStyle(opt.itemStyle);\n icon.rotation = (opt.iconRotate || 0) * Math.PI / 180;\n icon.setOrigin([opt.itemWidth / 2, opt.itemHeight / 2]);\n if (symboType.indexOf('empty') > -1) {\n icon.style.stroke = icon.style.fill;\n icon.style.fill = '#fff';\n icon.style.lineWidth = 2;\n }\n return icon;\n}\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n // downplay before unselect\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n api.dispatchAction({\n type: 'legendToggleSelect',\n name: seriesName != null ? seriesName : dataName\n });\n // highlight after select\n // TODO highlight immediately may cause animation loss.\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\nfunction isUseHoverLayer(api) {\n var list = api.getZr().storage.getDisplayList();\n var emphasisState;\n var i = 0;\n var len = list.length;\n while (i < len && !(emphasisState = list[i].states.emphasis)) {\n i++;\n }\n return emphasisState && emphasisState.hoverLayer;\n}\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n // If element hover will move to a hoverLayer.\n if (!isUseHoverLayer(api)) {\n api.dispatchAction({\n type: 'highlight',\n seriesName: seriesName,\n name: dataName,\n excludeSeriesId: excludeSeriesId\n });\n }\n}\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n // If element hover will move to a hoverLayer.\n if (!isUseHoverLayer(api)) {\n api.dispatchAction({\n type: 'downplay',\n seriesName: seriesName,\n name: dataName,\n excludeSeriesId: excludeSeriesId\n });\n }\n}\nexport default LegendView;","\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*/\nexport default function legendFilter(ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n if (legendModels && legendModels.length) {\n ecModel.filterSeries(function (series) {\n // If in any legend component the status is not selected.\n // Because in legend series is assumed selected when it is not in the legend data.\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(series.name)) {\n return false;\n }\n }\n return true;\n });\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*/\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*/\n// @ts-nocheck\nimport { curry, each } from 'zrender/lib/core/util.js';\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n var selectedMap = {};\n var isToggleSelect = methodName === 'toggleSelected';\n var isSelected;\n // Update all legend components\n ecModel.eachComponent('legend', function (legendModel) {\n if (isToggleSelect && isSelected != null) {\n // Force other legend has same selected status\n // Or the first is toggled to true and other are toggled to false\n // In the case one legend has some item unSelected in option. And if other legend\n // doesn't has the item, they will assume it is selected.\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n legendModel[methodName]();\n } else {\n legendModel[methodName](payload.name);\n isSelected = legendModel.isSelected(payload.name);\n }\n var legendData = legendModel.getData();\n each(legendData, function (model) {\n var name = model.get('name');\n // Wrap element\n if (name === '\\n' || name === '') {\n return;\n }\n var isItemSelected = legendModel.isSelected(name);\n if (selectedMap.hasOwnProperty(name)) {\n // Unselected if any legend is unselected\n selectedMap[name] = selectedMap[name] && isItemSelected;\n } else {\n selectedMap[name] = isItemSelected;\n }\n });\n });\n // Return the event explicitly\n return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n selected: selectedMap\n } : {\n name: payload.name,\n selected: selectedMap\n };\n}\nexport function installLegendAction(registers) {\n /**\n * @event legendToggleSelect\n * @type {Object}\n * @property {string} type 'legendToggleSelect'\n * @property {string} [from]\n * @property {string} name Series name or data item name\n */\n registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n /**\n * @event legendSelect\n * @type {Object}\n * @property {string} type 'legendSelect'\n * @property {string} name Series name or data item name\n */\n registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n /**\n * @event legendUnSelect\n * @type {Object}\n * @property {string} type 'legendUnSelect'\n * @property {string} name Series name or data item name\n */\n registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\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/**\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 LegendModel from './LegendModel.js';\nimport LegendView from './LegendView.js';\nimport legendFilter from './legendFilter.js';\nimport { installLegendAction } from './legendAction.js';\nexport function install(registers) {\n registers.registerComponentModel(LegendModel);\n registers.registerComponentView(LegendView);\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n registers.registerSubTypeDefaulter('legend', function () {\n return 'plain';\n });\n installLegendAction(registers);\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/**\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 { __extends } from \"tslib\";\nimport LegendModel from './LegendModel.js';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout.js';\nimport { inheritDefaultOption } from '../../util/component.js';\nvar ScrollableLegendModel = /** @class */function (_super) {\n __extends(ScrollableLegendModel, _super);\n function ScrollableLegendModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = ScrollableLegendModel.type;\n return _this;\n }\n /**\n * @param {number} scrollDataIndex\n */\n ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n this.option.scrollDataIndex = scrollDataIndex;\n };\n ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n var inputPositionParams = getLayoutParams(option);\n _super.prototype.init.call(this, option, parentModel, ecModel);\n mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n };\n /**\n * @override\n */\n ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n _super.prototype.mergeOption.call(this, option, ecModel);\n mergeAndNormalizeLayoutParams(this, this.option, option);\n };\n ScrollableLegendModel.type = 'legend.scroll';\n ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n scrollDataIndex: 0,\n pageButtonItemGap: 5,\n pageButtonGap: null,\n pageButtonPosition: 'end',\n pageFormatter: '{current}/{total}',\n pageIcons: {\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n },\n pageIconColor: '#2f4554',\n pageIconInactiveColor: '#aaa',\n pageIconSize: 15,\n pageTextStyle: {\n color: '#333'\n },\n animationDurationUpdate: 800\n });\n return ScrollableLegendModel;\n}(LegendModel);\n;\n// Do not `ignoreSize` to enable setting {left: 10, right: 10}.\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n var orient = legendModel.getOrient();\n var ignoreSize = [1, 1];\n ignoreSize[orient.index] = 0;\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: !!ignoreSize\n });\n}\nexport default ScrollableLegendModel;","\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 { __extends } from \"tslib\";\n/**\n * Separate legend and scrollable legend to reduce package size.\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport LegendView from './LegendView.js';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\nvar ScrollableLegendView = /** @class */function (_super) {\n __extends(ScrollableLegendView, _super);\n function ScrollableLegendView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = ScrollableLegendView.type;\n _this.newlineDisabled = true;\n _this._currentIndex = 0;\n return _this;\n }\n ScrollableLegendView.prototype.init = function () {\n _super.prototype.init.call(this);\n this.group.add(this._containerGroup = new Group());\n this._containerGroup.add(this.getContentGroup());\n this.group.add(this._controllerGroup = new Group());\n };\n /**\n * @override\n */\n ScrollableLegendView.prototype.resetInner = function () {\n _super.prototype.resetInner.call(this);\n this._controllerGroup.removeAll();\n this._containerGroup.removeClipPath();\n this._containerGroup.__rectSize = null;\n };\n /**\n * @override\n */\n ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var self = this;\n // Render content items.\n _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n var controllerGroup = this._controllerGroup;\n // FIXME: support be 'auto' adapt to size number text length,\n // e.g., '3/12345' should not overlap with the control arrow button.\n var pageIconSize = legendModel.get('pageIconSize', true);\n var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n createPageButton('pagePrev', 0);\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n controllerGroup.add(new graphic.Text({\n name: 'pageText',\n style: {\n // Placeholder to calculate a proper layout.\n text: 'xx/xx',\n fill: pageTextStyleModel.getTextColor(),\n font: pageTextStyleModel.getFont(),\n verticalAlign: 'middle',\n align: 'center'\n },\n silent: true\n }));\n createPageButton('pageNext', 1);\n function createPageButton(name, iconIdx) {\n var pageDataIndexName = name + 'DataIndex';\n var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n // Buttons will be created in each render, so we do not need\n // to worry about avoiding using legendModel kept in scope.\n onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n }, {\n x: -pageIconSizeArr[0] / 2,\n y: -pageIconSizeArr[1] / 2,\n width: pageIconSizeArr[0],\n height: pageIconSizeArr[1]\n });\n icon.name = name;\n controllerGroup.add(icon);\n }\n };\n /**\n * @override\n */\n ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n var hw = WH[1 - orientIdx];\n var yx = XY[1 - orientIdx];\n selector && layoutUtil.box(\n // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var processMaxSize = zrUtil.clone(maxSize);\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n if (selector) {\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n } else {\n var offset = selectorRect[wh] + selectorButtonGap;\n selectorPos[orientIdx] -= offset;\n mainRect[xy] -= offset;\n }\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n selectorGroup.x = selectorPos[0];\n selectorGroup.y = selectorPos[1];\n selectorGroup.markRedraw();\n }\n return mainRect;\n };\n ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n var contentGroup = this.getContentGroup();\n var containerGroup = this._containerGroup;\n var controllerGroup = this._controllerGroup;\n // Place items in contentGroup.\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n layoutUtil.box(\n // Buttons in controller are layout always horizontally.\n 'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n var contentRect = contentGroup.getBoundingRect();\n var controllerRect = controllerGroup.getBoundingRect();\n var showController = this._showController = contentRect[wh] > maxSize[wh];\n // In case that the inner elements of contentGroup layout do not based on [0, 0]\n var contentPos = [-contentRect.x, -contentRect.y];\n // Remain contentPos when scroll animation perfroming.\n // If first rendering, `contentGroup.position` is [0, 0], which\n // does not make sense and may cause unexepcted animation if adopted.\n if (!isFirstRender) {\n contentPos[orientIdx] = contentGroup[xy];\n }\n // Layout container group based on 0.\n var containerPos = [0, 0];\n var controllerPos = [-controllerRect.x, -controllerRect.y];\n var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\n // Place containerGroup and controllerGroup and contentGroup.\n if (showController) {\n var pageButtonPosition = legendModel.get('pageButtonPosition', true);\n // controller is on the right / bottom.\n if (pageButtonPosition === 'end') {\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n }\n // controller is on the left / top.\n else {\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n }\n }\n // Always align controller to content as 'middle'.\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n contentGroup.setPosition(contentPos);\n containerGroup.setPosition(containerPos);\n controllerGroup.setPosition(controllerPos);\n // Calculate `mainRect` and set `clipPath`.\n // mainRect should not be calculated by `this.group.getBoundingRect()`\n // for sake of the overflow.\n var mainRect = {\n x: 0,\n y: 0\n };\n // Consider content may be overflow (should be clipped).\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\n // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n containerGroup.__rectSize = maxSize[wh];\n if (showController) {\n var clipShape = {\n x: 0,\n y: 0\n };\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n clipShape[hw] = mainRect[hw];\n containerGroup.setClipPath(new graphic.Rect({\n shape: clipShape\n }));\n // Consider content may be larger than container, container rect\n // can not be obtained from `containerGroup.getBoundingRect()`.\n containerGroup.__rectSize = clipShape[wh];\n } else {\n // Do not remove or ignore controller. Keep them set as placeholders.\n controllerGroup.eachChild(function (child) {\n child.attr({\n invisible: true,\n silent: true\n });\n });\n }\n // Content translate animation.\n var pageInfo = this._getPageInfo(legendModel);\n pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n x: pageInfo.contentPosition[0],\n y: pageInfo.contentPosition[1]\n },\n // When switch from \"show controller\" to \"not show controller\", view should be\n // updated immediately without animation, otherwise causes weird effect.\n showController ? legendModel : null);\n this._updatePageInfoView(legendModel, pageInfo);\n return mainRect;\n };\n ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\n scrollDataIndex != null && api.dispatchAction({\n type: 'legendScroll',\n scrollDataIndex: scrollDataIndex,\n legendId: legendModel.id\n });\n };\n ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n var controllerGroup = this._controllerGroup;\n zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n var key = name + 'DataIndex';\n var canJump = pageInfo[key] != null;\n var icon = controllerGroup.childOfName(name);\n if (icon) {\n icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n icon.cursor = canJump ? 'pointer' : 'default';\n }\n });\n var pageText = controllerGroup.childOfName('pageText');\n var pageFormatter = legendModel.get('pageFormatter');\n var pageIndex = pageInfo.pageIndex;\n var current = pageIndex != null ? pageIndex + 1 : 0;\n var total = pageInfo.pageCount;\n pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n current: current,\n total: total\n }));\n };\n /**\n * contentPosition: Array.<number>, null when data item not found.\n * pageIndex: number, null when data item not found.\n * pageCount: number, always be a number, can be 0.\n * pagePrevDataIndex: number, null when no previous page.\n * pageNextDataIndex: number, null when no next page.\n * }\n */\n ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n var contentGroup = this.getContentGroup();\n var containerRectSize = this._containerGroup.__rectSize;\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n var children = contentGroup.children();\n var targetItem = children[targetItemIndex];\n var itemCount = children.length;\n var pCount = !itemCount ? 0 : 1;\n var result = {\n contentPosition: [contentGroup.x, contentGroup.y],\n pageCount: pCount,\n pageIndex: pCount - 1,\n pagePrevDataIndex: null,\n pageNextDataIndex: null\n };\n if (!targetItem) {\n return result;\n }\n var targetItemInfo = getItemInfo(targetItem);\n result.contentPosition[orientIdx] = -targetItemInfo.s;\n // Strategy:\n // (1) Always align based on the left/top most item.\n // (2) It is user-friendly that the last item shown in the\n // current window is shown at the begining of next window.\n // Otherwise if half of the last item is cut by the window,\n // it will have no chance to display entirely.\n // (3) Consider that item size probably be different, we\n // have calculate pageIndex by size rather than item index,\n // and we can not get page index directly by division.\n // (4) The window is to narrow to contain more than\n // one item, we should make sure that the page can be fliped.\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n currItemInfo = getItemInfo(children[i]);\n if (\n // Half of the last item is out of the window.\n !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize\n // If the current item does not intersect with the window, the new page\n // can be started at the current item or the last item.\n || currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n if (winEndItemInfo.i > winStartItemInfo.i) {\n winStartItemInfo = winEndItemInfo;\n } else {\n // e.g., when page size is smaller than item size.\n winStartItemInfo = currItemInfo;\n }\n if (winStartItemInfo) {\n if (result.pageNextDataIndex == null) {\n result.pageNextDataIndex = winStartItemInfo.i;\n }\n ++result.pageCount;\n }\n }\n winEndItemInfo = currItemInfo;\n }\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n currItemInfo = getItemInfo(children[i]);\n if (\n // If the the end item does not intersect with the window started\n // from the current item, a page can be settled.\n (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)\n // e.g., when page size is smaller than item size.\n ) && winStartItemInfo.i < winEndItemInfo.i) {\n winEndItemInfo = winStartItemInfo;\n if (result.pagePrevDataIndex == null) {\n result.pagePrevDataIndex = winStartItemInfo.i;\n }\n ++result.pageCount;\n ++result.pageIndex;\n }\n winStartItemInfo = currItemInfo;\n }\n return result;\n function getItemInfo(el) {\n if (el) {\n var itemRect = el.getBoundingRect();\n var start = itemRect[xy] + el[xy];\n return {\n s: start,\n e: start + itemRect[wh],\n i: el.__legendDataIndex\n };\n }\n }\n function intersect(itemInfo, winStart) {\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n }\n };\n ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n if (!this._showController) {\n return 0;\n }\n var index;\n var contentGroup = this.getContentGroup();\n var defaultIndex;\n contentGroup.eachChild(function (child, idx) {\n var legendDataIdx = child.__legendDataIndex;\n // FIXME\n // If the given targetDataIndex (from model) is illegal,\n // we use defaultIndex. But the index on the legend model and\n // action payload is still illegal. That case will not be\n // changed until some scenario requires.\n if (defaultIndex == null && legendDataIdx != null) {\n defaultIndex = idx;\n }\n if (legendDataIdx === targetDataIndex) {\n index = idx;\n }\n });\n return index != null ? index : defaultIndex;\n };\n ScrollableLegendView.type = 'legend.scroll';\n return ScrollableLegendView;\n}(LegendView);\nexport default ScrollableLegendView;","\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*/\nexport default function installScrollableLegendAction(registers) {\n /**\n * @event legendScroll\n * @type {Object}\n * @property {string} type 'legendScroll'\n * @property {string} scrollDataIndex\n */\n registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n var scrollDataIndex = payload.scrollDataIndex;\n scrollDataIndex != null && ecModel.eachComponent({\n mainType: 'legend',\n subType: 'scroll',\n query: payload\n }, function (legendModel) {\n legendModel.setScrollDataIndex(scrollDataIndex);\n });\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*/\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 { use } from '../../extension.js';\nimport { install as installLegendPlain } from './installLegendPlain.js';\nimport ScrollableLegendModel from './ScrollableLegendModel.js';\nimport ScrollableLegendView from './ScrollableLegendView.js';\nimport installScrollableLegendAction from './scrollableLegendAction.js';\nexport function install(registers) {\n use(installLegendPlain);\n registers.registerComponentModel(ScrollableLegendModel);\n registers.registerComponentView(ScrollableLegendView);\n installScrollableLegendAction(registers);\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/**\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 { use } from '../../extension.js';\nimport { install as installLegendPlain } from './installLegendPlain.js';\nimport { install as installLegendScroll } from './installLegendScroll.js';\nexport function install(registers) {\n use(installLegendPlain);\n use(installLegendScroll);\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/**\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 { parsePercent, linearMap } from '../../util/number.js';\nimport * as layout from '../../util/layout.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { normalizeArcAngles } from 'zrender/lib/core/PathProxy.js';\nimport { makeInner } from '../../util/model.js';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\nexport function getBasicPieLayout(seriesModel, api) {\n var viewRect = getViewRect(seriesModel, api);\n // center can be string or number when coordinateSystem is specified\n var center = seriesModel.get('center');\n var radius = seriesModel.get('radius');\n if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n var width = parsePercent(viewRect.width, api.getWidth());\n var height = parsePercent(viewRect.height, api.getHeight());\n var size = Math.min(width, height);\n var r0 = parsePercent(radius[0], size / 2);\n var r = parsePercent(radius[1], size / 2);\n var cx;\n var cy;\n var coordSys = seriesModel.coordinateSystem;\n if (coordSys) {\n // percentage is not allowed when coordinate system is specified\n var point = coordSys.dataToPoint(center);\n cx = point[0] || 0;\n cy = point[1] || 0;\n } else {\n if (!zrUtil.isArray(center)) {\n center = [center, center];\n }\n cx = parsePercent(center[0], width) + viewRect.x;\n cy = parsePercent(center[1], height) + viewRect.y;\n }\n return {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r\n };\n}\nexport default function pieLayout(seriesType, ecModel, api) {\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var viewRect = getViewRect(seriesModel, api);\n var _a = getBasicPieLayout(seriesModel, api),\n cx = _a.cx,\n cy = _a.cy,\n r = _a.r,\n r0 = _a.r0;\n var startAngle = -seriesModel.get('startAngle') * RADIAN;\n var endAngle = seriesModel.get('endAngle');\n var padAngle = seriesModel.get('padAngle') * RADIAN;\n endAngle = endAngle === 'auto' ? startAngle - PI2 : -endAngle * RADIAN;\n var minAngle = seriesModel.get('minAngle') * RADIAN;\n var minAndPadAngle = minAngle + padAngle;\n var validDataCount = 0;\n data.each(valueDim, function (value) {\n !isNaN(value) && validDataCount++;\n });\n var sum = data.getSum(valueDim);\n // Sum may be 0\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\n var clockwise = seriesModel.get('clockwise');\n var roseType = seriesModel.get('roseType');\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n // [0...max]\n var extent = data.getDataExtent(valueDim);\n extent[0] = 0;\n var dir = clockwise ? 1 : -1;\n var angles = [startAngle, endAngle];\n var halfPadAngle = dir * padAngle / 2;\n normalizeArcAngles(angles, !clockwise);\n startAngle = angles[0], endAngle = angles[1];\n var layoutData = getSeriesLayoutData(seriesModel);\n layoutData.startAngle = startAngle;\n layoutData.endAngle = endAngle;\n layoutData.clockwise = clockwise;\n var angleRange = Math.abs(endAngle - startAngle);\n // In the case some sector angle is smaller than minAngle\n var restAngle = angleRange;\n var valueSumLargerThanMinAngle = 0;\n var currentAngle = startAngle;\n data.setLayout({\n viewRect: viewRect,\n r: r\n });\n data.each(valueDim, function (value, idx) {\n var angle;\n if (isNaN(value)) {\n data.setItemLayout(idx, {\n angle: NaN,\n startAngle: NaN,\n endAngle: NaN,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? NaN : r\n });\n return;\n }\n // FIXME 兼容 2.0 但是 roseType 是 area 的时候才是这样?\n if (roseType !== 'area') {\n angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n } else {\n angle = angleRange / validDataCount;\n }\n if (angle < minAndPadAngle) {\n angle = minAndPadAngle;\n restAngle -= minAndPadAngle;\n } else {\n valueSumLargerThanMinAngle += value;\n }\n var endAngle = currentAngle + dir * angle;\n // calculate display angle\n var actualStartAngle = 0;\n var actualEndAngle = 0;\n if (padAngle > angle) {\n actualStartAngle = currentAngle + dir * angle / 2;\n actualEndAngle = actualStartAngle;\n } else {\n actualStartAngle = currentAngle + halfPadAngle;\n actualEndAngle = endAngle - halfPadAngle;\n }\n data.setItemLayout(idx, {\n angle: angle,\n startAngle: actualStartAngle,\n endAngle: actualEndAngle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? linearMap(value, extent, [r0, r]) : r\n });\n currentAngle = endAngle;\n });\n // Some sector is constrained by minAngle and padAngle\n // Rest sectors needs recalculate angle\n if (restAngle < PI2 && validDataCount) {\n // Average the angle if rest angle is not enough after all angles is\n // Constrained by minAngle and padAngle\n if (restAngle <= 1e-3) {\n var angle_1 = angleRange / validDataCount;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout_1 = data.getItemLayout(idx);\n layout_1.angle = angle_1;\n var actualStartAngle = 0;\n var actualEndAngle = 0;\n if (angle_1 < padAngle) {\n actualStartAngle = startAngle + dir * (idx + 1 / 2) * angle_1;\n actualEndAngle = actualStartAngle;\n } else {\n actualStartAngle = startAngle + dir * idx * angle_1 + halfPadAngle;\n actualEndAngle = startAngle + dir * (idx + 1) * angle_1 - halfPadAngle;\n }\n layout_1.startAngle = actualStartAngle;\n layout_1.endAngle = actualEndAngle;\n }\n });\n } else {\n unitRadian = restAngle / valueSumLargerThanMinAngle;\n currentAngle = startAngle;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout_2 = data.getItemLayout(idx);\n var angle = layout_2.angle === minAndPadAngle ? minAndPadAngle : value * unitRadian;\n var actualStartAngle = 0;\n var actualEndAngle = 0;\n if (angle < padAngle) {\n actualStartAngle = currentAngle + dir * angle / 2;\n actualEndAngle = actualStartAngle;\n } else {\n actualStartAngle = currentAngle + halfPadAngle;\n actualEndAngle = currentAngle + dir * angle - halfPadAngle;\n }\n layout_2.startAngle = actualStartAngle;\n layout_2.endAngle = actualEndAngle;\n currentAngle += dir * angle;\n }\n });\n }\n }\n });\n}\nexport var getSeriesLayoutData = makeInner();","\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*/\nexport default function dataFilter(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n if (!legendModels || !legendModels.length) {\n return;\n }\n var data = seriesModel.getData();\n data.filterSelf(function (idx) {\n var name = data.getName(idx);\n // If in any legend component the status is not selected.\n for (var i = 0; i < legendModels.length; i++) {\n // @ts-ignore FIXME: LegendModel\n if (!legendModels[i].isSelected(name)) {\n return false;\n }\n }\n return true;\n });\n }\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*/\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*/\n// FIXME emphasis label position is not same with normal label position\nimport { parsePercent } from '../../util/number.js';\nimport { Point } from '../../util/graphic.js';\nimport { each, isNumber } from 'zrender/lib/core/util.js';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper.js';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper.js';\nvar RADIAN = Math.PI / 180;\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n if (list.length < 2) {\n return;\n }\n ;\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n var rB = semi.rB;\n var rB2 = rB * rB;\n for (var i = 0; i < semi.list.length; i++) {\n var item = semi.list[i];\n var dy = Math.abs(item.label.y - cy);\n // horizontal r is always same with original r because x is not changed.\n var rA = r + item.len;\n var rA2 = rA * rA;\n // Use ellipse implicit function to calculate x\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n var newX = cx + (dx + item.len2) * dir;\n var deltaX = newX - item.label.x;\n var newTargetWidth = item.targetTextWidth - deltaX * dir;\n // text x is changed, so need to recalculate width.\n constrainTextWidth(item, newTargetWidth, true);\n item.label.x = newX;\n }\n }\n // Adjust X based on the shifted y. Make tight labels aligned on an ellipse curve.\n function recalculateX(items) {\n // Extremes of\n var topSemi = {\n list: [],\n maxY: 0\n };\n var bottomSemi = {\n list: [],\n maxY: 0\n };\n for (var i = 0; i < items.length; i++) {\n if (items[i].labelAlignTo !== 'none') {\n continue;\n }\n var item = items[i];\n var semi = item.label.y > cy ? bottomSemi : topSemi;\n var dy = Math.abs(item.label.y - cy);\n if (dy >= semi.maxY) {\n var dx = item.label.x - cx - item.len2 * dir;\n // horizontal r is always same with original r because x is not changed.\n var rA = r + item.len;\n // Canculate rB based on the topest / bottemest label.\n var rB = Math.abs(dx) < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n semi.rB = rB;\n semi.maxY = dy;\n }\n semi.list.push(item);\n }\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n }\n var len = list.length;\n for (var i = 0; i < len; i++) {\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n var dx = list[i].label.x - farthestX;\n list[i].linePoints[1][0] += dx;\n list[i].label.x = farthestX;\n }\n }\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n recalculateX(list);\n }\n}\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n var leftList = [];\n var rightList = [];\n var leftmostX = Number.MAX_VALUE;\n var rightmostX = -Number.MAX_VALUE;\n for (var i = 0; i < labelLayoutList.length; i++) {\n var label = labelLayoutList[i].label;\n if (isPositionCenter(labelLayoutList[i])) {\n continue;\n }\n if (label.x < cx) {\n leftmostX = Math.min(leftmostX, label.x);\n leftList.push(labelLayoutList[i]);\n } else {\n rightmostX = Math.max(rightmostX, label.x);\n rightList.push(labelLayoutList[i]);\n }\n }\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n if (!isPositionCenter(layout) && layout.linePoints) {\n if (layout.labelStyleWidth != null) {\n continue;\n }\n var label = layout.label;\n var linePoints = layout.linePoints;\n var targetTextWidth = void 0;\n if (layout.labelAlignTo === 'edge') {\n if (label.x < cx) {\n targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n } else {\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n }\n } else if (layout.labelAlignTo === 'labelLine') {\n if (label.x < cx) {\n targetTextWidth = leftmostX - viewLeft - layout.bleedMargin;\n } else {\n targetTextWidth = viewLeft + viewWidth - rightmostX - layout.bleedMargin;\n }\n } else {\n if (label.x < cx) {\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n } else {\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n }\n }\n layout.targetTextWidth = targetTextWidth;\n constrainTextWidth(layout, targetTextWidth);\n }\n }\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n if (!isPositionCenter(layout) && layout.linePoints) {\n var label = layout.label;\n var linePoints = layout.linePoints;\n var isAlignToEdge = layout.labelAlignTo === 'edge';\n var padding = label.style.padding;\n var paddingH = padding ? padding[1] + padding[3] : 0;\n // textRect.width already contains paddingH if bgColor is set\n var extraPaddingH = label.style.backgroundColor ? 0 : paddingH;\n var realTextWidth = layout.rect.width + extraPaddingH;\n var dist = linePoints[1][0] - linePoints[2][0];\n if (isAlignToEdge) {\n if (label.x < cx) {\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n } else {\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n }\n } else {\n if (label.x < cx) {\n linePoints[2][0] = label.x + layout.labelDistance;\n } else {\n linePoints[2][0] = label.x - layout.labelDistance;\n }\n linePoints[1][0] = linePoints[2][0] + dist;\n }\n linePoints[1][1] = linePoints[2][1] = label.y;\n }\n }\n}\n/**\n * Set max width of each label, and then wrap each label to the max width.\n *\n * @param layout label layout\n * @param availableWidth max width for the label to display\n * @param forceRecalculate recaculate the text layout even if the current width\n * is smaller than `availableWidth`. This is useful when the text was previously\n * wrapped by calling `constrainTextWidth` but now `availableWidth` changed, in\n * which case, previous wrapping should be redo.\n */\nfunction constrainTextWidth(layout, availableWidth, forceRecalculate) {\n if (forceRecalculate === void 0) {\n forceRecalculate = false;\n }\n if (layout.labelStyleWidth != null) {\n // User-defined style.width has the highest priority.\n return;\n }\n var label = layout.label;\n var style = label.style;\n var textRect = layout.rect;\n var bgColor = style.backgroundColor;\n var padding = style.padding;\n var paddingH = padding ? padding[1] + padding[3] : 0;\n var overflow = style.overflow;\n // textRect.width already contains paddingH if bgColor is set\n var oldOuterWidth = textRect.width + (bgColor ? 0 : paddingH);\n if (availableWidth < oldOuterWidth || forceRecalculate) {\n var oldHeight = textRect.height;\n if (overflow && overflow.match('break')) {\n // Temporarily set background to be null to calculate\n // the bounding box without background.\n label.setStyle('backgroundColor', null);\n // Set constraining width\n label.setStyle('width', availableWidth - paddingH);\n // This is the real bounding box of the text without padding.\n var innerRect = label.getBoundingRect();\n label.setStyle('width', Math.ceil(innerRect.width));\n label.setStyle('backgroundColor', bgColor);\n } else {\n var availableInnerWidth = availableWidth - paddingH;\n var newWidth = availableWidth < oldOuterWidth\n // Current text is too wide, use `availableWidth` as max width.\n ? availableInnerWidth :\n // Current available width is enough, but the text may have\n // already been wrapped with a smaller available width.\n forceRecalculate ? availableInnerWidth > layout.unconstrainedWidth\n // Current available is larger than text width,\n // so don't constrain width (otherwise it may have\n // empty space in the background).\n ? null\n // Current available is smaller than text width, so\n // use the current available width as constraining\n // width.\n : availableInnerWidth\n // Current available width is enough, so no need to\n // constrain.\n : null;\n label.setStyle('width', newWidth);\n }\n var newRect = label.getBoundingRect();\n textRect.width = newRect.width;\n var margin = (label.style.margin || 0) + 2.1;\n textRect.height = newRect.height + margin;\n textRect.y -= (textRect.height - oldHeight) / 2;\n }\n}\nfunction isPositionCenter(sectorShape) {\n // Not change x for center label\n return sectorShape.position === 'center';\n}\nexport default function pieLabelLayout(seriesModel) {\n var data = seriesModel.getData();\n var labelLayoutList = [];\n var cx;\n var cy;\n var hasLabelRotate = false;\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n var viewRect = data.getLayout('viewRect');\n var r = data.getLayout('r');\n var viewWidth = viewRect.width;\n var viewLeft = viewRect.x;\n var viewTop = viewRect.y;\n var viewHeight = viewRect.height;\n function setNotShow(el) {\n el.ignore = true;\n }\n function isLabelShown(label) {\n if (!label.ignore) {\n return true;\n }\n for (var key in label.states) {\n if (label.states[key].ignore === false) {\n return true;\n }\n }\n return false;\n }\n data.each(function (idx) {\n var sector = data.getItemGraphicEl(idx);\n var sectorShape = sector.shape;\n var label = sector.getTextContent();\n var labelLine = sector.getTextGuideLine();\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n // Use position in normal or emphasis\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n var labelDistance = labelModel.get('distanceToLabelLine');\n var labelAlignTo = labelModel.get('alignTo');\n var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n var bleedMargin = labelModel.get('bleedMargin');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineLen = labelLineModel.get('length');\n labelLineLen = parsePercent(labelLineLen, viewWidth);\n var labelLineLen2 = labelLineModel.get('length2');\n labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n each(label.states, setNotShow);\n label.ignore = true;\n if (labelLine) {\n each(labelLine.states, setNotShow);\n labelLine.ignore = true;\n }\n return;\n }\n if (!isLabelShown(label)) {\n return;\n }\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n var nx = Math.cos(midAngle);\n var ny = Math.sin(midAngle);\n var textX;\n var textY;\n var linePoints;\n var textAlign;\n cx = sectorShape.cx;\n cy = sectorShape.cy;\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n if (labelPosition === 'center') {\n textX = sectorShape.cx;\n textY = sectorShape.cy;\n textAlign = 'center';\n } else {\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n textX = x1 + nx * 3;\n textY = y1 + ny * 3;\n if (!isLabelInside) {\n // For roseType\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n var y3 = y2;\n if (labelAlignTo === 'edge') {\n // Adjust textX because text align of edge is opposite\n textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n } else {\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n }\n textY = y3;\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n }\n textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n }\n var PI = Math.PI;\n var labelRotate = 0;\n var rotate = labelModel.get('rotate');\n if (isNumber(rotate)) {\n labelRotate = rotate * (PI / 180);\n } else if (labelPosition === 'center') {\n labelRotate = 0;\n } else if (rotate === 'radial' || rotate === true) {\n var radialAngle = nx < 0 ? -midAngle + PI : -midAngle;\n labelRotate = radialAngle;\n } else if (rotate === 'tangential' && labelPosition !== 'outside' && labelPosition !== 'outer') {\n var rad = Math.atan2(nx, ny);\n if (rad < 0) {\n rad = PI * 2 + rad;\n }\n var isDown = ny > 0;\n if (isDown) {\n rad = PI + rad;\n }\n labelRotate = rad - PI;\n }\n hasLabelRotate = !!labelRotate;\n label.x = textX;\n label.y = textY;\n label.rotation = labelRotate;\n label.setStyle({\n verticalAlign: 'middle'\n });\n // Not sectorShape the inside label\n if (!isLabelInside) {\n var textRect = label.getBoundingRect().clone();\n textRect.applyTransform(label.getComputedTransform());\n // Text has a default 1px stroke. Exclude this.\n var margin = (label.style.margin || 0) + 2.1;\n textRect.y -= margin / 2;\n textRect.height += margin;\n labelLayoutList.push({\n label: label,\n labelLine: labelLine,\n position: labelPosition,\n len: labelLineLen,\n len2: labelLineLen2,\n minTurnAngle: labelLineModel.get('minTurnAngle'),\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n surfaceNormal: new Point(nx, ny),\n linePoints: linePoints,\n textAlign: textAlign,\n labelDistance: labelDistance,\n labelAlignTo: labelAlignTo,\n edgeDistance: edgeDistance,\n bleedMargin: bleedMargin,\n rect: textRect,\n unconstrainedWidth: textRect.width,\n labelStyleWidth: label.style.width\n });\n } else {\n label.setStyle({\n align: textAlign\n });\n var selectState = label.states.select;\n if (selectState) {\n selectState.x += label.x;\n selectState.y += label.y;\n }\n }\n sector.setTextConfig({\n inside: isLabelInside\n });\n });\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n }\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n var label = layout.label;\n var labelLine = layout.labelLine;\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\n if (label) {\n label.setStyle({\n align: layout.textAlign\n });\n if (notShowLabel) {\n each(label.states, setNotShow);\n label.ignore = true;\n }\n var selectState = label.states.select;\n if (selectState) {\n selectState.x += label.x;\n selectState.y += label.y;\n }\n }\n if (labelLine) {\n var linePoints = layout.linePoints;\n if (notShowLabel || !linePoints) {\n each(labelLine.states, setNotShow);\n labelLine.ignore = true;\n } else {\n limitTurnAngle(linePoints, layout.minTurnAngle);\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n labelLine.setShape({\n points: linePoints\n });\n // Set the anchor to the midpoint of sector\n label.__hostTarget.textGuideLineConfig = {\n anchor: new Point(linePoints[0][0], linePoints[0][1])\n };\n }\n }\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*/\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 { __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport ChartView from '../../view/Chart.js';\nimport labelLayout from './labelLayout.js';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getSectorCornerRadius } from '../helper/sectorHelper.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\nimport { getBasicPieLayout, getSeriesLayoutData } from './pieLayout.js';\n/**\n * Piece of pie including Sector, Label, LabelLine\n */\nvar PiePiece = /** @class */function (_super) {\n __extends(PiePiece, _super);\n function PiePiece(data, idx, startAngle) {\n var _this = _super.call(this) || this;\n _this.z2 = 2;\n var text = new graphic.Text();\n _this.setTextContent(text);\n _this.updateData(data, idx, startAngle, true);\n return _this;\n }\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n var sector = this;\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n var layout = data.getItemLayout(idx);\n // cornerRadius & innerCornerRadius doesn't exist in the item layout. Use `0` if null value is specified.\n // see `setItemLayout` in `pieLayout.ts`.\n var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout, true), layout);\n // Ignore NaN data.\n if (isNaN(sectorShape.startAngle)) {\n // Use NaN shape to avoid drawing shape.\n sector.setShape(sectorShape);\n return;\n }\n if (firstCreate) {\n sector.setShape(sectorShape);\n var animationType = seriesModel.getShallow('animationType');\n if (seriesModel.ecModel.ssr) {\n // Use scale animation in SSR mode(opacity?)\n // Because CSS SVG animation doesn't support very customized shape animation.\n graphic.initProps(sector, {\n scaleX: 0,\n scaleY: 0\n }, seriesModel, {\n dataIndex: idx,\n isFrom: true\n });\n sector.originX = sectorShape.cx;\n sector.originY = sectorShape.cy;\n } else if (animationType === 'scale') {\n sector.shape.r = layout.r0;\n graphic.initProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, idx);\n }\n // Expansion\n else {\n if (startAngle != null) {\n sector.setShape({\n startAngle: startAngle,\n endAngle: startAngle\n });\n graphic.initProps(sector, {\n shape: {\n startAngle: layout.startAngle,\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n } else {\n sector.shape.endAngle = layout.startAngle;\n graphic.updateProps(sector, {\n shape: {\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n }\n }\n } else {\n saveOldStyle(sector);\n // Transition animation from the old shape\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel, idx);\n }\n sector.useStyle(data.getItemVisual(idx, 'style'));\n setStatesStylesFromModel(sector, itemModel);\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var offset = seriesModel.get('selectedOffset');\n var dx = Math.cos(midAngle) * offset;\n var dy = Math.sin(midAngle) * offset;\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle);\n this._updateLabel(seriesModel, data, idx);\n sector.ensureState('emphasis').shape = extend({\n r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n extend(sector.ensureState('select'), {\n x: dx,\n y: dy,\n shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n });\n extend(sector.ensureState('blur'), {\n shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n });\n var labelLine = sector.getTextGuideLine();\n var labelText = sector.getTextContent();\n labelLine && extend(labelLine.ensureState('select'), {\n x: dx,\n y: dy\n });\n // TODO: needs dx, dy in zrender?\n extend(labelText.ensureState('select'), {\n x: dx,\n y: dy\n });\n toggleHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n };\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n var sector = this;\n var itemModel = data.getItemModel(idx);\n var labelLineModel = itemModel.getModel('labelLine');\n var style = data.getItemVisual(idx, 'style');\n var visualColor = style && style.fill;\n var visualOpacity = style && style.opacity;\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n inheritColor: visualColor,\n defaultOpacity: visualOpacity,\n defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n });\n var labelText = sector.getTextContent();\n // Set textConfig on sector.\n sector.setTextConfig({\n // reset position, rotation\n position: null,\n rotation: null\n });\n // Make sure update style on labelText after setLabelStyle.\n // Because setLabelStyle will replace a new style on it.\n labelText.attr({\n z2: 10\n });\n var labelPosition = seriesModel.get(['label', 'position']);\n if (labelPosition !== 'outside' && labelPosition !== 'outer') {\n sector.removeTextGuideLine();\n } else {\n var polyline = this.getTextGuideLine();\n if (!polyline) {\n polyline = new graphic.Polyline();\n this.setTextGuideLine(polyline);\n }\n // Default use item visual color\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n stroke: visualColor,\n opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n });\n }\n };\n return PiePiece;\n}(graphic.Sector);\n// Pie view\nvar PieView = /** @class */function (_super) {\n __extends(PieView, _super);\n function PieView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ignoreLabelLineUpdate = true;\n return _this;\n }\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var startAngle;\n // First render\n if (!oldData && data.count() > 0) {\n var shape = data.getItemLayout(0);\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n shape = data.getItemLayout(s);\n }\n if (shape) {\n startAngle = shape.startAngle;\n }\n }\n // remove empty-circle if it exists\n if (this._emptyCircleSector) {\n group.remove(this._emptyCircleSector);\n }\n // when all data are filtered, show lightgray empty circle\n if (data.count() === 0 && seriesModel.get('showEmptyCircle')) {\n var layoutData = getSeriesLayoutData(seriesModel);\n var sector = new graphic.Sector({\n shape: extend(getBasicPieLayout(seriesModel, api), layoutData)\n });\n sector.useStyle(seriesModel.getModel('emptyCircleStyle').getItemStyle());\n this._emptyCircleSector = sector;\n group.add(sector);\n }\n data.diff(oldData).add(function (idx) {\n var piePiece = new PiePiece(data, idx, startAngle);\n data.setItemGraphicEl(idx, piePiece);\n group.add(piePiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n piePiece.updateData(data, newIdx, startAngle);\n piePiece.off('click');\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n }).execute();\n labelLayout(seriesModel);\n // Always use initial animation.\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n this._data = data;\n }\n };\n PieView.prototype.dispose = function () {};\n PieView.prototype.containPoint = function (point, seriesModel) {\n var data = seriesModel.getData();\n var itemLayout = data.getItemLayout(0);\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n };\n PieView.type = 'pie';\n return PieView;\n}(ChartView);\nexport default PieView;","\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 prepareSeriesDataSchema from '../../data/helper/createDimensions.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport { extend, isArray } from 'zrender/lib/core/util.js';\n/**\n * [Usage]:\n * (1)\n * createListSimply(seriesModel, ['value']);\n * (2)\n * createListSimply(seriesModel, {\n * coordDimensions: ['value'],\n * dimensionsCount: 5\n * });\n */\nexport default function createSeriesDataSimply(seriesModel, opt, nameList) {\n opt = isArray(opt) && {\n coordDimensions: opt\n } || extend({\n encodeDefine: seriesModel.getEncode()\n }, opt);\n var source = seriesModel.getSource();\n var dimensions = prepareSeriesDataSchema(source, opt).dimensions;\n var list = new SeriesData(dimensions, seriesModel);\n list.initData(source, nameList);\n return list;\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/**\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*/\n/**\n * LegendVisualProvider is an bridge that pick encoded color from data and\n * provide to the legend component.\n */\nvar LegendVisualProvider = /** @class */function () {\n function LegendVisualProvider(\n // Function to get data after filtered. It stores all the encoding info\n getDataWithEncodedVisual,\n // Function to get raw data before filtered.\n getRawData) {\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n this._getRawData = getRawData;\n }\n LegendVisualProvider.prototype.getAllNames = function () {\n var rawData = this._getRawData();\n // We find the name from the raw data. In case it's filtered by the legend component.\n // Normally, the name can be found in rawData, but can't be found in filtered data will display as gray.\n return rawData.mapArray(rawData.getName);\n };\n LegendVisualProvider.prototype.containName = function (name) {\n var rawData = this._getRawData();\n return rawData.indexOfName(name) >= 0;\n };\n LegendVisualProvider.prototype.indexOfName = function (name) {\n // Only get data when necessary.\n // Because LegendVisualProvider constructor may be new in the stage that data is not prepared yet.\n // Invoking Series#getData immediately will throw an error.\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n return dataWithEncodedVisual.indexOfName(name);\n };\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n // Get encoded visual properties from final filtered data.\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n };\n return LegendVisualProvider;\n}();\nexport default LegendVisualProvider;","\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 { __extends } from \"tslib\";\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nimport { getPercentSeats } from '../../util/number.js';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport SeriesModel from '../../model/Series.js';\nvar innerData = modelUtil.makeInner();\nvar PieSeriesModel = /** @class */function (_super) {\n __extends(PieSeriesModel, _super);\n function PieSeriesModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @overwrite\n */\n PieSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments);\n // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n this._defaultLabelLine(option);\n };\n /**\n * @overwrite\n */\n PieSeriesModel.prototype.mergeOption = function () {\n _super.prototype.mergeOption.apply(this, arguments);\n };\n /**\n * @overwrite\n */\n PieSeriesModel.prototype.getInitialData = function () {\n return createSeriesDataSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n };\n /**\n * @overwrite\n */\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n var data = this.getData();\n // update seats when data is changed\n var dataInner = innerData(data);\n var seats = dataInner.seats;\n if (!seats) {\n var valueList_1 = [];\n data.each(data.mapDimension('value'), function (value) {\n valueList_1.push(value);\n });\n seats = dataInner.seats = getPercentSeats(valueList_1, data.hostModel.get('percentPrecision'));\n }\n var params = _super.prototype.getDataParams.call(this, dataIndex);\n // seats may be empty when sum is 0\n params.percent = seats[dataIndex] || 0;\n params.$vars.push('percent');\n return params;\n };\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\n // Extend labelLine emphasis\n modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine;\n // Not show label line if `label.normal.show = false`\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n };\n PieSeriesModel.type = 'series.pie';\n PieSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n legendHoverLink: true,\n colorBy: 'data',\n // 默认全局居中\n center: ['50%', '50%'],\n radius: [0, '75%'],\n // 默认顺时针\n clockwise: true,\n startAngle: 90,\n endAngle: 'auto',\n padAngle: 0,\n // 最小角度改为0\n minAngle: 0,\n // If the angle of a sector less than `minShowLabelAngle`,\n // the label will not be displayed.\n minShowLabelAngle: 0,\n // 选中时扇区偏移量\n selectedOffset: 10,\n // 选择模式,默认关闭,可选single,multiple\n // selectedMode: false,\n // 南丁格尔玫瑰图模式,'radius'(半径) | 'area'(面积)\n // roseType: null,\n percentPrecision: 2,\n // If still show when all data zero.\n stillShowZeroSum: true,\n // cursor: null,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n width: null,\n height: null,\n label: {\n // color: 'inherit',\n // If rotate around circle\n rotate: 0,\n show: true,\n overflow: 'truncate',\n // 'outer', 'inside', 'center'\n position: 'outer',\n // 'none', 'labelLine', 'edge'. Works only when position is 'outer'\n alignTo: 'none',\n // Closest distance between label and chart edge.\n // Works only position is 'outer' and alignTo is 'edge'.\n edgeDistance: '25%',\n // Works only position is 'outer' and alignTo is not 'edge'.\n bleedMargin: 10,\n // Distance between text and label line.\n distanceToLabelLine: 5\n // formatter: 标签文本格式器,同 tooltip.formatter,不支持异步回调\n // 默认使用全局文本样式,详见 textStyle\n // distance: 当position为inner时有效,为label位置到圆心的距离与圆半径(环状图为内外半径和)的比例系数\n },\n\n // Enabled when label.normal.position is 'outer'\n labelLine: {\n show: true,\n // 引导线两段中的第一段长度\n length: 15,\n // 引导线两段中的第二段长度\n length2: 15,\n smooth: false,\n minTurnAngle: 90,\n maxSurfaceAngle: 90,\n lineStyle: {\n // color: 各异,\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n borderWidth: 1,\n borderJoin: 'round'\n },\n showEmptyCircle: true,\n emptyCircleStyle: {\n color: 'lightgray',\n opacity: 1\n },\n labelLayout: {\n // Hide the overlapped label.\n hideOverlap: true\n },\n emphasis: {\n scale: true,\n scaleSize: 5\n },\n // If use strategy to avoid label overlapping\n avoidLabelOverlap: true,\n // Animation type. Valid values: expansion, scale\n animationType: 'expansion',\n animationDuration: 1000,\n // Animation type when update. Valid values: transition, expansion\n animationTypeUpdate: 'transition',\n animationEasingUpdate: 'cubicInOut',\n animationDurationUpdate: 500,\n animationEasing: 'cubicInOut'\n };\n return PieSeriesModel;\n}(SeriesModel);\nexport default PieSeriesModel;","\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 { isNumber } from 'zrender/lib/core/util.js';\nexport default function negativeDataFilter(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n data.filterSelf(function (idx) {\n // handle negative value condition\n var valueDim = data.mapDimension('value');\n var curValue = data.get(valueDim, idx);\n if (isNumber(curValue) && !isNaN(curValue) && curValue < 0) {\n return false;\n }\n return true;\n });\n }\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*/\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 { createLegacyDataSelectAction } from '../../legacy/dataSelectAction.js';\nimport pieLayout from '../pie/pieLayout.js';\nimport dataFilter from '../../processor/dataFilter.js';\nimport { curry } from 'zrender/lib/core/util.js';\nimport PieView from './PieView.js';\nimport PieSeriesModel from './PieSeries.js';\nimport negativeDataFilter from '../../processor/negativeDataFilter.js';\nexport function install(registers) {\n registers.registerChartView(PieView);\n registers.registerSeriesModel(PieSeriesModel);\n createLegacyDataSelectAction('pie', registers.registerAction);\n registers.registerLayout(curry(pieLayout, 'pie'));\n registers.registerProcessor(dataFilter('pie'));\n registers.registerProcessor(negativeDataFilter('pie'));\n}","@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n position: relative;\n width: 100%;\n display: block;\n}\n\n.container {\n aspect-ratio: 1 / 1;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n}\n\n.chart-container {\n width: 100%;\n height: 100%;\n\n --comp-color-1: #{var-list(var-prefixer(chart-donut-color-1), --t-accent-1, #e05252)};\n --comp-color-2: #{var-list(var-prefixer(chart-donut-color-2), --t-accent-2, #e09952)};\n --comp-color-3: #{var-list(var-prefixer(chart-donut-color-3), --t-accent-3, #e0e052)};\n --comp-color-4: #{var-list(var-prefixer(chart-donut-color-4), --t-accent-4, #99e052)};\n --comp-color-5: #{var-list(var-prefixer(chart-donut-color-5), --t-accent-5, #52e052)};\n --comp-color-6: #{var-list(var-prefixer(chart-donut-color-6), --t-accent-6, #52e099)};\n --comp-color-7: #{var-list(var-prefixer(chart-donut-color-7), --t-accent-7, #52e0e0)};\n --comp-color-8: #{var-list(var-prefixer(chart-donut-color-8), --t-accent-8, #5299e0)};\n --comp-color-9: #{var-list(var-prefixer(chart-donut-color-9), --t-accent-9, #5252e0)};\n --comp-color-10: #{var-list(var-prefixer(chart-donut-color-10), --t-accent-10, #9952e0)};\n --comp-color-11: #{var-list(var-prefixer(chart-donut-color-11), --t-accent-11, #e052e0)};\n --comp-color-12: #{var-list(var-prefixer(chart-donut-color-12), --t-accent-12, #e05299)};\n}\n\n.chart-container,\n.center-card {\n --comp-background-color: #{var-list(var-prefixer(chart-donut-border-color), --t-base, #ffffff)};\n}\n\nbutton {\n --comp-button-padding: #{var-list(\n --tct-chart-donut-button-padding,\n unquote('#{var-list(var-prefixer(chart-donut-button-vertical-padding), --app-scale-1x, 5px)} 0')\n )};\n\n transition: box-shadow #{var-list(var-prefixer(chart-donut-button-tween), --app-tween-1, unquote('0.2s ease'))};\n padding: var(--comp-button-padding);\n &:active {\n box-shadow: var(--const-double-focus-ring),\n #{var-list(\n var-prefixer(chart-donut-button-hover-box-shadow),\n --app-shadow-1,\n unquote(\"0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)\")\n )};\n }\n &:hover {\n box-shadow: #{var-list(\n var-prefixer(chart-donut-button-hover-box-shadow),\n --app-shadow-1,\n unquote(\"0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)\")\n )};\n }\n &:focus {\n box-shadow: var(--const-double-focus-ring),\n #{var-list(\n var-prefixer(chart-donut-button-hover-box-shadow),\n --app-shadow-1,\n unquote(\"0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)\")\n )};\n }\n}\n\n.center-card-container {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n padding: var-list(var-prefixer(chart-donut-button-container-padding), --app-scale-1x, 5px);\n}\n\n.center-card {\n width: 100%;\n text-align: center;\n color: #{var-list(var-prefixer(chart-donut-text-color), --t-text, #4d4d4d)};\n margin-inline: auto;\n display: block;\n\n &:is(button) {\n cursor: pointer;\n background: var(--comp-background-color);\n border: 0;\n border-radius: #{var-list(var-prefixer(chart-donut-button-border-radius), --app-border-radius-1, 4px)};\n }\n}\n\nq2-icon {\n --tct-icon-size: #{var-list(var-prefixer(chart-donut-icon-size), 26px)};\n --comp-icon-margin: #{var-list(\n --tct-chart-donut-icon-margin,\n unquote('0 0 #{var-list(var-prefixer(chart-donut-icon-margin-bottom), --app-scale-1x, 5px)}')\n )};\n margin: var(--comp-icon-margin);\n}\n\n.name {\n font-size: #{var-list(var-prefixer(chart-donut-name-font-size), 14px)};\n}\n\n.value {\n font-size: #{var-list(var-prefixer(chart-donut-value-font-size), 21px)};\n}\n\nfigure {\n margin: 0;\n}\n\n.legend {\n margin-top: #{var-list(--tct-chart-donut-legend-margin-top, --app-scale-0x, 0)};\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Element,\n EventEmitter,\n Event,\n Method,\n Watch,\n Listen,\n} from '@stencil/core';\nimport * as echarts from 'echarts/core';\nimport { EChartsCoreOption } from 'echarts/types/dist/core';\nimport {\n TooltipComponent,\n TooltipComponentOption,\n LegendComponent,\n AriaComponent,\n AriaComponentOption,\n LegendComponentOption,\n} from 'echarts/components';\nimport { PieChart, PieSeriesOption } from 'echarts/charts';\nimport { LabelLayout } from 'echarts/features';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { isEventFromElement, isMobile, loc, overrideFocus } from 'src/utils';\nimport { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\nimport { getCSSProperty } from 'src/utils/charting';\n\necharts.use([TooltipComponent, LegendComponent, PieChart, CanvasRenderer, AriaComponent, LabelLayout]);\ntype EChartsOption = echarts.ComposeOption<\n TooltipComponentOption | LegendComponentOption | AriaComponentOption | PieSeriesOption\n>;\n@Component({ tag: 'q2-chart-donut', shadow: true, styleUrl: 'q2-chart-donut.scss' })\nexport class Q2ChartDonut implements ComponentInterface {\n // #region Own Properties\n\n btnElement: HTMLDivElement;\n centerButtonElement: HTMLButtonElement;\n chart: echarts.ECharts;\n chartContainer: HTMLDivElement;\n chartContainerStyles: CSSStyleDeclaration;\n colors: string[];\n defaultRecord = { id: null, value: null, name: null };\n hostElementStyles: CSSStyleDeclaration;\n isInChangeEvent: boolean;\n resizeObserver: ResizeObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n hoveredId: string;\n\n @State()\n legendData: IDonutChartData[];\n\n // #endregion\n // #region Public Property API\n\n /**\n * The title of the chart. We recommend always including this for accessibility purposes.\n *\n * It is hidden by default, but can be made visible with the `showChartName` variable.\n * @localizable\n */\n @Prop({ reflect: true })\n chartName: string;\n\n /** An array of objects that contain the data to be displayed. */\n @Prop()\n data: IDonutChartData[] = [];\n\n /** Controls whether values on the value axis are shown as numbers or as currency. */\n @Prop({ reflect: true })\n format: 'currency' | 'default';\n\n /** The amount which the slice will scale when hovered. */\n @Prop()\n hoverScaleSize: number = 5;\n\n /**\n * The inner radius of the chart slices which is represeted by a percentage of the radius.\n *\n * @warning\n * If you update this property to be greater than or equal to the `outerRadius`,\n * we automatically set it to be 15% less than the current `outerRadius` to prevent display issues.\n */\n @Prop({ mutable: true })\n innerRadius: string = '70%';\n\n /**\n * Determine whether the data in the center renders inside a button element.\n *\n * @info\n * This also enables extra keyboard controls when the button is focused.\n */\n @Prop({ reflect: true })\n isClickable: boolean;\n\n /** The minimum size of the chart slizes which is represented as a percentage of the circumferences. */\n @Prop()\n minSliceSize: string = '2.5%';\n\n /**\n * The outer radius of the chart slices which is represented by a percentage of the radius.\n *\n * @warning\n * If you update this property to be less than or equal to the `innerRadius`,\n * we automatically set it to be 15% greater than the current `innerRadius` to prevent display issues.\n */\n @Prop({ mutable: true })\n outerRadius: string = '85%';\n\n /** The id of the data point that is currently selected in the chart. You may set this to pre-select a data point on render, or force a selection change. */\n @Prop({ mutable: true })\n selectedId: string;\n\n /** The amount which the slice will separate from the chart when selected. */\n @Prop()\n selectedOffset: number = 10;\n\n /**\n * Determines whether the legend is displayed.\n *\n * @info\n * The legend is a list of the data points in the chart and their colors.\n */\n @Prop({ reflect: true })\n showLegend: boolean = false;\n\n /** The icon that displays by default when no slices are selected. */\n @Prop({ reflect: true })\n summaryIcon: string;\n\n /**\n * The name that displays by default when no slices are selected.\n * @localizable\n */\n @Prop({ reflect: true })\n summaryName: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a slice is selected.\n */\n @Event()\n change: EventEmitter<IDonutChartData>;\n\n /**\n * Emitted when the center button is clicked.\n *\n * Requires the `isClickable` prop to be set to `true`.\n */\n @Event()\n click: EventEmitter<IDonutChartData>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n componentDidLoad(): void {\n const chart = echarts.init(this.chartContainer);\n\n this.cacheComputedStyles();\n this.colors = this.getColors();\n\n this.resizeObserver = new ResizeObserver(() => this.resizeChart());\n this.resizeObserver.observe(this.hostElement);\n\n this.updateChart(chart);\n this.setupChartEvents(chart);\n this.checkSelectedId();\n\n this.chart = chart;\n this.setLegendData();\n this.selectById(this.selectedId);\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n if (!this.isClickable) return;\n this.centerButtonElement?.focus();\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Clears any selected slice.\n */\n @Method()\n async clearSelection() {\n const { selectedId } = this;\n if (!selectedId) return;\n\n this.chart.dispatchAction({\n type: 'unselect',\n seriesId: 'pie',\n dataIndex: this.getIndexById(selectedId),\n });\n }\n\n /**\n * Returns the chart instance for e2e testing.\n *\n * @testOnly\n */\n @Method()\n async getChartOptions(): Promise<EChartsCoreOption> {\n return this.chart.getOption();\n }\n\n /**\n * Selects a slice by its provided `id` in the provided `data`.\n */\n @Method()\n async selectById(id: string) {\n const dataIndex = this.getIndexById(id);\n if (dataIndex === -1) return;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex,\n });\n }\n\n /**\n * Selects a slice by its index in the provided `data`.\n */\n @Method()\n async selectByIndex(index: number) {\n const dataIndex = this.data[index] ? index : null;\n if (!dataIndex) return;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex,\n });\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('chartName')\n @Watch('innerRadius')\n @Watch('outerRadius')\n @Watch('minSliceSize')\n @Watch('hoverScaleSize')\n @Watch('selectedOffset')\n propsUpdates() {\n this.updateChart(this.chart);\n }\n\n @Watch('data')\n dataUpdated() {\n this.colors = this.getColors();\n this.updateChart(this.chart);\n this.setLegendData();\n }\n\n @Watch('innerRadius')\n innerRadiusUpdated() {\n const { innerRadius, outerRadius } = this;\n const innerRadiusInt = parseFloat(innerRadius);\n const outerRadiusInt = parseFloat(outerRadius);\n if (innerRadiusInt >= outerRadiusInt) {\n this.innerRadius = `${outerRadiusInt - 15}%`;\n }\n }\n\n @Watch('outerRadius')\n outerRadiusUpdated() {\n const { innerRadius, outerRadius } = this;\n const innerRadiusInt = parseFloat(innerRadius);\n const outerRadiusInt = parseFloat(outerRadius);\n if (outerRadiusInt <= innerRadiusInt) {\n this.outerRadius = `${innerRadiusInt + 15}%`;\n }\n }\n\n /**\n * Function to detect and set a data range (category) as selected\n * Logic for when legends are present, and can set selectedId when ledgend category is clicked\n * Also can be used by dev to preset\n */\n @Watch('selectedId')\n checkSelectedId() {\n if (!!this.selectedId) {\n this.hoveredId = this.selectedId;\n // Dispatch action only to be fired when chart is rendered\n if (this.chart) {\n this.selectById(this.selectedId);\n }\n } else {\n // Dispatch action only to be fired when chart is rendered\n if (this.chart) {\n this.chart.dispatchAction({\n type: 'unselect',\n seriesId: 'pie',\n dataIndex: this.getIndexById(this.hoveredId),\n });\n }\n this.hoveredId = null;\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get centerData() {\n const { hoveredId, data } = this;\n const idToDisplay = hoveredId;\n const index = this.getIndexById(idToDisplay);\n\n return idToDisplay\n ? { ...this.getDataById(idToDisplay), color: this.colors[index] }\n : {\n name: loc(this.summaryName || 'tecton.element.chartDonut.button.summaryName'),\n icon: this.summaryIcon,\n value: data.reduce((acc, cur) => acc + cur.value, 0),\n color: null,\n };\n }\n\n get isMobile(): boolean {\n return isMobile();\n }\n\n get legendHoveredId() {\n return this.hoveredId === this.selectedId ? null : this.hoveredId;\n }\n\n cacheComputedStyles() {\n this.chartContainerStyles = getComputedStyle(this.chartContainer);\n this.hostElementStyles = getComputedStyle(this.hostElement);\n }\n\n displayValue(value: string | number) {\n const valueAsFloat = parseFloat(value.toString());\n if (isNaN(valueAsFloat)) return;\n\n if (this.format === 'currency') {\n return Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(valueAsFloat);\n } else {\n return Intl.NumberFormat('en-US').format(valueAsFloat);\n }\n }\n\n getColors() {\n const defaultColors = [1, 3, 8, 4, 2, 10, 7, 11, 6, 9, 12, 5].map(e => `--comp-color-${e}`);\n return this.data.reduce((acc, cur, idx) => {\n let color = defaultColors[idx % defaultColors.length];\n if (cur.color) color = cur.color;\n\n acc.push(getCSSProperty(color, this.chartContainerStyles, this.hostElementStyles) || color);\n return acc;\n }, []);\n }\n\n getCSSProperty(name: string) {\n let fallback;\n if (name.startsWith('var(') && name.endsWith(')')) {\n const regExp = /var\\((.*)\\)/g;\n const result = regExp.exec(name);\n const split = result.length >= 2 ? result[1].split(',') : [];\n name = split[0];\n fallback = split[1];\n }\n let result = this.chartContainerStyles.getPropertyValue(name).trim();\n if (!result) result = this.hostElementStyles.getPropertyValue(name).trim();\n return result || fallback;\n }\n\n getDataById(id: string) {\n if (!id) return;\n return this.data.find(item => item.id === id);\n }\n\n getDataByIndex(index: number) {\n if (typeof index !== 'number') return;\n return this.data[index];\n }\n\n getDataIndexForId(id: string) {\n return this.data.findIndex(item => item.id === id);\n }\n\n getIndexById(id: string) {\n return this.data.findIndex(item => item.id === id);\n }\n\n getMinSliceSizeAsAngle() {\n return (parseFloat(this.minSliceSize) / 100) * 360;\n }\n\n onButtonClick = (event: MouseEvent) => {\n event.stopPropagation();\n\n const { selectedId } = this;\n const data = selectedId ? this.getDataById(selectedId) : { ...this.defaultRecord };\n this.click.emit(data);\n };\n\n onButtonKeyDown = (event: KeyboardEvent) => {\n const { selectedId, data } = this;\n let selectedIndex = this.getIndexById(selectedId) || 0;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n selectedIndex--;\n if (selectedIndex < 0) selectedIndex = data.length - 1;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: selectedIndex,\n });\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n selectedIndex++;\n if (selectedIndex > data.length - 1) selectedIndex = 0;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: selectedIndex,\n });\n break;\n\n case 'Escape':\n this.clearSelection();\n break;\n\n case ' ':\n event.preventDefault();\n break;\n\n default:\n return;\n }\n };\n\n onClickElsewhere = (event: Event) => {\n event.stopPropagation();\n this.clearSelection();\n };\n\n onContainerClick = (event: Event) => {\n if (this.isInChangeEvent) return;\n if (!(event.target instanceof HTMLElement)) return;\n this.clearSelection();\n event.stopPropagation();\n };\n\n onLegendClick = event => {\n event.stopPropagation();\n if (event.detail) {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.selectedId = event.detail.id;\n this.chart.dispatchAction({\n type: 'select',\n seriesIndex: 0,\n dataIndex,\n });\n } else {\n const dataIndex = this.getDataIndexForId(this.selectedId);\n this.hoveredId = this.selectedId;\n this.selectedId = null;\n this.chart.dispatchAction({\n type: 'unselect',\n seriesIndex: 0,\n dataIndex,\n });\n }\n };\n\n onLegendMouseenter = event => {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.hoveredId = event.detail.id;\n this.chart.dispatchAction({\n type: 'highlight',\n seriesIndex: 0,\n dataIndex,\n });\n };\n\n onLegendMouseleave = event => {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.hoveredId = this.selectedId;\n this.chart.dispatchAction({\n type: 'downplay',\n seriesIndex: 0,\n dataIndex,\n });\n };\n\n resizeChart() {\n this.chart.resize();\n }\n\n setLegendData() {\n const chartColors = this.chart.getOption().series[0].color;\n this.legendData = this.data.map((item, index) => {\n const newItem = { ...item };\n if (!newItem.color) newItem.color = chartColors[index];\n\n return newItem;\n });\n }\n\n // Edit with caution. Echarts does not interpret events the same on mobile.\n setupChartEvents(chart: echarts.ECharts) {\n if (!this.isMobile) {\n chart.on('mouseover', (params: any) => {\n this.hoveredId = params.data.id;\n });\n chart.on('mouseout', () => {\n this.hoveredId = this.selectedId;\n });\n }\n chart.on('click', params => {\n params.event.stop();\n });\n chart.on('selectchanged', (params: any) => {\n const selectedIndex = params.selected?.[0]?.dataIndex?.[0] ?? null;\n const data =\n typeof selectedIndex === 'number' ? this.getDataByIndex(selectedIndex) : { ...this.defaultRecord };\n this.selectedId = data.id;\n this.isInChangeEvent = true;\n this.change.emit(data);\n setTimeout(() => {\n this.isInChangeEvent = false;\n }, 0);\n });\n chart.on('finished', () => {\n const canvas = chart.getDom().querySelector('canvas');\n if (canvas?.hasAttribute('aria-hidden') ?? false) return;\n canvas.setAttribute('aria-hidden', 'true');\n });\n }\n\n validateColor() {\n // check if there is name duplicated, then custom style using `itemStyle` object will be used.\n if (\n this.data.length >\n Object.keys(\n this.data.reduce((acc, cur) => {\n acc[cur.name] = cur.name;\n return acc;\n }, {})\n ).length\n ) {\n this.data.forEach((el, i) => {\n el.itemStyle = { ...el.itemStyle, color: el.color || this.colors[i] };\n });\n }\n }\n\n updateChart(chart: echarts.ECharts) {\n this.validateColor();\n return chart.setOption<EChartsOption>({\n tooltip: {\n show: false,\n },\n legend: {\n show: false,\n },\n aria: {\n enabled: true,\n },\n series: [\n {\n name: this.chartName,\n animationType: 'scale',\n color: this.colors,\n id: 'pie',\n type: 'pie',\n selectedOffset: this.selectedOffset,\n selectedMode: 'single',\n radius: [this.innerRadius, this.outerRadius],\n label: {\n show: false,\n },\n labelLine: {\n show: false,\n },\n itemStyle: {\n borderWidth: 5,\n borderColor: getCSSProperty(\n '--comp-background-color',\n this.chartContainerStyles,\n this.hostElementStyles\n ),\n },\n emphasis: {\n disabled: this.isMobile,\n scaleSize: this.hoverScaleSize,\n itemStyle: {\n color: 'inherit',\n },\n },\n minAngle: this.getMinSliceSizeAsAngle(),\n data: this.data,\n },\n ],\n });\n }\n\n // #endregion\n // #region Test Methods API\n\n /**\n * A method to select a slice with index.\n *\n * @testOnly\n */\n @Method()\n async selectDataPoint(index: number) {\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: index,\n });\n }\n // #endregion\n // #region Render Methods\n\n renderCenterBlock() {\n const { icon, name, value, color } = this.centerData;\n const { isClickable } = this;\n const TagName = isClickable ? 'button' : 'div';\n const displayValue = this.displayValue(value);\n\n const props = isClickable\n ? {\n onKeyDown: this.onButtonKeyDown,\n onClick: this.onButtonClick,\n ref: el => (this.centerButtonElement = el),\n 'aria-describedby': 'center-card-description',\n 'aria-roledescription': loc('tecton.element.chartDonut.button.roleDescription'),\n }\n : null;\n\n return (\n <div\n class=\"center-card-container\"\n style={{ width: `calc(${this.innerRadius} - 10%)` }}\n >\n <div\n id=\"center-card-description\"\n class=\"sr\"\n >\n {loc('tecton.element.chartDonut.button.description')}\n </div>\n <TagName\n class=\"center-card\"\n test-id=\"centerCard\"\n {...props}\n >\n {!!icon && (\n <q2-icon\n type={icon}\n style={\n color && {\n '--tct-icon-stroke-primary': color,\n '--tct-icon-stroke-secondary': color,\n color,\n }\n }\n ></q2-icon>\n )}\n {!!name && <div class=\"name\">{name}</div>}\n {!isNaN(value) && <div class=\"value\">{displayValue}</div>}\n </TagName>\n </div>\n );\n }\n\n render() {\n return (\n <click-elsewhere onChange={this.onClickElsewhere}>\n <figure>\n <div class=\"container\">\n <div\n ref={el => (this.chartContainer = el)}\n aria-describedby={!this.isClickable ? 'center-card-description' : undefined}\n class=\"chart-container\"\n role=\"img\"\n test-id=\"chartContainer\"\n onClick={this.onContainerClick}\n tabIndex={!this.isClickable ? 0 : undefined}\n onKeyDown={!this.isClickable ? this.onButtonKeyDown : undefined}\n ></div>\n {this.renderCenterBlock()}\n </div>\n {this.showLegend && (\n <figcaption>\n <q2-legend\n class=\"legend\"\n data={this.legendData}\n format={this.format}\n hoveredItemId={this.legendHoveredId}\n onClick={this.onLegendClick}\n onMouseleave={this.onLegendMouseleave}\n onMouseenter={this.onLegendMouseenter}\n selectedItemId={this.selectedId}\n />\n </figcaption>\n )}\n </figure>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"version":3}
|
|
1
|
+
{"file":"q2-chart-donut.entry.js","mappings":"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","names":["formatUtil.normalizeCssArray","graphic.Rect","getComputedStyle","each","makeStyleCoord","zrUtil.isObject","zrUtil.each","zrUtil.bind","TooltipRichContent","TooltipHTMLContent","globalListener.register","axisPointerViewHelper.getValueLabel","axisHelper.getAxisRawValue","timeFormat","globalListener.unregister","install","installAxisPointer","TooltipModel","TooltipView","zrUtil.isArray","zrUtil.isString","zrUtil.merge","zrUtil.createHashMap","zrUtil.map","zrUtil.isNumber","zrUtil.filter","zrUtil.indexOf","zrUtil.curry","Group","graphic.Group","layoutUtil.getLayoutRect","zrUtil.defaults","zrUtil.extend","graphic.Text","zrUtil.isFunction","graphic.setTooltipConfig","layoutUtil.box","curry","LegendModel","LegendView","graphic.createIcon","zrUtil.clone","zrUtil.retrieve2","graphic.updateProps","installLegendPlain","ScrollableLegendModel","ScrollableLegendView","installLegendScroll","RADIAN","layout.getLayoutRect","graphic.initProps","graphic.Polyline","graphic.Sector","graphic.removeElementWithFadeOut","labelLayout","modelUtil.makeInner","LegendVisualProvider","modelUtil.defaultEmphasis","PieView","PieSeriesModel","echarts.use","TooltipComponent","LegendComponent","PieChart","CanvasRenderer","AriaComponent","LabelLayout","echarts.init"],"sources":["../../node_modules/echarts/lib/component/helper/listComponent.js","../../node_modules/echarts/lib/component/tooltip/TooltipModel.js","../../node_modules/echarts/lib/component/tooltip/helper.js","../../node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js","../../node_modules/echarts/lib/component/tooltip/TooltipRichContent.js","../../node_modules/echarts/lib/component/tooltip/TooltipView.js","../../node_modules/echarts/lib/component/tooltip/install.js","../../node_modules/echarts/lib/component/legend/LegendModel.js","../../node_modules/echarts/lib/component/legend/LegendView.js","../../node_modules/echarts/lib/component/legend/legendFilter.js","../../node_modules/echarts/lib/component/legend/legendAction.js","../../node_modules/echarts/lib/component/legend/installLegendPlain.js","../../node_modules/echarts/lib/component/legend/ScrollableLegendModel.js","../../node_modules/echarts/lib/component/legend/ScrollableLegendView.js","../../node_modules/echarts/lib/component/legend/scrollableLegendAction.js","../../node_modules/echarts/lib/component/legend/installLegendScroll.js","../../node_modules/echarts/lib/component/legend/install.js","../../node_modules/echarts/lib/chart/pie/pieLayout.js","../../node_modules/echarts/lib/processor/dataFilter.js","../../node_modules/echarts/lib/chart/pie/labelLayout.js","../../node_modules/echarts/lib/chart/pie/PieView.js","../../node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js","../../node_modules/echarts/lib/visual/LegendVisualProvider.js","../../node_modules/echarts/lib/chart/pie/PieSeries.js","../../node_modules/echarts/lib/processor/negativeDataFilter.js","../../node_modules/echarts/lib/chart/pie/install.js","src/components/q2-chart-donut/q2-chart-donut.scss?tag=q2-chart-donut&encapsulation=shadow","src/components/q2-chart-donut/q2-chart-donut.tsx"],"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*/\n// @ts-nocheck\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout.js';\nimport * as formatUtil from '../../util/format.js';\nimport * as graphic from '../../util/graphic.js';\n/**\n * Layout list like component.\n * It will box layout each items in group of component and then position the whole group in the viewport\n * @param {module:zrender/group/Group} group\n * @param {module:echarts/model/Component} componentModel\n * @param {module:echarts/ExtensionAPI}\n */\nexport function layout(group, componentModel, api) {\n var boxLayoutParams = componentModel.getBoxLayoutParams();\n var padding = componentModel.get('padding');\n var viewportSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n var style = componentModel.getItemStyle(['color', 'opacity']);\n style.fill = componentModel.get('backgroundColor');\n rect = new graphic.Rect({\n shape: {\n x: rect.x - padding[3],\n y: rect.y - padding[0],\n width: rect.width + padding[1] + padding[3],\n height: rect.height + padding[0] + padding[2],\n r: componentModel.get('borderRadius')\n },\n style: style,\n silent: true,\n z2: -1\n });\n // FIXME\n // `subPixelOptimizeRect` may bring some gap between edge of viewpart\n // and background rect when setting like `left: 0`, `top: 0`.\n // graphic.subPixelOptimizeRect(rect);\n return rect;\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/**\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 { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\nvar TooltipModel = /** @class */function (_super) {\n __extends(TooltipModel, _super);\n function TooltipModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = TooltipModel.type;\n return _this;\n }\n TooltipModel.type = 'tooltip';\n TooltipModel.dependencies = ['axisPointer'];\n TooltipModel.defaultOption = {\n // zlevel: 0,\n z: 60,\n show: true,\n // tooltip main content\n showContent: true,\n // 'trigger' only works on coordinate system.\n // 'item' | 'axis' | 'none'\n trigger: 'item',\n // 'click' | 'mousemove' | 'none'\n triggerOn: 'mousemove|click',\n alwaysShowContent: false,\n displayMode: 'single',\n renderMode: 'auto',\n // whether restraint content inside viewRect.\n // If renderMode: 'richText', default true.\n // If renderMode: 'html', defaut false (for backward compat).\n confine: null,\n showDelay: 0,\n hideDelay: 100,\n // Animation transition time, unit is second\n transitionDuration: 0.4,\n enterable: false,\n backgroundColor: '#fff',\n // box shadow\n shadowBlur: 10,\n shadowColor: 'rgba(0, 0, 0, .2)',\n shadowOffsetX: 1,\n shadowOffsetY: 2,\n // tooltip border radius, unit is px, default is 4\n borderRadius: 4,\n // tooltip border width, unit is px, default is 0 (no border)\n borderWidth: 1,\n // Tooltip inside padding, default is 5 for all direction\n // Array is allowed to set up, right, bottom, left, same with css\n // The default value: See `tooltip/tooltipMarkup.ts#getPaddingFromTooltipModel`.\n padding: null,\n // Extra css text\n extraCssText: '',\n // axis indicator, trigger by axis\n axisPointer: {\n // default is line\n // legal values: 'line' | 'shadow' | 'cross'\n type: 'line',\n // Valid when type is line, appoint tooltip line locate on which line. Optional\n // legal values: 'x' | 'y' | 'angle' | 'radius' | 'auto'\n // default is 'auto', chose the axis which type is category.\n // for multiply y axis, cartesian coord chose x axis, polar chose angle axis\n axis: 'auto',\n animation: 'auto',\n animationDurationUpdate: 200,\n animationEasingUpdate: 'exponentialOut',\n crossStyle: {\n color: '#999',\n width: 1,\n type: 'dashed',\n // TODO formatter\n textStyle: {}\n }\n // lineStyle and shadowStyle should not be specified here,\n // otherwise it will always override those styles on option.axisPointer.\n },\n\n textStyle: {\n color: '#666',\n fontSize: 14\n }\n };\n return TooltipModel;\n}(ComponentModel);\nexport default TooltipModel;","\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 { toCamelCase } from '../../util/format.js';\nimport env from 'zrender/lib/core/env.js';\n/* global document */\nexport function shouldTooltipConfine(tooltipModel) {\n var confineOption = tooltipModel.get('confine');\n return confineOption != null ? !!confineOption\n // In richText mode, the outside part can not be visible.\n : tooltipModel.get('renderMode') === 'richText';\n}\nfunction testStyle(styleProps) {\n if (!env.domSupported) {\n return;\n }\n var style = document.documentElement.style;\n for (var i = 0, len = styleProps.length; i < len; i++) {\n if (styleProps[i] in style) {\n return styleProps[i];\n }\n }\n}\nexport var TRANSFORM_VENDOR = testStyle(['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']);\nexport var TRANSITION_VENDOR = testStyle(['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);\nexport function toCSSVendorPrefix(styleVendor, styleProp) {\n if (!styleVendor) {\n return styleProp;\n }\n styleProp = toCamelCase(styleProp, true);\n var idx = styleVendor.indexOf(styleProp);\n styleVendor = idx === -1 ? styleProp : \"-\" + styleVendor.slice(0, idx) + \"-\" + styleProp;\n return styleVendor.toLowerCase();\n}\nexport function getComputedStyle(el, style) {\n var stl = el.currentStyle || document.defaultView && document.defaultView.getComputedStyle(el);\n return stl ? style ? stl[style] : stl : null;\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/**\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 { isString, indexOf, each, bind, isFunction, isArray, isDom } from 'zrender/lib/core/util.js';\nimport { normalizeEvent } from 'zrender/lib/core/event.js';\nimport { transformLocalCoord } from 'zrender/lib/core/dom.js';\nimport env from 'zrender/lib/core/env.js';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format.js';\nimport { shouldTooltipConfine, toCSSVendorPrefix, getComputedStyle, TRANSFORM_VENDOR, TRANSITION_VENDOR } from './helper.js';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup.js';\n/* global document, window */\nvar CSS_TRANSITION_VENDOR = toCSSVendorPrefix(TRANSITION_VENDOR, 'transition');\nvar CSS_TRANSFORM_VENDOR = toCSSVendorPrefix(TRANSFORM_VENDOR, 'transform');\n// eslint-disable-next-line\nvar gCssText = \"position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;\" + (env.transform3dSupported ? 'will-change:transform;' : '');\nfunction mirrorPos(pos) {\n pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n return pos;\n}\nfunction assembleArrow(tooltipModel, borderColor, arrowPosition) {\n if (!isString(arrowPosition) || arrowPosition === 'inside') {\n return '';\n }\n var backgroundColor = tooltipModel.get('backgroundColor');\n var borderWidth = tooltipModel.get('borderWidth');\n borderColor = convertToColorString(borderColor);\n var arrowPos = mirrorPos(arrowPosition);\n var arrowSize = Math.max(Math.round(borderWidth) * 1.5, 6);\n var positionStyle = '';\n var transformStyle = CSS_TRANSFORM_VENDOR + ':';\n var rotateDeg;\n if (indexOf(['left', 'right'], arrowPos) > -1) {\n positionStyle += 'top:50%';\n transformStyle += \"translateY(-50%) rotate(\" + (rotateDeg = arrowPos === 'left' ? -225 : -45) + \"deg)\";\n } else {\n positionStyle += 'left:50%';\n transformStyle += \"translateX(-50%) rotate(\" + (rotateDeg = arrowPos === 'top' ? 225 : 45) + \"deg)\";\n }\n var rotateRadian = rotateDeg * Math.PI / 180;\n var arrowWH = arrowSize + borderWidth;\n var rotatedWH = arrowWH * Math.abs(Math.cos(rotateRadian)) + arrowWH * Math.abs(Math.sin(rotateRadian));\n var arrowOffset = Math.round(((rotatedWH - Math.SQRT2 * borderWidth) / 2 + Math.SQRT2 * borderWidth - (rotatedWH - arrowWH) / 2) * 100) / 100;\n positionStyle += \";\" + arrowPos + \":-\" + arrowOffset + \"px\";\n var borderStyle = borderColor + \" solid \" + borderWidth + \"px;\";\n var styleCss = [\"position:absolute;width:\" + arrowSize + \"px;height:\" + arrowSize + \"px;z-index:-1;\", positionStyle + \";\" + transformStyle + \";\", \"border-bottom:\" + borderStyle, \"border-right:\" + borderStyle, \"background-color:\" + backgroundColor + \";\"];\n return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\n}\nfunction assembleTransition(duration, onlyFade) {\n var transitionCurve = 'cubic-bezier(0.23,1,0.32,1)';\n var transitionOption = \" \" + duration / 2 + \"s \" + transitionCurve;\n var transitionText = \"opacity\" + transitionOption + \",visibility\" + transitionOption;\n if (!onlyFade) {\n transitionOption = \" \" + duration + \"s \" + transitionCurve;\n transitionText += env.transformSupported ? \",\" + CSS_TRANSFORM_VENDOR + transitionOption : \",left\" + transitionOption + \",top\" + transitionOption;\n }\n return CSS_TRANSITION_VENDOR + ':' + transitionText;\n}\nfunction assembleTransform(x, y, toString) {\n // If using float on style, the final width of the dom might\n // keep changing slightly while mouse move. So `toFixed(0)` them.\n var x0 = x.toFixed(0) + 'px';\n var y0 = y.toFixed(0) + 'px';\n // not support transform, use `left` and `top` instead.\n if (!env.transformSupported) {\n return toString ? \"top:\" + y0 + \";left:\" + x0 + \";\" : [['top', y0], ['left', x0]];\n }\n // support transform\n var is3d = env.transform3dSupported;\n var translate = \"translate\" + (is3d ? '3d' : '') + \"(\" + x0 + \",\" + y0 + (is3d ? ',0' : '') + \")\";\n return toString ? 'top:0;left:0;' + CSS_TRANSFORM_VENDOR + ':' + translate + ';' : [['top', 0], ['left', 0], [TRANSFORM_VENDOR, translate]];\n}\n/**\n * @param {Object} textStyle\n * @return {string}\n * @inner\n */\nfunction assembleFont(textStyleModel) {\n var cssText = [];\n var fontSize = textStyleModel.get('fontSize');\n var color = textStyleModel.getTextColor();\n color && cssText.push('color:' + color);\n cssText.push('font:' + textStyleModel.getFont());\n fontSize\n // @ts-ignore, leave it to the tooltip refactor.\n && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n var shadowColor = textStyleModel.get('textShadowColor');\n var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n each(['decoration', 'align'], function (name) {\n var val = textStyleModel.get(name);\n val && cssText.push('text-' + name + ':' + val);\n });\n return cssText.join(';');\n}\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n var cssText = [];\n var transitionDuration = tooltipModel.get('transitionDuration');\n var backgroundColor = tooltipModel.get('backgroundColor');\n var shadowBlur = tooltipModel.get('shadowBlur');\n var shadowColor = tooltipModel.get('shadowColor');\n var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n var textStyleModel = tooltipModel.getModel('textStyle');\n var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n cssText.push('box-shadow:' + boxShadow);\n // Animation transition. Do not animate when transitionDuration is 0.\n enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n if (backgroundColor) {\n cssText.push('background-color:' + backgroundColor);\n }\n // Border style\n each(['width', 'color', 'radius'], function (name) {\n var borderName = 'border-' + name;\n var camelCase = toCamelCase(borderName);\n var val = tooltipModel.get(camelCase);\n val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n });\n // Text style\n cssText.push(assembleFont(textStyleModel));\n // Padding\n if (padding != null) {\n cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n }\n return cssText.join(';') + ';';\n}\n// If not able to make, do not modify the input `out`.\nfunction makeStyleCoord(out, zr, container, zrX, zrY) {\n var zrPainter = zr && zr.painter;\n if (container) {\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n if (zrViewportRoot) {\n // Some APPs might use scale on body, so we support CSS transform here.\n transformLocalCoord(out, zrViewportRoot, container, zrX, zrY);\n }\n } else {\n out[0] = zrX;\n out[1] = zrY;\n // xy should be based on canvas root. But tooltipContent is\n // the sibling of canvas root. So padding of ec container\n // should be considered here.\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n if (viewportRootOffset) {\n out[0] += viewportRootOffset.offsetLeft;\n out[1] += viewportRootOffset.offsetTop;\n }\n }\n out[2] = out[0] / zr.getWidth();\n out[3] = out[1] / zr.getHeight();\n}\nvar TooltipHTMLContent = /** @class */function () {\n function TooltipHTMLContent(api, opt) {\n this._show = false;\n this._styleCoord = [0, 0, 0, 0];\n this._enterable = true;\n this._alwaysShowContent = false;\n this._firstShow = true;\n this._longHide = true;\n if (env.wxa) {\n return null;\n }\n var el = document.createElement('div');\n // TODO: TYPE\n el.domBelongToZr = true;\n this.el = el;\n var zr = this._zr = api.getZr();\n var appendTo = opt.appendTo;\n var container = appendTo && (isString(appendTo) ? document.querySelector(appendTo) : isDom(appendTo) ? appendTo : isFunction(appendTo) && appendTo(api.getDom()));\n makeStyleCoord(this._styleCoord, zr, container, api.getWidth() / 2, api.getHeight() / 2);\n (container || api.getDom()).appendChild(el);\n this._api = api;\n this._container = container;\n // FIXME\n // Is it needed to trigger zr event manually if\n // the browser do not support `pointer-events: none`.\n var self = this;\n el.onmouseenter = function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n self._inContent = true;\n };\n el.onmousemove = function (e) {\n e = e || window.event;\n if (!self._enterable) {\n // `pointer-events: none` is set to tooltip content div\n // if `enterable` is set as `false`, and `el.onmousemove`\n // can not be triggered. But in browser that do not\n // support `pointer-events`, we need to do this:\n // Try trigger zrender event to avoid mouse\n // in and out shape too frequently\n var handler = zr.handler;\n var zrViewportRoot = zr.painter.getViewportRoot();\n normalizeEvent(zrViewportRoot, e, true);\n handler.dispatch('mousemove', e);\n }\n };\n el.onmouseleave = function () {\n // set `_inContent` to `false` before `hideLater`\n self._inContent = false;\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n };\n }\n /**\n * Update when tooltip is rendered\n */\n TooltipHTMLContent.prototype.update = function (tooltipModel) {\n // FIXME\n // Move this logic to ec main?\n if (!this._container) {\n var container = this._api.getDom();\n var position = getComputedStyle(container, 'position');\n var domStyle = container.style;\n if (domStyle.position !== 'absolute' && position !== 'absolute') {\n domStyle.position = 'relative';\n }\n }\n // move tooltip if chart resized\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n alwaysShowContent && this._moveIfResized();\n // update alwaysShowContent\n this._alwaysShowContent = alwaysShowContent;\n // update className\n this.el.className = tooltipModel.get('className') || '';\n // Hide the tooltip\n // PENDING\n // this.hide();\n };\n\n TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n clearTimeout(this._hideTimeout);\n clearTimeout(this._longHideTimeout);\n var el = this.el;\n var style = el.style;\n var styleCoord = this._styleCoord;\n if (!el.innerHTML) {\n style.display = 'none';\n } else {\n style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide)\n // initial transform\n + assembleTransform(styleCoord[0], styleCoord[1], true) + (\"border-color:\" + convertToColorString(nearPointColor) + \";\") + (tooltipModel.get('extraCssText') || '')\n // If mouse occasionally move over the tooltip, a mouseout event will be\n // triggered by canvas, and cause some unexpectable result like dragging\n // stop, \"unfocusAdjacency\". Here `pointer-events: none` is used to solve\n // it. Although it is not supported by IE8~IE10, fortunately it is a rare\n // scenario.\n + (\";pointer-events:\" + (this._enterable ? 'auto' : 'none'));\n }\n this._show = true;\n this._firstShow = false;\n this._longHide = false;\n };\n TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n var el = this.el;\n if (content == null) {\n el.innerHTML = '';\n return;\n }\n var arrow = '';\n if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n arrow = assembleArrow(tooltipModel, borderColor, arrowPosition);\n }\n if (isString(content)) {\n el.innerHTML = content + arrow;\n } else if (content) {\n // Clear previous\n el.innerHTML = '';\n if (!isArray(content)) {\n content = [content];\n }\n for (var i = 0; i < content.length; i++) {\n if (isDom(content[i]) && content[i].parentNode !== el) {\n el.appendChild(content[i]);\n }\n }\n // no arrow if empty\n if (arrow && el.childNodes.length) {\n // no need to create a new parent element, but it's not supported by IE 10 and older.\n // const arrowEl = document.createRange().createContextualFragment(arrow);\n var arrowEl = document.createElement('div');\n arrowEl.innerHTML = arrow;\n el.appendChild(arrowEl);\n }\n }\n };\n TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n this._enterable = enterable;\n };\n TooltipHTMLContent.prototype.getSize = function () {\n var el = this.el;\n return [el.offsetWidth, el.offsetHeight];\n };\n TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, this._container, zrX, zrY);\n if (styleCoord[0] != null && styleCoord[1] != null) {\n var style_1 = this.el.style;\n var transforms = assembleTransform(styleCoord[0], styleCoord[1]);\n each(transforms, function (transform) {\n style_1[transform[0]] = transform[1];\n });\n }\n };\n /**\n * when `alwaysShowContent` is true,\n * move the tooltip after chart resized\n */\n TooltipHTMLContent.prototype._moveIfResized = function () {\n // The ratio of left to width\n var ratioX = this._styleCoord[2];\n // The ratio of top to height\n var ratioY = this._styleCoord[3];\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n };\n TooltipHTMLContent.prototype.hide = function () {\n var _this = this;\n var style = this.el.style;\n style.visibility = 'hidden';\n style.opacity = '0';\n env.transform3dSupported && (style.willChange = '');\n this._show = false;\n this._longHideTimeout = setTimeout(function () {\n return _this._longHide = true;\n }, 500);\n };\n TooltipHTMLContent.prototype.hideLater = function (time) {\n if (this._show && !(this._inContent && this._enterable) && !this._alwaysShowContent) {\n if (time) {\n this._hideDelay = time;\n // Set show false to avoid invoke hideLater multiple times\n this._show = false;\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n };\n TooltipHTMLContent.prototype.isShow = function () {\n return this._show;\n };\n TooltipHTMLContent.prototype.dispose = function () {\n clearTimeout(this._hideTimeout);\n clearTimeout(this._longHideTimeout);\n var parentNode = this.el.parentNode;\n parentNode && parentNode.removeChild(this.el);\n this.el = this._container = null;\n };\n return TooltipHTMLContent;\n}();\nexport default TooltipHTMLContent;","\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 * as zrUtil from 'zrender/lib/core/util.js';\nimport ZRText from 'zrender/lib/graphic/Text.js';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup.js';\nimport { throwError } from '../../util/log.js';\nvar TooltipRichContent = /** @class */function () {\n function TooltipRichContent(api) {\n this._show = false;\n this._styleCoord = [0, 0, 0, 0];\n this._alwaysShowContent = false;\n this._enterable = true;\n this._zr = api.getZr();\n makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n }\n /**\n * Update when tooltip is rendered\n */\n TooltipRichContent.prototype.update = function (tooltipModel) {\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n alwaysShowContent && this._moveIfResized();\n // update alwaysShowContent\n this._alwaysShowContent = alwaysShowContent;\n };\n TooltipRichContent.prototype.show = function () {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n }\n this.el.show();\n this._show = true;\n };\n /**\n * Set tooltip content\n */\n TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n var _this = this;\n if (zrUtil.isObject(content)) {\n throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n }\n if (this.el) {\n this._zr.remove(this.el);\n }\n var textStyleModel = tooltipModel.getModel('textStyle');\n this.el = new ZRText({\n style: {\n rich: markupStyleCreator.richTextStyles,\n text: content,\n lineHeight: 22,\n borderWidth: 1,\n borderColor: borderColor,\n textShadowColor: textStyleModel.get('textShadowColor'),\n fill: tooltipModel.get(['textStyle', 'color']),\n padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n verticalAlign: 'top',\n align: 'left'\n },\n z: tooltipModel.get('z')\n });\n zrUtil.each(['backgroundColor', 'borderRadius', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'], function (propName) {\n _this.el.style[propName] = tooltipModel.get(propName);\n });\n zrUtil.each(['textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'], function (propName) {\n _this.el.style[propName] = textStyleModel.get(propName) || 0;\n });\n this._zr.add(this.el);\n var self = this;\n this.el.on('mouseover', function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n self._inContent = true;\n });\n this.el.on('mouseout', function () {\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n self._inContent = false;\n });\n };\n TooltipRichContent.prototype.setEnterable = function (enterable) {\n this._enterable = enterable;\n };\n TooltipRichContent.prototype.getSize = function () {\n var el = this.el;\n var bounding = this.el.getBoundingRect();\n // bounding rect does not include shadow. For renderMode richText,\n // if overflow, it will be cut. So calculate them accurately.\n var shadowOuterSize = calcShadowOuterSize(el.style);\n return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n };\n TooltipRichContent.prototype.moveTo = function (x, y) {\n var el = this.el;\n if (el) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, x, y);\n x = styleCoord[0];\n y = styleCoord[1];\n var style = el.style;\n var borderWidth = mathMaxWith0(style.borderWidth || 0);\n var shadowOuterSize = calcShadowOuterSize(style);\n // rich text x, y do not include border.\n el.x = x + borderWidth + shadowOuterSize.left;\n el.y = y + borderWidth + shadowOuterSize.top;\n el.markRedraw();\n }\n };\n /**\n * when `alwaysShowContent` is true,\n * move the tooltip after chart resized\n */\n TooltipRichContent.prototype._moveIfResized = function () {\n // The ratio of left to width\n var ratioX = this._styleCoord[2];\n // The ratio of top to height\n var ratioY = this._styleCoord[3];\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n };\n TooltipRichContent.prototype.hide = function () {\n if (this.el) {\n this.el.hide();\n }\n this._show = false;\n };\n TooltipRichContent.prototype.hideLater = function (time) {\n if (this._show && !(this._inContent && this._enterable) && !this._alwaysShowContent) {\n if (time) {\n this._hideDelay = time;\n // Set show false to avoid invoke hideLater multiple times\n this._show = false;\n this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n };\n TooltipRichContent.prototype.isShow = function () {\n return this._show;\n };\n TooltipRichContent.prototype.dispose = function () {\n this._zr.remove(this.el);\n };\n return TooltipRichContent;\n}();\nfunction mathMaxWith0(val) {\n return Math.max(0, val);\n}\nfunction calcShadowOuterSize(style) {\n var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n return {\n left: mathMaxWith0(shadowBlur - shadowOffsetX),\n right: mathMaxWith0(shadowBlur + shadowOffsetX),\n top: mathMaxWith0(shadowBlur - shadowOffsetY),\n bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n };\n}\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n out[0] = zrX;\n out[1] = zrY;\n out[2] = out[0] / zr.getWidth();\n out[3] = out[1] / zr.getHeight();\n}\nexport default TooltipRichContent;","\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\nimport { __extends } from \"tslib\";\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 { bind, each, clone, trim, isString, isFunction, isArray, isObject, extend } from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport TooltipHTMLContent from './TooltipHTMLContent.js';\nimport TooltipRichContent from './TooltipRichContent.js';\nimport { convertToColorString, encodeHTML, formatTpl } from '../../util/format.js';\nimport { parsePercent } from '../../util/number.js';\nimport { Rect } from '../../util/graphic.js';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport Model from '../../model/Model.js';\nimport * as globalListener from '../axisPointer/globalListener.js';\nimport * as axisHelper from '../../coord/axisHelper.js';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper.js';\nimport { getTooltipRenderMode, preParseFinder, queryReferringComponents } from '../../util/model.js';\nimport ComponentView from '../../view/Component.js';\nimport { format as timeFormat } from '../../util/time.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { shouldTooltipConfine } from './helper.js';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat.js';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup.js';\nimport { findEventDispatcher } from '../../util/event.js';\nimport { clear, createOrUpdate } from '../../util/throttle.js';\nvar proxyRect = new Rect({\n shape: {\n x: -1,\n y: -1,\n width: 2,\n height: 2\n }\n});\nvar TooltipView = /** @class */function (_super) {\n __extends(TooltipView, _super);\n function TooltipView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = TooltipView.type;\n return _this;\n }\n TooltipView.prototype.init = function (ecModel, api) {\n if (env.node || !api.getDom()) {\n return;\n }\n var tooltipModel = ecModel.getComponent('tooltip');\n var renderMode = this._renderMode = getTooltipRenderMode(tooltipModel.get('renderMode'));\n this._tooltipContent = renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api, {\n appendTo: tooltipModel.get('appendToBody', true) ? 'body' : tooltipModel.get('appendTo', true)\n });\n };\n TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n if (env.node || !api.getDom()) {\n return;\n }\n // Reset\n this.group.removeAll();\n this._tooltipModel = tooltipModel;\n this._ecModel = ecModel;\n this._api = api;\n var tooltipContent = this._tooltipContent;\n tooltipContent.update(tooltipModel);\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\n this._initGlobalListener();\n this._keepShow();\n // PENDING\n // `mousemove` event will be triggered very frequently when the mouse moves fast,\n // which causes that the `updatePosition` function was also called frequently.\n // In Chrome with devtools open and Firefox, tooltip looks laggy and shakes. See #14695 #16101\n // To avoid frequent triggering,\n // consider throttling it in 50ms when transition is enabled\n if (this._renderMode !== 'richText' && tooltipModel.get('transitionDuration')) {\n createOrUpdate(this, '_updatePosition', 50, 'fixRate');\n } else {\n clear(this, '_updatePosition');\n }\n };\n TooltipView.prototype._initGlobalListener = function () {\n var tooltipModel = this._tooltipModel;\n var triggerOn = tooltipModel.get('triggerOn');\n globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n // If 'none', it is not controlled by mouse totally.\n if (triggerOn !== 'none') {\n if (triggerOn.indexOf(currTrigger) >= 0) {\n this._tryShow(e, dispatchAction);\n } else if (currTrigger === 'leave') {\n this._hide(dispatchAction);\n }\n }\n }, this));\n };\n TooltipView.prototype._keepShow = function () {\n var tooltipModel = this._tooltipModel;\n var ecModel = this._ecModel;\n var api = this._api;\n var triggerOn = tooltipModel.get('triggerOn');\n // Try to keep the tooltip show when refreshing\n if (this._lastX != null && this._lastY != null\n // When user is willing to control tooltip totally using API,\n // self.manuallyShowTip({x, y}) might cause tooltip hide,\n // which is not expected.\n && triggerOn !== 'none' && triggerOn !== 'click') {\n var self_1 = this;\n clearTimeout(this._refreshUpdateTimeout);\n this._refreshUpdateTimeout = setTimeout(function () {\n // Show tip next tick after other charts are rendered\n // In case highlight action has wrong result\n // FIXME\n !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n x: self_1._lastX,\n y: self_1._lastY,\n dataByCoordSys: self_1._lastDataByCoordSys\n });\n });\n }\n };\n /**\n * Show tip manually by\n * dispatchAction({\n * type: 'showTip',\n * x: 10,\n * y: 10\n * });\n * Or\n * dispatchAction({\n * type: 'showTip',\n * seriesIndex: 0,\n * dataIndex or dataIndexInside or name\n * });\n *\n * TODO Batch\n */\n TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n if (payload.from === this.uid || env.node || !api.getDom()) {\n return;\n }\n var dispatchAction = makeDispatchAction(payload, api);\n // Reset ticket\n this._ticket = '';\n // When triggered from axisPointer.\n var dataByCoordSys = payload.dataByCoordSys;\n var cmptRef = findComponentReference(payload, ecModel, api);\n if (cmptRef) {\n var rect = cmptRef.el.getBoundingRect().clone();\n rect.applyTransform(cmptRef.el.transform);\n this._tryShow({\n offsetX: rect.x + rect.width / 2,\n offsetY: rect.y + rect.height / 2,\n target: cmptRef.el,\n position: payload.position,\n // When manully trigger, the mouse is not on the el, so we'd better to\n // position tooltip on the bottom of the el and display arrow is possible.\n positionDefault: 'bottom'\n }, dispatchAction);\n } else if (payload.tooltip && payload.x != null && payload.y != null) {\n var el = proxyRect;\n el.x = payload.x;\n el.y = payload.y;\n el.update();\n getECData(el).tooltipConfig = {\n name: null,\n option: payload.tooltip\n };\n // Manually show tooltip while view is not using zrender elements.\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n target: el\n }, dispatchAction);\n } else if (dataByCoordSys) {\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n dataByCoordSys: dataByCoordSys,\n tooltipOption: payload.tooltipOption\n }, dispatchAction);\n } else if (payload.seriesIndex != null) {\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n return;\n }\n var pointInfo = findPointFromSeries(payload, ecModel);\n var cx = pointInfo.point[0];\n var cy = pointInfo.point[1];\n if (cx != null && cy != null) {\n this._tryShow({\n offsetX: cx,\n offsetY: cy,\n target: pointInfo.el,\n position: payload.position,\n // When manully trigger, the mouse is not on the el, so we'd better to\n // position tooltip on the bottom of the el and display arrow is possible.\n positionDefault: 'bottom'\n }, dispatchAction);\n }\n } else if (payload.x != null && payload.y != null) {\n // FIXME\n // should wrap dispatchAction like `axisPointer/globalListener` ?\n api.dispatchAction({\n type: 'updateAxisPointer',\n x: payload.x,\n y: payload.y\n });\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n target: api.getZr().findHover(payload.x, payload.y).target\n }, dispatchAction);\n }\n };\n TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n var tooltipContent = this._tooltipContent;\n if (this._tooltipModel) {\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n }\n this._lastX = this._lastY = this._lastDataByCoordSys = null;\n if (payload.from !== this.uid) {\n this._hide(makeDispatchAction(payload, api));\n }\n };\n // Be compatible with previous design, that is, when tooltip.type is 'axis' and\n // dispatchAction 'showTip' with seriesIndex and dataIndex will trigger axis pointer\n // and tooltip.\n TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n var seriesIndex = payload.seriesIndex;\n var dataIndex = payload.dataIndex;\n // @ts-ignore\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n return;\n }\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n if (!seriesModel) {\n return;\n }\n var data = seriesModel.getData();\n var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model], this._tooltipModel);\n if (tooltipCascadedModel.get('trigger') !== 'axis') {\n return;\n }\n api.dispatchAction({\n type: 'updateAxisPointer',\n seriesIndex: seriesIndex,\n dataIndex: dataIndex,\n position: payload.position\n });\n return true;\n };\n TooltipView.prototype._tryShow = function (e, dispatchAction) {\n var el = e.target;\n var tooltipModel = this._tooltipModel;\n if (!tooltipModel) {\n return;\n }\n // Save mouse x, mouse y. So we can try to keep showing the tip if chart is refreshed\n this._lastX = e.offsetX;\n this._lastY = e.offsetY;\n var dataByCoordSys = e.dataByCoordSys;\n if (dataByCoordSys && dataByCoordSys.length) {\n this._showAxisTooltip(dataByCoordSys, e);\n } else if (el) {\n var ecData = getECData(el);\n if (ecData.ssrType === 'legend') {\n // Don't trigger tooltip for legend tooltip item\n return;\n }\n this._lastDataByCoordSys = null;\n var seriesDispatcher_1;\n var cmptDispatcher_1;\n findEventDispatcher(el, function (target) {\n // Always show item tooltip if mouse is on the element with dataIndex\n if (getECData(target).dataIndex != null) {\n seriesDispatcher_1 = target;\n return true;\n }\n // Tooltip provided directly. Like legend.\n if (getECData(target).tooltipConfig != null) {\n cmptDispatcher_1 = target;\n return true;\n }\n }, true);\n if (seriesDispatcher_1) {\n this._showSeriesItemTooltip(e, seriesDispatcher_1, dispatchAction);\n } else if (cmptDispatcher_1) {\n this._showComponentItemTooltip(e, cmptDispatcher_1, dispatchAction);\n } else {\n this._hide(dispatchAction);\n }\n } else {\n this._lastDataByCoordSys = null;\n this._hide(dispatchAction);\n }\n };\n TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n // showDelay is used in this case: tooltip.enterable is set\n // as true. User intent to move mouse into tooltip and click\n // something. `showDelay` makes it easier to enter the content\n // but tooltip do not move immediately.\n var delay = tooltipModel.get('showDelay');\n cb = bind(cb, this);\n clearTimeout(this._showTimout);\n delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n };\n TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n var ecModel = this._ecModel;\n var globalTooltipModel = this._tooltipModel;\n var point = [e.offsetX, e.offsetY];\n var singleTooltipModel = buildTooltipModel([e.tooltipOption], globalTooltipModel);\n var renderMode = this._renderMode;\n var cbParamsList = [];\n var articleMarkup = createTooltipMarkup('section', {\n blocks: [],\n noHeader: true\n });\n // Only for legacy: `Serise['formatTooltip']` returns a string.\n var markupTextArrLegacy = [];\n var markupStyleCreator = new TooltipMarkupStyleCreator();\n each(dataByCoordSys, function (itemCoordSys) {\n each(itemCoordSys.dataByAxis, function (axisItem) {\n var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n var axisValue = axisItem.value;\n if (!axisModel || axisValue == null) {\n return;\n }\n var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n var axisSectionMarkup = createTooltipMarkup('section', {\n header: axisValueLabel,\n noHeader: !trim(axisValueLabel),\n sortBlocks: true,\n blocks: []\n });\n articleMarkup.blocks.push(axisSectionMarkup);\n each(axisItem.seriesDataIndices, function (idxItem) {\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n var dataIndex = idxItem.dataIndexInside;\n var cbParams = series.getDataParams(dataIndex);\n // Can't find data.\n if (cbParams.dataIndex < 0) {\n return;\n }\n cbParams.axisDim = axisItem.axisDim;\n cbParams.axisIndex = axisItem.axisIndex;\n cbParams.axisType = axisItem.axisType;\n cbParams.axisId = axisItem.axisId;\n cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n value: axisValue\n });\n cbParams.axisValueLabel = axisValueLabel;\n // Pre-create marker style for makers. Users can assemble richText\n // text in `formatter` callback and use those markers style.\n cbParams.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(cbParams.color), renderMode);\n var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n var frag = seriesTooltipResult.frag;\n if (frag) {\n var valueFormatter = buildTooltipModel([series], globalTooltipModel).get('valueFormatter');\n axisSectionMarkup.blocks.push(valueFormatter ? extend({\n valueFormatter: valueFormatter\n }, frag) : frag);\n }\n if (seriesTooltipResult.text) {\n markupTextArrLegacy.push(seriesTooltipResult.text);\n }\n cbParamsList.push(cbParams);\n });\n });\n });\n // In most cases, the second axis is displays upper on the first one.\n // So we reverse it to look better.\n articleMarkup.blocks.reverse();\n markupTextArrLegacy.reverse();\n var positionExpr = e.position;\n var orderMode = singleTooltipModel.get('order');\n var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\n var allMarkupText = markupTextArrLegacy.join(blockBreak);\n this._showOrMove(singleTooltipModel, function () {\n if (this._updateContentNotChangedOnAxis(dataByCoordSys, cbParamsList)) {\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n } else {\n this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n }\n });\n // Do not trigger events here, because this branch only be entered\n // from dispatchAction.\n };\n\n TooltipView.prototype._showSeriesItemTooltip = function (e, dispatcher, dispatchAction) {\n var ecModel = this._ecModel;\n var ecData = getECData(dispatcher);\n // Use dataModel in element if possible\n // Used when mouseover on a element like markPoint or edge\n // In which case, the data is not main data in series.\n var seriesIndex = ecData.seriesIndex;\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n // For example, graph link.\n var dataModel = ecData.dataModel || seriesModel;\n var dataIndex = ecData.dataIndex;\n var dataType = ecData.dataType;\n var data = dataModel.getData(dataType);\n var renderMode = this._renderMode;\n var positionDefault = e.positionDefault;\n var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model], this._tooltipModel, positionDefault ? {\n position: positionDefault\n } : null);\n var tooltipTrigger = tooltipModel.get('trigger');\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n return;\n }\n var params = dataModel.getDataParams(dataIndex, dataType);\n var markupStyleCreator = new TooltipMarkupStyleCreator();\n // Pre-create marker style for makers. Users can assemble richText\n // text in `formatter` callback and use those markers style.\n params.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(params.color), renderMode);\n var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n var orderMode = tooltipModel.get('order');\n var valueFormatter = tooltipModel.get('valueFormatter');\n var frag = seriesTooltipResult.frag;\n var markupText = frag ? buildTooltipMarkup(valueFormatter ? extend({\n valueFormatter: valueFormatter\n }, frag) : frag, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.text;\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n this._showOrMove(tooltipModel, function () {\n this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n });\n // FIXME\n // duplicated showtip if manuallyShowTip is called from dispatchAction.\n dispatchAction({\n type: 'showTip',\n dataIndexInside: dataIndex,\n dataIndex: data.getRawIndex(dataIndex),\n seriesIndex: seriesIndex,\n from: this.uid\n });\n };\n TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n var isHTMLRenderMode = this._renderMode === 'html';\n var ecData = getECData(el);\n var tooltipConfig = ecData.tooltipConfig;\n var tooltipOpt = tooltipConfig.option || {};\n var encodeHTMLContent = tooltipOpt.encodeHTMLContent;\n if (isString(tooltipOpt)) {\n var content = tooltipOpt;\n tooltipOpt = {\n content: content,\n // Fixed formatter\n formatter: content\n };\n // when `tooltipConfig.option` is a string rather than an object,\n // we can't know if the content needs to be encoded\n // for the sake of security, encode it by default.\n encodeHTMLContent = true;\n }\n if (encodeHTMLContent && isHTMLRenderMode && tooltipOpt.content) {\n // clone might be unnecessary?\n tooltipOpt = clone(tooltipOpt);\n tooltipOpt.content = encodeHTML(tooltipOpt.content);\n }\n var tooltipModelCascade = [tooltipOpt];\n var cmpt = this._ecModel.getComponent(ecData.componentMainType, ecData.componentIndex);\n if (cmpt) {\n tooltipModelCascade.push(cmpt);\n }\n // In most cases, component tooltip formatter has different params with series tooltip formatter,\n // so that they cannot share the same formatter. Since the global tooltip formatter is used for series\n // by convention, we do not use it as the default formatter for component.\n tooltipModelCascade.push({\n formatter: tooltipOpt.content\n });\n var positionDefault = e.positionDefault;\n var subTooltipModel = buildTooltipModel(tooltipModelCascade, this._tooltipModel, positionDefault ? {\n position: positionDefault\n } : null);\n var defaultHtml = subTooltipModel.get('content');\n var asyncTicket = Math.random() + '';\n // PENDING: this case do not support richText style yet.\n var markupStyleCreator = new TooltipMarkupStyleCreator();\n // Do not check whether `trigger` is 'none' here, because `trigger`\n // only works on coordinate system. In fact, we have not found case\n // that requires setting `trigger` nothing on component yet.\n this._showOrMove(subTooltipModel, function () {\n // Use formatterParams from element defined in component\n // Avoid users modify it.\n var formatterParams = clone(subTooltipModel.get('formatterParams') || {});\n this._showTooltipContent(subTooltipModel, defaultHtml, formatterParams, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n });\n // If not dispatch showTip, tip may be hide triggered by axis.\n dispatchAction({\n type: 'showTip',\n from: this.uid\n });\n };\n TooltipView.prototype._showTooltipContent = function (\n // Use Model<TooltipOption> insteadof TooltipModel because this model may be from series or other options.\n // Instead of top level tooltip.\n tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n // Reset ticket\n this._ticket = '';\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n return;\n }\n var tooltipContent = this._tooltipContent;\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\n var formatter = tooltipModel.get('formatter');\n positionExpr = positionExpr || tooltipModel.get('position');\n var html = defaultHtml;\n var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n var nearPointColor = nearPoint.color;\n if (formatter) {\n if (isString(formatter)) {\n var useUTC = tooltipModel.ecModel.get('useUTC');\n var params0 = isArray(params) ? params[0] : params;\n var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n html = formatter;\n if (isTimeAxis) {\n html = timeFormat(params0.axisValue, html, useUTC);\n }\n html = formatTpl(html, params, true);\n } else if (isFunction(formatter)) {\n var callback = bind(function (cbTicket, html) {\n if (cbTicket === this._ticket) {\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPointColor, positionExpr);\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n }\n }, this);\n this._ticket = asyncTicket;\n html = formatter(params, asyncTicket, callback);\n } else {\n html = formatter;\n }\n }\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPointColor, positionExpr);\n tooltipContent.show(tooltipModel, nearPointColor);\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n };\n TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n if (trigger === 'axis' || isArray(tooltipDataParams)) {\n return {\n color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n };\n }\n if (!isArray(tooltipDataParams)) {\n return {\n color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n };\n }\n };\n TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x,\n // Mouse x\n y,\n // Mouse y\n content, params, el) {\n var viewWidth = this._api.getWidth();\n var viewHeight = this._api.getHeight();\n positionExpr = positionExpr || tooltipModel.get('position');\n var contentSize = content.getSize();\n var align = tooltipModel.get('align');\n var vAlign = tooltipModel.get('verticalAlign');\n var rect = el && el.getBoundingRect().clone();\n el && rect.applyTransform(el.transform);\n if (isFunction(positionExpr)) {\n // Callback of position can be an array or a string specify the position\n positionExpr = positionExpr([x, y], params, content.el, rect, {\n viewSize: [viewWidth, viewHeight],\n contentSize: contentSize.slice()\n });\n }\n if (isArray(positionExpr)) {\n x = parsePercent(positionExpr[0], viewWidth);\n y = parsePercent(positionExpr[1], viewHeight);\n } else if (isObject(positionExpr)) {\n var boxLayoutPosition = positionExpr;\n boxLayoutPosition.width = contentSize[0];\n boxLayoutPosition.height = contentSize[1];\n var layoutRect = getLayoutRect(boxLayoutPosition, {\n width: viewWidth,\n height: viewHeight\n });\n x = layoutRect.x;\n y = layoutRect.y;\n align = null;\n // When positionExpr is left/top/right/bottom,\n // align and verticalAlign will not work.\n vAlign = null;\n }\n // Specify tooltip position by string 'top' 'bottom' 'left' 'right' around graphic element\n else if (isString(positionExpr) && el) {\n var pos = calcTooltipPosition(positionExpr, rect, contentSize, tooltipModel.get('borderWidth'));\n x = pos[0];\n y = pos[1];\n } else {\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n x = pos[0];\n y = pos[1];\n }\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n if (shouldTooltipConfine(tooltipModel)) {\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n x = pos[0];\n y = pos[1];\n }\n content.moveTo(x, y);\n };\n // FIXME\n // Should we remove this but leave this to user?\n TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys, cbParamsList) {\n var lastCoordSys = this._lastDataByCoordSys;\n var lastCbParamsList = this._cbParamsList;\n var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n var thisItem = thisDataByAxis[indexAxis] || {};\n var lastIndices = lastItem.seriesDataIndices || [];\n var newIndices = thisItem.seriesDataIndices || [];\n contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n var newIdxItem = newIndices[j];\n contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n });\n // check is cbParams data value changed\n lastCbParamsList && each(lastItem.seriesDataIndices, function (idxItem) {\n var seriesIdx = idxItem.seriesIndex;\n var cbParams = cbParamsList[seriesIdx];\n var lastCbParams = lastCbParamsList[seriesIdx];\n if (cbParams && lastCbParams && lastCbParams.data !== cbParams.data) {\n contentNotChanged = false;\n }\n });\n });\n });\n this._lastDataByCoordSys = dataByCoordSys;\n this._cbParamsList = cbParamsList;\n return !!contentNotChanged;\n };\n TooltipView.prototype._hide = function (dispatchAction) {\n // Do not directly hideLater here, because this behavior may be prevented\n // in dispatchAction when showTip is dispatched.\n // FIXME\n // duplicated hideTip if manuallyHideTip is called from dispatchAction.\n this._lastDataByCoordSys = null;\n dispatchAction({\n type: 'hideTip',\n from: this.uid\n });\n };\n TooltipView.prototype.dispose = function (ecModel, api) {\n if (env.node || !api.getDom()) {\n return;\n }\n clear(this, '_updatePosition');\n this._tooltipContent.dispose();\n globalListener.unregister('itemTooltip', api);\n };\n TooltipView.type = 'tooltip';\n return TooltipView;\n}(ComponentView);\n/**\n * From top to bottom. (the last one should be globalTooltipModel);\n */\nfunction buildTooltipModel(modelCascade, globalTooltipModel, defaultTooltipOption) {\n // Last is always tooltip model.\n var ecModel = globalTooltipModel.ecModel;\n var resultModel;\n if (defaultTooltipOption) {\n resultModel = new Model(defaultTooltipOption, ecModel, ecModel);\n resultModel = new Model(globalTooltipModel.option, resultModel, ecModel);\n } else {\n resultModel = globalTooltipModel;\n }\n for (var i = modelCascade.length - 1; i >= 0; i--) {\n var tooltipOpt = modelCascade[i];\n if (tooltipOpt) {\n if (tooltipOpt instanceof Model) {\n tooltipOpt = tooltipOpt.get('tooltip', true);\n }\n // In each data item tooltip can be simply write:\n // {\n // value: 10,\n // tooltip: 'Something you need to know'\n // }\n if (isString(tooltipOpt)) {\n tooltipOpt = {\n formatter: tooltipOpt\n };\n }\n if (tooltipOpt) {\n resultModel = new Model(tooltipOpt, resultModel, ecModel);\n }\n }\n }\n return resultModel;\n}\nfunction makeDispatchAction(payload, api) {\n return payload.dispatchAction || bind(api.dispatchAction, api);\n}\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n var size = content.getSize();\n var width = size[0];\n var height = size[1];\n if (gapH != null) {\n // Add extra 2 pixels for this case:\n // At present the \"values\" in default tooltip are using CSS `float: right`.\n // When the right edge of the tooltip box is on the right side of the\n // viewport, the `float` layout might push the \"values\" to the second line.\n if (x + width + gapH + 2 > viewWidth) {\n x -= width + gapH;\n } else {\n x += gapH;\n }\n }\n if (gapV != null) {\n if (y + height + gapV > viewHeight) {\n y -= height + gapV;\n } else {\n y += gapV;\n }\n }\n return [x, y];\n}\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n var size = content.getSize();\n var width = size[0];\n var height = size[1];\n x = Math.min(x + width, viewWidth) - width;\n y = Math.min(y + height, viewHeight) - height;\n x = Math.max(x, 0);\n y = Math.max(y, 0);\n return [x, y];\n}\nfunction calcTooltipPosition(position, rect, contentSize, borderWidth) {\n var domWidth = contentSize[0];\n var domHeight = contentSize[1];\n var offset = Math.ceil(Math.SQRT2 * borderWidth) + 8;\n var x = 0;\n var y = 0;\n var rectWidth = rect.width;\n var rectHeight = rect.height;\n switch (position) {\n case 'inside':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n case 'top':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y - domHeight - offset;\n break;\n case 'bottom':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight + offset;\n break;\n case 'left':\n x = rect.x - domWidth - offset;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n case 'right':\n x = rect.x + rectWidth + offset;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n }\n return [x, y];\n}\nfunction isCenterAlign(align) {\n return align === 'center' || align === 'middle';\n}\n/**\n * Find target component by payload like:\n * ```js\n * { legendId: 'some_id', name: 'xxx' }\n * { toolboxIndex: 1, name: 'xxx' }\n * { geoName: 'some_name', name: 'xxx' }\n * ```\n * PENDING: at present only\n *\n * If not found, return null/undefined.\n */\nfunction findComponentReference(payload, ecModel, api) {\n var queryOptionMap = preParseFinder(payload).queryOptionMap;\n var componentMainType = queryOptionMap.keys()[0];\n if (!componentMainType || componentMainType === 'series') {\n return;\n }\n var queryResult = queryReferringComponents(ecModel, componentMainType, queryOptionMap.get(componentMainType), {\n useDefault: false,\n enableAll: false,\n enableNone: false\n });\n var model = queryResult.models[0];\n if (!model) {\n return;\n }\n var view = api.getViewOfComponentModel(model);\n var el;\n view.group.traverse(function (subEl) {\n var tooltipConfig = getECData(subEl).tooltipConfig;\n if (tooltipConfig && tooltipConfig.name === payload.name) {\n el = subEl;\n return true; // stop\n }\n });\n\n if (el) {\n return {\n componentMainType: componentMainType,\n componentIndex: model.componentIndex,\n el: el\n };\n }\n}\nexport default TooltipView;","\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 { install as installAxisPointer } from '../axisPointer/install.js';\nimport { use } from '../../extension.js';\nimport TooltipModel from './TooltipModel.js';\nimport TooltipView from './TooltipView.js';\nimport { noop } from 'zrender/lib/core/util.js';\nexport function install(registers) {\n use(installAxisPointer);\n registers.registerComponentModel(TooltipModel);\n registers.registerComponentView(TooltipView);\n /**\n * @action\n * @property {string} type\n * @property {number} seriesIndex\n * @property {number} dataIndex\n * @property {number} [x]\n * @property {number} [y]\n */\n registers.registerAction({\n type: 'showTip',\n event: 'showTip',\n update: 'tooltip:manuallyShowTip'\n }, noop);\n registers.registerAction({\n type: 'hideTip',\n event: 'hideTip',\n update: 'tooltip:manuallyHideTip'\n }, noop);\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/**\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 { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Model from '../../model/Model.js';\nimport { isNameSpecified } from '../../util/model.js';\nimport ComponentModel from '../../model/Component.js';\nvar getDefaultSelectorOptions = function (ecModel, type) {\n if (type === 'all') {\n return {\n type: 'all',\n title: ecModel.getLocaleModel().get(['legend', 'selector', 'all'])\n };\n } else if (type === 'inverse') {\n return {\n type: 'inverse',\n title: ecModel.getLocaleModel().get(['legend', 'selector', 'inverse'])\n };\n }\n};\nvar LegendModel = /** @class */function (_super) {\n __extends(LegendModel, _super);\n function LegendModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = LegendModel.type;\n _this.layoutMode = {\n type: 'box',\n // legend.width/height are maxWidth/maxHeight actually,\n // whereas real width/height is calculated by its content.\n // (Setting {left: 10, right: 10} does not make sense).\n // So consider the case:\n // `setOption({legend: {left: 10});`\n // then `setOption({legend: {right: 10});`\n // The previous `left` should be cleared by setting `ignoreSize`.\n ignoreSize: true\n };\n return _this;\n }\n LegendModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n option.selected = option.selected || {};\n this._updateSelector(option);\n };\n LegendModel.prototype.mergeOption = function (option, ecModel) {\n _super.prototype.mergeOption.call(this, option, ecModel);\n this._updateSelector(option);\n };\n LegendModel.prototype._updateSelector = function (option) {\n var selector = option.selector;\n var ecModel = this.ecModel;\n if (selector === true) {\n selector = option.selector = ['all', 'inverse'];\n }\n if (zrUtil.isArray(selector)) {\n zrUtil.each(selector, function (item, index) {\n zrUtil.isString(item) && (item = {\n type: item\n });\n selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n });\n }\n };\n LegendModel.prototype.optionUpdated = function () {\n this._updateData(this.ecModel);\n var legendData = this._data;\n // If selectedMode is single, try to select one\n if (legendData[0] && this.get('selectedMode') === 'single') {\n var hasSelected = false;\n // If has any selected in option.selected\n for (var i = 0; i < legendData.length; i++) {\n var name_1 = legendData[i].get('name');\n if (this.isSelected(name_1)) {\n // Force to unselect others\n this.select(name_1);\n hasSelected = true;\n break;\n }\n }\n // Try select the first if selectedMode is single\n !hasSelected && this.select(legendData[0].get('name'));\n }\n };\n LegendModel.prototype._updateData = function (ecModel) {\n var potentialData = [];\n var availableNames = [];\n ecModel.eachRawSeries(function (seriesModel) {\n var seriesName = seriesModel.name;\n availableNames.push(seriesName);\n var isPotential;\n if (seriesModel.legendVisualProvider) {\n var provider = seriesModel.legendVisualProvider;\n var names = provider.getAllNames();\n if (!ecModel.isSeriesFiltered(seriesModel)) {\n availableNames = availableNames.concat(names);\n }\n if (names.length) {\n potentialData = potentialData.concat(names);\n } else {\n isPotential = true;\n }\n } else {\n isPotential = true;\n }\n if (isPotential && isNameSpecified(seriesModel)) {\n potentialData.push(seriesModel.name);\n }\n });\n /**\n * @type {Array.<string>}\n * @private\n */\n this._availableNames = availableNames;\n // If legend.data is not specified in option, use availableNames as data,\n // which is convenient for user preparing option.\n var rawData = this.get('data') || potentialData;\n var legendNameMap = zrUtil.createHashMap();\n var legendData = zrUtil.map(rawData, function (dataItem) {\n // Can be string or number\n if (zrUtil.isString(dataItem) || zrUtil.isNumber(dataItem)) {\n dataItem = {\n name: dataItem\n };\n }\n if (legendNameMap.get(dataItem.name)) {\n // remove legend name duplicate\n return null;\n }\n legendNameMap.set(dataItem.name, true);\n return new Model(dataItem, this, this.ecModel);\n }, this);\n /**\n * @type {Array.<module:echarts/model/Model>}\n * @private\n */\n this._data = zrUtil.filter(legendData, function (item) {\n return !!item;\n });\n };\n LegendModel.prototype.getData = function () {\n return this._data;\n };\n LegendModel.prototype.select = function (name) {\n var selected = this.option.selected;\n var selectedMode = this.get('selectedMode');\n if (selectedMode === 'single') {\n var data = this._data;\n zrUtil.each(data, function (dataItem) {\n selected[dataItem.get('name')] = false;\n });\n }\n selected[name] = true;\n };\n LegendModel.prototype.unSelect = function (name) {\n if (this.get('selectedMode') !== 'single') {\n this.option.selected[name] = false;\n }\n };\n LegendModel.prototype.toggleSelected = function (name) {\n var selected = this.option.selected;\n // Default is true\n if (!selected.hasOwnProperty(name)) {\n selected[name] = true;\n }\n this[selected[name] ? 'unSelect' : 'select'](name);\n };\n LegendModel.prototype.allSelect = function () {\n var data = this._data;\n var selected = this.option.selected;\n zrUtil.each(data, function (dataItem) {\n selected[dataItem.get('name', true)] = true;\n });\n };\n LegendModel.prototype.inverseSelect = function () {\n var data = this._data;\n var selected = this.option.selected;\n zrUtil.each(data, function (dataItem) {\n var name = dataItem.get('name', true);\n // Initially, default value is true\n if (!selected.hasOwnProperty(name)) {\n selected[name] = true;\n }\n selected[name] = !selected[name];\n });\n };\n LegendModel.prototype.isSelected = function (name) {\n var selected = this.option.selected;\n return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n };\n LegendModel.prototype.getOrient = function () {\n return this.get('orient') === 'vertical' ? {\n index: 1,\n name: 'vertical'\n } : {\n index: 0,\n name: 'horizontal'\n };\n };\n LegendModel.type = 'legend.plain';\n LegendModel.dependencies = ['series'];\n LegendModel.defaultOption = {\n // zlevel: 0,\n z: 4,\n show: true,\n orient: 'horizontal',\n left: 'center',\n // right: 'center',\n top: 0,\n // bottom: null,\n align: 'auto',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n borderRadius: 0,\n borderWidth: 0,\n padding: 5,\n itemGap: 10,\n itemWidth: 25,\n itemHeight: 14,\n symbolRotate: 'inherit',\n symbolKeepAspect: true,\n inactiveColor: '#ccc',\n inactiveBorderColor: '#ccc',\n inactiveBorderWidth: 'auto',\n itemStyle: {\n color: 'inherit',\n opacity: 'inherit',\n borderColor: 'inherit',\n borderWidth: 'auto',\n borderCap: 'inherit',\n borderJoin: 'inherit',\n borderDashOffset: 'inherit',\n borderMiterLimit: 'inherit'\n },\n lineStyle: {\n width: 'auto',\n color: 'inherit',\n inactiveColor: '#ccc',\n inactiveWidth: 2,\n opacity: 'inherit',\n type: 'inherit',\n cap: 'inherit',\n join: 'inherit',\n dashOffset: 'inherit',\n miterLimit: 'inherit'\n },\n textStyle: {\n color: '#333'\n },\n selectedMode: true,\n selector: false,\n selectorLabel: {\n show: true,\n borderRadius: 10,\n padding: [3, 5, 3, 5],\n fontSize: 12,\n fontFamily: 'sans-serif',\n color: '#666',\n borderWidth: 1,\n borderColor: '#666'\n },\n emphasis: {\n selectorLabel: {\n show: true,\n color: '#eee',\n backgroundColor: '#666'\n }\n },\n selectorPosition: 'auto',\n selectorItemGap: 7,\n selectorButtonGap: 10,\n tooltip: {\n show: false\n }\n };\n return LegendModel;\n}(ComponentModel);\nexport default LegendModel;","\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 { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { parse, stringify } from 'zrender/lib/tool/color.js';\nimport * as graphic from '../../util/graphic.js';\nimport { enableHoverEmphasis } from '../../util/states.js';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle.js';\nimport { makeBackground } from '../helper/listComponent.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport ComponentView from '../../view/Component.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nimport { getECData } from '../../util/innerStore.js';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\nvar LegendView = /** @class */function (_super) {\n __extends(LegendView, _super);\n function LegendView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = LegendView.type;\n _this.newlineDisabled = false;\n return _this;\n }\n LegendView.prototype.init = function () {\n this.group.add(this._contentGroup = new Group());\n this.group.add(this._selectorGroup = new Group());\n this._isFirstRender = true;\n };\n /**\n * @protected\n */\n LegendView.prototype.getContentGroup = function () {\n return this._contentGroup;\n };\n /**\n * @protected\n */\n LegendView.prototype.getSelectorGroup = function () {\n return this._selectorGroup;\n };\n /**\n * @override\n */\n LegendView.prototype.render = function (legendModel, ecModel, api) {\n var isFirstRender = this._isFirstRender;\n this._isFirstRender = false;\n this.resetInner();\n if (!legendModel.get('show', true)) {\n return;\n }\n var itemAlign = legendModel.get('align');\n var orient = legendModel.get('orient');\n if (!itemAlign || itemAlign === 'auto') {\n itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n }\n // selector has been normalized to an array in model\n var selector = legendModel.get('selector', true);\n var selectorPosition = legendModel.get('selectorPosition', true);\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n }\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n // Perform layout.\n var positionInfo = legendModel.getBoxLayoutParams();\n var viewportSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var padding = legendModel.get('padding');\n var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\n // Place mainGroup, based on the calculated `mainRect`.\n var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n width: mainRect.width,\n height: mainRect.height\n }, positionInfo), viewportSize, padding);\n this.group.x = layoutRect.x - mainRect.x;\n this.group.y = layoutRect.y - mainRect.y;\n this.group.markRedraw();\n // Render background after group is layout.\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n };\n LegendView.prototype.resetInner = function () {\n this.getContentGroup().removeAll();\n this._backgroundEl && this.group.remove(this._backgroundEl);\n this.getSelectorGroup().removeAll();\n };\n LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var contentGroup = this.getContentGroup();\n var legendDrawnMap = zrUtil.createHashMap();\n var selectMode = legendModel.get('selectedMode');\n var excludeSeriesId = [];\n ecModel.eachRawSeries(function (seriesModel) {\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n });\n each(legendModel.getData(), function (legendItemModel, dataIndex) {\n var name = legendItemModel.get('name');\n // Use empty string or \\n as a newline string\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n var g = new Group();\n // @ts-ignore\n g.newline = true;\n contentGroup.add(g);\n return;\n }\n // Representitive series.\n var seriesModel = ecModel.getSeriesByName(name)[0];\n if (legendDrawnMap.get(name)) {\n // Have been drawn\n return;\n }\n // Legend to control series.\n if (seriesModel) {\n var data = seriesModel.getData();\n var lineVisualStyle = data.getVisual('legendLineStyle') || {};\n var legendIcon = data.getVisual('legendIcon');\n /**\n * `data.getVisual('style')` may be the color from the register\n * in series. For example, for line series,\n */\n var style = data.getVisual('style');\n var itemGroup = this._createItem(seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, lineVisualStyle, style, legendIcon, selectMode, api);\n itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n if (ecModel.ssr) {\n itemGroup.eachChild(function (child) {\n var ecData = getECData(child);\n ecData.seriesIndex = seriesModel.seriesIndex;\n ecData.dataIndex = dataIndex;\n ecData.ssrType = 'legend';\n });\n }\n legendDrawnMap.set(name, true);\n } else {\n // Legend to control data. In pie and funnel.\n ecModel.eachRawSeries(function (seriesModel) {\n // In case multiple series has same data name\n if (legendDrawnMap.get(name)) {\n return;\n }\n if (seriesModel.legendVisualProvider) {\n var provider = seriesModel.legendVisualProvider;\n if (!provider.containName(name)) {\n return;\n }\n var idx = provider.indexOfName(name);\n var style = provider.getItemVisual(idx, 'style');\n var legendIcon = provider.getItemVisual(idx, 'legendIcon');\n var colorArr = parse(style.fill);\n // Color may be set to transparent in visualMap when data is out of range.\n // Do not show nothing.\n if (colorArr && colorArr[3] === 0) {\n colorArr[3] = 0.2;\n // TODO color is set to 0, 0, 0, 0. Should show correct RGBA\n style = zrUtil.extend(zrUtil.extend({}, style), {\n fill: stringify(colorArr, 'rgba')\n });\n }\n var itemGroup = this._createItem(seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, {}, style, legendIcon, selectMode, api);\n // FIXME: consider different series has items with the same name.\n itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId))\n // Should not specify the series name, consider legend controls\n // more than one pie series.\n .on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n if (ecModel.ssr) {\n itemGroup.eachChild(function (child) {\n var ecData = getECData(child);\n ecData.seriesIndex = seriesModel.seriesIndex;\n ecData.dataIndex = dataIndex;\n ecData.ssrType = 'legend';\n });\n }\n legendDrawnMap.set(name, true);\n }\n }, this);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!legendDrawnMap.get(name)) {\n console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n }\n }\n }, this);\n if (selector) {\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\n }\n };\n LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n each(selector, function createSelectorButton(selectorItem) {\n var type = selectorItem.type;\n var labelText = new graphic.Text({\n style: {\n x: 0,\n y: 0,\n align: 'center',\n verticalAlign: 'middle'\n },\n onclick: function () {\n api.dispatchAction({\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n });\n }\n });\n selectorGroup.add(labelText);\n var labelModel = legendModel.getModel('selectorLabel');\n var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n setLabelStyle(labelText, {\n normal: labelModel,\n emphasis: emphasisLabelModel\n }, {\n defaultText: selectorItem.title\n });\n enableHoverEmphasis(labelText);\n });\n };\n LegendView.prototype._createItem = function (seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, lineVisualStyle, itemVisualStyle, legendIcon, selectMode, api) {\n var drawType = seriesModel.visualDrawType;\n var itemWidth = legendModel.get('itemWidth');\n var itemHeight = legendModel.get('itemHeight');\n var isSelected = legendModel.isSelected(name);\n var iconRotate = legendItemModel.get('symbolRotate');\n var symbolKeepAspect = legendItemModel.get('symbolKeepAspect');\n var legendIconType = legendItemModel.get('icon');\n legendIcon = legendIconType || legendIcon || 'roundRect';\n var style = getLegendStyle(legendIcon, legendItemModel, lineVisualStyle, itemVisualStyle, drawType, isSelected, api);\n var itemGroup = new Group();\n var textStyleModel = legendItemModel.getModel('textStyle');\n if (zrUtil.isFunction(seriesModel.getLegendIcon) && (!legendIconType || legendIconType === 'inherit')) {\n // Series has specific way to define legend icon\n itemGroup.add(seriesModel.getLegendIcon({\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n icon: legendIcon,\n iconRotate: iconRotate,\n itemStyle: style.itemStyle,\n lineStyle: style.lineStyle,\n symbolKeepAspect: symbolKeepAspect\n }));\n } else {\n // Use default legend icon policy for most series\n var rotate = legendIconType === 'inherit' && seriesModel.getData().getVisual('symbol') ? iconRotate === 'inherit' ? seriesModel.getData().getVisual('symbolRotate') : iconRotate : 0; // No rotation for no icon\n itemGroup.add(getDefaultLegendIcon({\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n icon: legendIcon,\n iconRotate: rotate,\n itemStyle: style.itemStyle,\n lineStyle: style.lineStyle,\n symbolKeepAspect: symbolKeepAspect\n }));\n }\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n var textAlign = itemAlign;\n var formatter = legendModel.get('formatter');\n var content = name;\n if (zrUtil.isString(formatter) && formatter) {\n content = formatter.replace('{name}', name != null ? name : '');\n } else if (zrUtil.isFunction(formatter)) {\n content = formatter(name);\n }\n var textColor = isSelected ? textStyleModel.getTextColor() : legendItemModel.get('inactiveColor');\n itemGroup.add(new graphic.Text({\n style: createTextStyle(textStyleModel, {\n text: content,\n x: textX,\n y: itemHeight / 2,\n fill: textColor,\n align: textAlign,\n verticalAlign: 'middle'\n }, {\n inheritColor: textColor\n })\n }));\n // Add a invisible rect to increase the area of mouse hover\n var hitRect = new graphic.Rect({\n shape: itemGroup.getBoundingRect(),\n style: {\n // Cannot use 'invisible' because SVG SSR will miss the node\n fill: 'transparent'\n }\n });\n var tooltipModel = legendItemModel.getModel('tooltip');\n if (tooltipModel.get('show')) {\n graphic.setTooltipConfig({\n el: hitRect,\n componentModel: legendModel,\n itemName: name,\n itemTooltipOption: tooltipModel.option\n });\n }\n itemGroup.add(hitRect);\n itemGroup.eachChild(function (child) {\n child.silent = true;\n });\n hitRect.silent = !selectMode;\n this.getContentGroup().add(itemGroup);\n enableHoverEmphasis(itemGroup);\n // @ts-ignore\n itemGroup.__legendDataIndex = dataIndex;\n return itemGroup;\n };\n LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var contentGroup = this.getContentGroup();\n var selectorGroup = this.getSelectorGroup();\n // Place items in contentGroup.\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n var contentRect = contentGroup.getBoundingRect();\n var contentPos = [-contentRect.x, -contentRect.y];\n selectorGroup.markRedraw();\n contentGroup.markRedraw();\n if (selector) {\n // Place buttons in selectorGroup\n layoutUtil.box(\n // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var orientIdx = legendModel.getOrient().index;\n var wh = orientIdx === 0 ? 'width' : 'height';\n var hw = orientIdx === 0 ? 'height' : 'width';\n var yx = orientIdx === 0 ? 'y' : 'x';\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n } else {\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n }\n // Always align selector to content as 'middle'\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n selectorGroup.x = selectorPos[0];\n selectorGroup.y = selectorPos[1];\n contentGroup.x = contentPos[0];\n contentGroup.y = contentPos[1];\n var mainRect = {\n x: 0,\n y: 0\n };\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n return mainRect;\n } else {\n contentGroup.x = contentPos[0];\n contentGroup.y = contentPos[1];\n return this.group.getBoundingRect();\n }\n };\n /**\n * @protected\n */\n LegendView.prototype.remove = function () {\n this.getContentGroup().removeAll();\n this._isFirstRender = true;\n };\n LegendView.type = 'legend.plain';\n return LegendView;\n}(ComponentView);\nfunction getLegendStyle(iconType, legendItemModel, lineVisualStyle, itemVisualStyle, drawType, isSelected, api) {\n /**\n * Use series style if is inherit;\n * elsewise, use legend style\n */\n function handleCommonProps(style, visualStyle) {\n // If lineStyle.width is 'auto', it is set to be 2 if series has border\n if (style.lineWidth === 'auto') {\n style.lineWidth = visualStyle.lineWidth > 0 ? 2 : 0;\n }\n each(style, function (propVal, propName) {\n style[propName] === 'inherit' && (style[propName] = visualStyle[propName]);\n });\n }\n // itemStyle\n var itemStyleModel = legendItemModel.getModel('itemStyle');\n var itemStyle = itemStyleModel.getItemStyle();\n var iconBrushType = iconType.lastIndexOf('empty', 0) === 0 ? 'fill' : 'stroke';\n var decalStyle = itemStyleModel.getShallow('decal');\n itemStyle.decal = !decalStyle || decalStyle === 'inherit' ? itemVisualStyle.decal : createOrUpdatePatternFromDecal(decalStyle, api);\n if (itemStyle.fill === 'inherit') {\n /**\n * Series with visualDrawType as 'stroke' should have\n * series stroke as legend fill\n */\n itemStyle.fill = itemVisualStyle[drawType];\n }\n if (itemStyle.stroke === 'inherit') {\n /**\n * icon type with \"emptyXXX\" should use fill color\n * in visual style\n */\n itemStyle.stroke = itemVisualStyle[iconBrushType];\n }\n if (itemStyle.opacity === 'inherit') {\n /**\n * Use lineStyle.opacity if drawType is stroke\n */\n itemStyle.opacity = (drawType === 'fill' ? itemVisualStyle : lineVisualStyle).opacity;\n }\n handleCommonProps(itemStyle, itemVisualStyle);\n // lineStyle\n var legendLineModel = legendItemModel.getModel('lineStyle');\n var lineStyle = legendLineModel.getLineStyle();\n handleCommonProps(lineStyle, lineVisualStyle);\n // Fix auto color to real color\n itemStyle.fill === 'auto' && (itemStyle.fill = itemVisualStyle.fill);\n itemStyle.stroke === 'auto' && (itemStyle.stroke = itemVisualStyle.fill);\n lineStyle.stroke === 'auto' && (lineStyle.stroke = itemVisualStyle.fill);\n if (!isSelected) {\n var borderWidth = legendItemModel.get('inactiveBorderWidth');\n /**\n * Since stroke is set to be inactiveBorderColor, it may occur that\n * there is no border in series but border in legend, so we need to\n * use border only when series has border if is set to be auto\n */\n var visualHasBorder = itemStyle[iconBrushType];\n itemStyle.lineWidth = borderWidth === 'auto' ? itemVisualStyle.lineWidth > 0 && visualHasBorder ? 2 : 0 : itemStyle.lineWidth;\n itemStyle.fill = legendItemModel.get('inactiveColor');\n itemStyle.stroke = legendItemModel.get('inactiveBorderColor');\n lineStyle.stroke = legendLineModel.get('inactiveColor');\n lineStyle.lineWidth = legendLineModel.get('inactiveWidth');\n }\n return {\n itemStyle: itemStyle,\n lineStyle: lineStyle\n };\n}\nfunction getDefaultLegendIcon(opt) {\n var symboType = opt.icon || 'roundRect';\n var icon = createSymbol(symboType, 0, 0, opt.itemWidth, opt.itemHeight, opt.itemStyle.fill, opt.symbolKeepAspect);\n icon.setStyle(opt.itemStyle);\n icon.rotation = (opt.iconRotate || 0) * Math.PI / 180;\n icon.setOrigin([opt.itemWidth / 2, opt.itemHeight / 2]);\n if (symboType.indexOf('empty') > -1) {\n icon.style.stroke = icon.style.fill;\n icon.style.fill = '#fff';\n icon.style.lineWidth = 2;\n }\n return icon;\n}\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n // downplay before unselect\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n api.dispatchAction({\n type: 'legendToggleSelect',\n name: seriesName != null ? seriesName : dataName\n });\n // highlight after select\n // TODO highlight immediately may cause animation loss.\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\nfunction isUseHoverLayer(api) {\n var list = api.getZr().storage.getDisplayList();\n var emphasisState;\n var i = 0;\n var len = list.length;\n while (i < len && !(emphasisState = list[i].states.emphasis)) {\n i++;\n }\n return emphasisState && emphasisState.hoverLayer;\n}\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n // If element hover will move to a hoverLayer.\n if (!isUseHoverLayer(api)) {\n api.dispatchAction({\n type: 'highlight',\n seriesName: seriesName,\n name: dataName,\n excludeSeriesId: excludeSeriesId\n });\n }\n}\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n // If element hover will move to a hoverLayer.\n if (!isUseHoverLayer(api)) {\n api.dispatchAction({\n type: 'downplay',\n seriesName: seriesName,\n name: dataName,\n excludeSeriesId: excludeSeriesId\n });\n }\n}\nexport default LegendView;","\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*/\nexport default function legendFilter(ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n if (legendModels && legendModels.length) {\n ecModel.filterSeries(function (series) {\n // If in any legend component the status is not selected.\n // Because in legend series is assumed selected when it is not in the legend data.\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(series.name)) {\n return false;\n }\n }\n return true;\n });\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*/\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*/\n// @ts-nocheck\nimport { curry, each } from 'zrender/lib/core/util.js';\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n var selectedMap = {};\n var isToggleSelect = methodName === 'toggleSelected';\n var isSelected;\n // Update all legend components\n ecModel.eachComponent('legend', function (legendModel) {\n if (isToggleSelect && isSelected != null) {\n // Force other legend has same selected status\n // Or the first is toggled to true and other are toggled to false\n // In the case one legend has some item unSelected in option. And if other legend\n // doesn't has the item, they will assume it is selected.\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n legendModel[methodName]();\n } else {\n legendModel[methodName](payload.name);\n isSelected = legendModel.isSelected(payload.name);\n }\n var legendData = legendModel.getData();\n each(legendData, function (model) {\n var name = model.get('name');\n // Wrap element\n if (name === '\\n' || name === '') {\n return;\n }\n var isItemSelected = legendModel.isSelected(name);\n if (selectedMap.hasOwnProperty(name)) {\n // Unselected if any legend is unselected\n selectedMap[name] = selectedMap[name] && isItemSelected;\n } else {\n selectedMap[name] = isItemSelected;\n }\n });\n });\n // Return the event explicitly\n return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n selected: selectedMap\n } : {\n name: payload.name,\n selected: selectedMap\n };\n}\nexport function installLegendAction(registers) {\n /**\n * @event legendToggleSelect\n * @type {Object}\n * @property {string} type 'legendToggleSelect'\n * @property {string} [from]\n * @property {string} name Series name or data item name\n */\n registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n /**\n * @event legendSelect\n * @type {Object}\n * @property {string} type 'legendSelect'\n * @property {string} name Series name or data item name\n */\n registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n /**\n * @event legendUnSelect\n * @type {Object}\n * @property {string} type 'legendUnSelect'\n * @property {string} name Series name or data item name\n */\n registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\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/**\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 LegendModel from './LegendModel.js';\nimport LegendView from './LegendView.js';\nimport legendFilter from './legendFilter.js';\nimport { installLegendAction } from './legendAction.js';\nexport function install(registers) {\n registers.registerComponentModel(LegendModel);\n registers.registerComponentView(LegendView);\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n registers.registerSubTypeDefaulter('legend', function () {\n return 'plain';\n });\n installLegendAction(registers);\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/**\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 { __extends } from \"tslib\";\nimport LegendModel from './LegendModel.js';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout.js';\nimport { inheritDefaultOption } from '../../util/component.js';\nvar ScrollableLegendModel = /** @class */function (_super) {\n __extends(ScrollableLegendModel, _super);\n function ScrollableLegendModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = ScrollableLegendModel.type;\n return _this;\n }\n /**\n * @param {number} scrollDataIndex\n */\n ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n this.option.scrollDataIndex = scrollDataIndex;\n };\n ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n var inputPositionParams = getLayoutParams(option);\n _super.prototype.init.call(this, option, parentModel, ecModel);\n mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n };\n /**\n * @override\n */\n ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n _super.prototype.mergeOption.call(this, option, ecModel);\n mergeAndNormalizeLayoutParams(this, this.option, option);\n };\n ScrollableLegendModel.type = 'legend.scroll';\n ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n scrollDataIndex: 0,\n pageButtonItemGap: 5,\n pageButtonGap: null,\n pageButtonPosition: 'end',\n pageFormatter: '{current}/{total}',\n pageIcons: {\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n },\n pageIconColor: '#2f4554',\n pageIconInactiveColor: '#aaa',\n pageIconSize: 15,\n pageTextStyle: {\n color: '#333'\n },\n animationDurationUpdate: 800\n });\n return ScrollableLegendModel;\n}(LegendModel);\n;\n// Do not `ignoreSize` to enable setting {left: 10, right: 10}.\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n var orient = legendModel.getOrient();\n var ignoreSize = [1, 1];\n ignoreSize[orient.index] = 0;\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: !!ignoreSize\n });\n}\nexport default ScrollableLegendModel;","\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 { __extends } from \"tslib\";\n/**\n * Separate legend and scrollable legend to reduce package size.\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport LegendView from './LegendView.js';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\nvar ScrollableLegendView = /** @class */function (_super) {\n __extends(ScrollableLegendView, _super);\n function ScrollableLegendView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = ScrollableLegendView.type;\n _this.newlineDisabled = true;\n _this._currentIndex = 0;\n return _this;\n }\n ScrollableLegendView.prototype.init = function () {\n _super.prototype.init.call(this);\n this.group.add(this._containerGroup = new Group());\n this._containerGroup.add(this.getContentGroup());\n this.group.add(this._controllerGroup = new Group());\n };\n /**\n * @override\n */\n ScrollableLegendView.prototype.resetInner = function () {\n _super.prototype.resetInner.call(this);\n this._controllerGroup.removeAll();\n this._containerGroup.removeClipPath();\n this._containerGroup.__rectSize = null;\n };\n /**\n * @override\n */\n ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var self = this;\n // Render content items.\n _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n var controllerGroup = this._controllerGroup;\n // FIXME: support be 'auto' adapt to size number text length,\n // e.g., '3/12345' should not overlap with the control arrow button.\n var pageIconSize = legendModel.get('pageIconSize', true);\n var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n createPageButton('pagePrev', 0);\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n controllerGroup.add(new graphic.Text({\n name: 'pageText',\n style: {\n // Placeholder to calculate a proper layout.\n text: 'xx/xx',\n fill: pageTextStyleModel.getTextColor(),\n font: pageTextStyleModel.getFont(),\n verticalAlign: 'middle',\n align: 'center'\n },\n silent: true\n }));\n createPageButton('pageNext', 1);\n function createPageButton(name, iconIdx) {\n var pageDataIndexName = name + 'DataIndex';\n var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n // Buttons will be created in each render, so we do not need\n // to worry about avoiding using legendModel kept in scope.\n onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n }, {\n x: -pageIconSizeArr[0] / 2,\n y: -pageIconSizeArr[1] / 2,\n width: pageIconSizeArr[0],\n height: pageIconSizeArr[1]\n });\n icon.name = name;\n controllerGroup.add(icon);\n }\n };\n /**\n * @override\n */\n ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n var hw = WH[1 - orientIdx];\n var yx = XY[1 - orientIdx];\n selector && layoutUtil.box(\n // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var processMaxSize = zrUtil.clone(maxSize);\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n if (selector) {\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n } else {\n var offset = selectorRect[wh] + selectorButtonGap;\n selectorPos[orientIdx] -= offset;\n mainRect[xy] -= offset;\n }\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n selectorGroup.x = selectorPos[0];\n selectorGroup.y = selectorPos[1];\n selectorGroup.markRedraw();\n }\n return mainRect;\n };\n ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n var contentGroup = this.getContentGroup();\n var containerGroup = this._containerGroup;\n var controllerGroup = this._controllerGroup;\n // Place items in contentGroup.\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n layoutUtil.box(\n // Buttons in controller are layout always horizontally.\n 'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n var contentRect = contentGroup.getBoundingRect();\n var controllerRect = controllerGroup.getBoundingRect();\n var showController = this._showController = contentRect[wh] > maxSize[wh];\n // In case that the inner elements of contentGroup layout do not based on [0, 0]\n var contentPos = [-contentRect.x, -contentRect.y];\n // Remain contentPos when scroll animation perfroming.\n // If first rendering, `contentGroup.position` is [0, 0], which\n // does not make sense and may cause unexepcted animation if adopted.\n if (!isFirstRender) {\n contentPos[orientIdx] = contentGroup[xy];\n }\n // Layout container group based on 0.\n var containerPos = [0, 0];\n var controllerPos = [-controllerRect.x, -controllerRect.y];\n var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\n // Place containerGroup and controllerGroup and contentGroup.\n if (showController) {\n var pageButtonPosition = legendModel.get('pageButtonPosition', true);\n // controller is on the right / bottom.\n if (pageButtonPosition === 'end') {\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n }\n // controller is on the left / top.\n else {\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n }\n }\n // Always align controller to content as 'middle'.\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n contentGroup.setPosition(contentPos);\n containerGroup.setPosition(containerPos);\n controllerGroup.setPosition(controllerPos);\n // Calculate `mainRect` and set `clipPath`.\n // mainRect should not be calculated by `this.group.getBoundingRect()`\n // for sake of the overflow.\n var mainRect = {\n x: 0,\n y: 0\n };\n // Consider content may be overflow (should be clipped).\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\n // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n containerGroup.__rectSize = maxSize[wh];\n if (showController) {\n var clipShape = {\n x: 0,\n y: 0\n };\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n clipShape[hw] = mainRect[hw];\n containerGroup.setClipPath(new graphic.Rect({\n shape: clipShape\n }));\n // Consider content may be larger than container, container rect\n // can not be obtained from `containerGroup.getBoundingRect()`.\n containerGroup.__rectSize = clipShape[wh];\n } else {\n // Do not remove or ignore controller. Keep them set as placeholders.\n controllerGroup.eachChild(function (child) {\n child.attr({\n invisible: true,\n silent: true\n });\n });\n }\n // Content translate animation.\n var pageInfo = this._getPageInfo(legendModel);\n pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n x: pageInfo.contentPosition[0],\n y: pageInfo.contentPosition[1]\n },\n // When switch from \"show controller\" to \"not show controller\", view should be\n // updated immediately without animation, otherwise causes weird effect.\n showController ? legendModel : null);\n this._updatePageInfoView(legendModel, pageInfo);\n return mainRect;\n };\n ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\n scrollDataIndex != null && api.dispatchAction({\n type: 'legendScroll',\n scrollDataIndex: scrollDataIndex,\n legendId: legendModel.id\n });\n };\n ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n var controllerGroup = this._controllerGroup;\n zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n var key = name + 'DataIndex';\n var canJump = pageInfo[key] != null;\n var icon = controllerGroup.childOfName(name);\n if (icon) {\n icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n icon.cursor = canJump ? 'pointer' : 'default';\n }\n });\n var pageText = controllerGroup.childOfName('pageText');\n var pageFormatter = legendModel.get('pageFormatter');\n var pageIndex = pageInfo.pageIndex;\n var current = pageIndex != null ? pageIndex + 1 : 0;\n var total = pageInfo.pageCount;\n pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n current: current,\n total: total\n }));\n };\n /**\n * contentPosition: Array.<number>, null when data item not found.\n * pageIndex: number, null when data item not found.\n * pageCount: number, always be a number, can be 0.\n * pagePrevDataIndex: number, null when no previous page.\n * pageNextDataIndex: number, null when no next page.\n * }\n */\n ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n var contentGroup = this.getContentGroup();\n var containerRectSize = this._containerGroup.__rectSize;\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n var children = contentGroup.children();\n var targetItem = children[targetItemIndex];\n var itemCount = children.length;\n var pCount = !itemCount ? 0 : 1;\n var result = {\n contentPosition: [contentGroup.x, contentGroup.y],\n pageCount: pCount,\n pageIndex: pCount - 1,\n pagePrevDataIndex: null,\n pageNextDataIndex: null\n };\n if (!targetItem) {\n return result;\n }\n var targetItemInfo = getItemInfo(targetItem);\n result.contentPosition[orientIdx] = -targetItemInfo.s;\n // Strategy:\n // (1) Always align based on the left/top most item.\n // (2) It is user-friendly that the last item shown in the\n // current window is shown at the begining of next window.\n // Otherwise if half of the last item is cut by the window,\n // it will have no chance to display entirely.\n // (3) Consider that item size probably be different, we\n // have calculate pageIndex by size rather than item index,\n // and we can not get page index directly by division.\n // (4) The window is to narrow to contain more than\n // one item, we should make sure that the page can be fliped.\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n currItemInfo = getItemInfo(children[i]);\n if (\n // Half of the last item is out of the window.\n !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize\n // If the current item does not intersect with the window, the new page\n // can be started at the current item or the last item.\n || currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n if (winEndItemInfo.i > winStartItemInfo.i) {\n winStartItemInfo = winEndItemInfo;\n } else {\n // e.g., when page size is smaller than item size.\n winStartItemInfo = currItemInfo;\n }\n if (winStartItemInfo) {\n if (result.pageNextDataIndex == null) {\n result.pageNextDataIndex = winStartItemInfo.i;\n }\n ++result.pageCount;\n }\n }\n winEndItemInfo = currItemInfo;\n }\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n currItemInfo = getItemInfo(children[i]);\n if (\n // If the the end item does not intersect with the window started\n // from the current item, a page can be settled.\n (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)\n // e.g., when page size is smaller than item size.\n ) && winStartItemInfo.i < winEndItemInfo.i) {\n winEndItemInfo = winStartItemInfo;\n if (result.pagePrevDataIndex == null) {\n result.pagePrevDataIndex = winStartItemInfo.i;\n }\n ++result.pageCount;\n ++result.pageIndex;\n }\n winStartItemInfo = currItemInfo;\n }\n return result;\n function getItemInfo(el) {\n if (el) {\n var itemRect = el.getBoundingRect();\n var start = itemRect[xy] + el[xy];\n return {\n s: start,\n e: start + itemRect[wh],\n i: el.__legendDataIndex\n };\n }\n }\n function intersect(itemInfo, winStart) {\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n }\n };\n ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n if (!this._showController) {\n return 0;\n }\n var index;\n var contentGroup = this.getContentGroup();\n var defaultIndex;\n contentGroup.eachChild(function (child, idx) {\n var legendDataIdx = child.__legendDataIndex;\n // FIXME\n // If the given targetDataIndex (from model) is illegal,\n // we use defaultIndex. But the index on the legend model and\n // action payload is still illegal. That case will not be\n // changed until some scenario requires.\n if (defaultIndex == null && legendDataIdx != null) {\n defaultIndex = idx;\n }\n if (legendDataIdx === targetDataIndex) {\n index = idx;\n }\n });\n return index != null ? index : defaultIndex;\n };\n ScrollableLegendView.type = 'legend.scroll';\n return ScrollableLegendView;\n}(LegendView);\nexport default ScrollableLegendView;","\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*/\nexport default function installScrollableLegendAction(registers) {\n /**\n * @event legendScroll\n * @type {Object}\n * @property {string} type 'legendScroll'\n * @property {string} scrollDataIndex\n */\n registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n var scrollDataIndex = payload.scrollDataIndex;\n scrollDataIndex != null && ecModel.eachComponent({\n mainType: 'legend',\n subType: 'scroll',\n query: payload\n }, function (legendModel) {\n legendModel.setScrollDataIndex(scrollDataIndex);\n });\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*/\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 { use } from '../../extension.js';\nimport { install as installLegendPlain } from './installLegendPlain.js';\nimport ScrollableLegendModel from './ScrollableLegendModel.js';\nimport ScrollableLegendView from './ScrollableLegendView.js';\nimport installScrollableLegendAction from './scrollableLegendAction.js';\nexport function install(registers) {\n use(installLegendPlain);\n registers.registerComponentModel(ScrollableLegendModel);\n registers.registerComponentView(ScrollableLegendView);\n installScrollableLegendAction(registers);\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/**\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 { use } from '../../extension.js';\nimport { install as installLegendPlain } from './installLegendPlain.js';\nimport { install as installLegendScroll } from './installLegendScroll.js';\nexport function install(registers) {\n use(installLegendPlain);\n use(installLegendScroll);\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/**\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 { parsePercent, linearMap } from '../../util/number.js';\nimport * as layout from '../../util/layout.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { normalizeArcAngles } from 'zrender/lib/core/PathProxy.js';\nimport { makeInner } from '../../util/model.js';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\nexport function getBasicPieLayout(seriesModel, api) {\n var viewRect = getViewRect(seriesModel, api);\n // center can be string or number when coordinateSystem is specified\n var center = seriesModel.get('center');\n var radius = seriesModel.get('radius');\n if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n var width = parsePercent(viewRect.width, api.getWidth());\n var height = parsePercent(viewRect.height, api.getHeight());\n var size = Math.min(width, height);\n var r0 = parsePercent(radius[0], size / 2);\n var r = parsePercent(radius[1], size / 2);\n var cx;\n var cy;\n var coordSys = seriesModel.coordinateSystem;\n if (coordSys) {\n // percentage is not allowed when coordinate system is specified\n var point = coordSys.dataToPoint(center);\n cx = point[0] || 0;\n cy = point[1] || 0;\n } else {\n if (!zrUtil.isArray(center)) {\n center = [center, center];\n }\n cx = parsePercent(center[0], width) + viewRect.x;\n cy = parsePercent(center[1], height) + viewRect.y;\n }\n return {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r\n };\n}\nexport default function pieLayout(seriesType, ecModel, api) {\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var viewRect = getViewRect(seriesModel, api);\n var _a = getBasicPieLayout(seriesModel, api),\n cx = _a.cx,\n cy = _a.cy,\n r = _a.r,\n r0 = _a.r0;\n var startAngle = -seriesModel.get('startAngle') * RADIAN;\n var endAngle = seriesModel.get('endAngle');\n var padAngle = seriesModel.get('padAngle') * RADIAN;\n endAngle = endAngle === 'auto' ? startAngle - PI2 : -endAngle * RADIAN;\n var minAngle = seriesModel.get('minAngle') * RADIAN;\n var minAndPadAngle = minAngle + padAngle;\n var validDataCount = 0;\n data.each(valueDim, function (value) {\n !isNaN(value) && validDataCount++;\n });\n var sum = data.getSum(valueDim);\n // Sum may be 0\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\n var clockwise = seriesModel.get('clockwise');\n var roseType = seriesModel.get('roseType');\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n // [0...max]\n var extent = data.getDataExtent(valueDim);\n extent[0] = 0;\n var dir = clockwise ? 1 : -1;\n var angles = [startAngle, endAngle];\n var halfPadAngle = dir * padAngle / 2;\n normalizeArcAngles(angles, !clockwise);\n startAngle = angles[0], endAngle = angles[1];\n var layoutData = getSeriesLayoutData(seriesModel);\n layoutData.startAngle = startAngle;\n layoutData.endAngle = endAngle;\n layoutData.clockwise = clockwise;\n var angleRange = Math.abs(endAngle - startAngle);\n // In the case some sector angle is smaller than minAngle\n var restAngle = angleRange;\n var valueSumLargerThanMinAngle = 0;\n var currentAngle = startAngle;\n data.setLayout({\n viewRect: viewRect,\n r: r\n });\n data.each(valueDim, function (value, idx) {\n var angle;\n if (isNaN(value)) {\n data.setItemLayout(idx, {\n angle: NaN,\n startAngle: NaN,\n endAngle: NaN,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? NaN : r\n });\n return;\n }\n // FIXME 兼容 2.0 但是 roseType 是 area 的时候才是这样?\n if (roseType !== 'area') {\n angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n } else {\n angle = angleRange / validDataCount;\n }\n if (angle < minAndPadAngle) {\n angle = minAndPadAngle;\n restAngle -= minAndPadAngle;\n } else {\n valueSumLargerThanMinAngle += value;\n }\n var endAngle = currentAngle + dir * angle;\n // calculate display angle\n var actualStartAngle = 0;\n var actualEndAngle = 0;\n if (padAngle > angle) {\n actualStartAngle = currentAngle + dir * angle / 2;\n actualEndAngle = actualStartAngle;\n } else {\n actualStartAngle = currentAngle + halfPadAngle;\n actualEndAngle = endAngle - halfPadAngle;\n }\n data.setItemLayout(idx, {\n angle: angle,\n startAngle: actualStartAngle,\n endAngle: actualEndAngle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? linearMap(value, extent, [r0, r]) : r\n });\n currentAngle = endAngle;\n });\n // Some sector is constrained by minAngle and padAngle\n // Rest sectors needs recalculate angle\n if (restAngle < PI2 && validDataCount) {\n // Average the angle if rest angle is not enough after all angles is\n // Constrained by minAngle and padAngle\n if (restAngle <= 1e-3) {\n var angle_1 = angleRange / validDataCount;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout_1 = data.getItemLayout(idx);\n layout_1.angle = angle_1;\n var actualStartAngle = 0;\n var actualEndAngle = 0;\n if (angle_1 < padAngle) {\n actualStartAngle = startAngle + dir * (idx + 1 / 2) * angle_1;\n actualEndAngle = actualStartAngle;\n } else {\n actualStartAngle = startAngle + dir * idx * angle_1 + halfPadAngle;\n actualEndAngle = startAngle + dir * (idx + 1) * angle_1 - halfPadAngle;\n }\n layout_1.startAngle = actualStartAngle;\n layout_1.endAngle = actualEndAngle;\n }\n });\n } else {\n unitRadian = restAngle / valueSumLargerThanMinAngle;\n currentAngle = startAngle;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout_2 = data.getItemLayout(idx);\n var angle = layout_2.angle === minAndPadAngle ? minAndPadAngle : value * unitRadian;\n var actualStartAngle = 0;\n var actualEndAngle = 0;\n if (angle < padAngle) {\n actualStartAngle = currentAngle + dir * angle / 2;\n actualEndAngle = actualStartAngle;\n } else {\n actualStartAngle = currentAngle + halfPadAngle;\n actualEndAngle = currentAngle + dir * angle - halfPadAngle;\n }\n layout_2.startAngle = actualStartAngle;\n layout_2.endAngle = actualEndAngle;\n currentAngle += dir * angle;\n }\n });\n }\n }\n });\n}\nexport var getSeriesLayoutData = makeInner();","\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*/\nexport default function dataFilter(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n if (!legendModels || !legendModels.length) {\n return;\n }\n var data = seriesModel.getData();\n data.filterSelf(function (idx) {\n var name = data.getName(idx);\n // If in any legend component the status is not selected.\n for (var i = 0; i < legendModels.length; i++) {\n // @ts-ignore FIXME: LegendModel\n if (!legendModels[i].isSelected(name)) {\n return false;\n }\n }\n return true;\n });\n }\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*/\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*/\n// FIXME emphasis label position is not same with normal label position\nimport { parsePercent } from '../../util/number.js';\nimport { Point } from '../../util/graphic.js';\nimport { each, isNumber } from 'zrender/lib/core/util.js';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper.js';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper.js';\nvar RADIAN = Math.PI / 180;\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n if (list.length < 2) {\n return;\n }\n ;\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n var rB = semi.rB;\n var rB2 = rB * rB;\n for (var i = 0; i < semi.list.length; i++) {\n var item = semi.list[i];\n var dy = Math.abs(item.label.y - cy);\n // horizontal r is always same with original r because x is not changed.\n var rA = r + item.len;\n var rA2 = rA * rA;\n // Use ellipse implicit function to calculate x\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n var newX = cx + (dx + item.len2) * dir;\n var deltaX = newX - item.label.x;\n var newTargetWidth = item.targetTextWidth - deltaX * dir;\n // text x is changed, so need to recalculate width.\n constrainTextWidth(item, newTargetWidth, true);\n item.label.x = newX;\n }\n }\n // Adjust X based on the shifted y. Make tight labels aligned on an ellipse curve.\n function recalculateX(items) {\n // Extremes of\n var topSemi = {\n list: [],\n maxY: 0\n };\n var bottomSemi = {\n list: [],\n maxY: 0\n };\n for (var i = 0; i < items.length; i++) {\n if (items[i].labelAlignTo !== 'none') {\n continue;\n }\n var item = items[i];\n var semi = item.label.y > cy ? bottomSemi : topSemi;\n var dy = Math.abs(item.label.y - cy);\n if (dy >= semi.maxY) {\n var dx = item.label.x - cx - item.len2 * dir;\n // horizontal r is always same with original r because x is not changed.\n var rA = r + item.len;\n // Canculate rB based on the topest / bottemest label.\n var rB = Math.abs(dx) < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n semi.rB = rB;\n semi.maxY = dy;\n }\n semi.list.push(item);\n }\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n }\n var len = list.length;\n for (var i = 0; i < len; i++) {\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n var dx = list[i].label.x - farthestX;\n list[i].linePoints[1][0] += dx;\n list[i].label.x = farthestX;\n }\n }\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n recalculateX(list);\n }\n}\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n var leftList = [];\n var rightList = [];\n var leftmostX = Number.MAX_VALUE;\n var rightmostX = -Number.MAX_VALUE;\n for (var i = 0; i < labelLayoutList.length; i++) {\n var label = labelLayoutList[i].label;\n if (isPositionCenter(labelLayoutList[i])) {\n continue;\n }\n if (label.x < cx) {\n leftmostX = Math.min(leftmostX, label.x);\n leftList.push(labelLayoutList[i]);\n } else {\n rightmostX = Math.max(rightmostX, label.x);\n rightList.push(labelLayoutList[i]);\n }\n }\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n if (!isPositionCenter(layout) && layout.linePoints) {\n if (layout.labelStyleWidth != null) {\n continue;\n }\n var label = layout.label;\n var linePoints = layout.linePoints;\n var targetTextWidth = void 0;\n if (layout.labelAlignTo === 'edge') {\n if (label.x < cx) {\n targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n } else {\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n }\n } else if (layout.labelAlignTo === 'labelLine') {\n if (label.x < cx) {\n targetTextWidth = leftmostX - viewLeft - layout.bleedMargin;\n } else {\n targetTextWidth = viewLeft + viewWidth - rightmostX - layout.bleedMargin;\n }\n } else {\n if (label.x < cx) {\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n } else {\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n }\n }\n layout.targetTextWidth = targetTextWidth;\n constrainTextWidth(layout, targetTextWidth);\n }\n }\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n if (!isPositionCenter(layout) && layout.linePoints) {\n var label = layout.label;\n var linePoints = layout.linePoints;\n var isAlignToEdge = layout.labelAlignTo === 'edge';\n var padding = label.style.padding;\n var paddingH = padding ? padding[1] + padding[3] : 0;\n // textRect.width already contains paddingH if bgColor is set\n var extraPaddingH = label.style.backgroundColor ? 0 : paddingH;\n var realTextWidth = layout.rect.width + extraPaddingH;\n var dist = linePoints[1][0] - linePoints[2][0];\n if (isAlignToEdge) {\n if (label.x < cx) {\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n } else {\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n }\n } else {\n if (label.x < cx) {\n linePoints[2][0] = label.x + layout.labelDistance;\n } else {\n linePoints[2][0] = label.x - layout.labelDistance;\n }\n linePoints[1][0] = linePoints[2][0] + dist;\n }\n linePoints[1][1] = linePoints[2][1] = label.y;\n }\n }\n}\n/**\n * Set max width of each label, and then wrap each label to the max width.\n *\n * @param layout label layout\n * @param availableWidth max width for the label to display\n * @param forceRecalculate recaculate the text layout even if the current width\n * is smaller than `availableWidth`. This is useful when the text was previously\n * wrapped by calling `constrainTextWidth` but now `availableWidth` changed, in\n * which case, previous wrapping should be redo.\n */\nfunction constrainTextWidth(layout, availableWidth, forceRecalculate) {\n if (forceRecalculate === void 0) {\n forceRecalculate = false;\n }\n if (layout.labelStyleWidth != null) {\n // User-defined style.width has the highest priority.\n return;\n }\n var label = layout.label;\n var style = label.style;\n var textRect = layout.rect;\n var bgColor = style.backgroundColor;\n var padding = style.padding;\n var paddingH = padding ? padding[1] + padding[3] : 0;\n var overflow = style.overflow;\n // textRect.width already contains paddingH if bgColor is set\n var oldOuterWidth = textRect.width + (bgColor ? 0 : paddingH);\n if (availableWidth < oldOuterWidth || forceRecalculate) {\n var oldHeight = textRect.height;\n if (overflow && overflow.match('break')) {\n // Temporarily set background to be null to calculate\n // the bounding box without background.\n label.setStyle('backgroundColor', null);\n // Set constraining width\n label.setStyle('width', availableWidth - paddingH);\n // This is the real bounding box of the text without padding.\n var innerRect = label.getBoundingRect();\n label.setStyle('width', Math.ceil(innerRect.width));\n label.setStyle('backgroundColor', bgColor);\n } else {\n var availableInnerWidth = availableWidth - paddingH;\n var newWidth = availableWidth < oldOuterWidth\n // Current text is too wide, use `availableWidth` as max width.\n ? availableInnerWidth :\n // Current available width is enough, but the text may have\n // already been wrapped with a smaller available width.\n forceRecalculate ? availableInnerWidth > layout.unconstrainedWidth\n // Current available is larger than text width,\n // so don't constrain width (otherwise it may have\n // empty space in the background).\n ? null\n // Current available is smaller than text width, so\n // use the current available width as constraining\n // width.\n : availableInnerWidth\n // Current available width is enough, so no need to\n // constrain.\n : null;\n label.setStyle('width', newWidth);\n }\n var newRect = label.getBoundingRect();\n textRect.width = newRect.width;\n var margin = (label.style.margin || 0) + 2.1;\n textRect.height = newRect.height + margin;\n textRect.y -= (textRect.height - oldHeight) / 2;\n }\n}\nfunction isPositionCenter(sectorShape) {\n // Not change x for center label\n return sectorShape.position === 'center';\n}\nexport default function pieLabelLayout(seriesModel) {\n var data = seriesModel.getData();\n var labelLayoutList = [];\n var cx;\n var cy;\n var hasLabelRotate = false;\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n var viewRect = data.getLayout('viewRect');\n var r = data.getLayout('r');\n var viewWidth = viewRect.width;\n var viewLeft = viewRect.x;\n var viewTop = viewRect.y;\n var viewHeight = viewRect.height;\n function setNotShow(el) {\n el.ignore = true;\n }\n function isLabelShown(label) {\n if (!label.ignore) {\n return true;\n }\n for (var key in label.states) {\n if (label.states[key].ignore === false) {\n return true;\n }\n }\n return false;\n }\n data.each(function (idx) {\n var sector = data.getItemGraphicEl(idx);\n var sectorShape = sector.shape;\n var label = sector.getTextContent();\n var labelLine = sector.getTextGuideLine();\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n // Use position in normal or emphasis\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n var labelDistance = labelModel.get('distanceToLabelLine');\n var labelAlignTo = labelModel.get('alignTo');\n var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n var bleedMargin = labelModel.get('bleedMargin');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineLen = labelLineModel.get('length');\n labelLineLen = parsePercent(labelLineLen, viewWidth);\n var labelLineLen2 = labelLineModel.get('length2');\n labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n each(label.states, setNotShow);\n label.ignore = true;\n if (labelLine) {\n each(labelLine.states, setNotShow);\n labelLine.ignore = true;\n }\n return;\n }\n if (!isLabelShown(label)) {\n return;\n }\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n var nx = Math.cos(midAngle);\n var ny = Math.sin(midAngle);\n var textX;\n var textY;\n var linePoints;\n var textAlign;\n cx = sectorShape.cx;\n cy = sectorShape.cy;\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n if (labelPosition === 'center') {\n textX = sectorShape.cx;\n textY = sectorShape.cy;\n textAlign = 'center';\n } else {\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n textX = x1 + nx * 3;\n textY = y1 + ny * 3;\n if (!isLabelInside) {\n // For roseType\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n var y3 = y2;\n if (labelAlignTo === 'edge') {\n // Adjust textX because text align of edge is opposite\n textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n } else {\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n }\n textY = y3;\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n }\n textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n }\n var PI = Math.PI;\n var labelRotate = 0;\n var rotate = labelModel.get('rotate');\n if (isNumber(rotate)) {\n labelRotate = rotate * (PI / 180);\n } else if (labelPosition === 'center') {\n labelRotate = 0;\n } else if (rotate === 'radial' || rotate === true) {\n var radialAngle = nx < 0 ? -midAngle + PI : -midAngle;\n labelRotate = radialAngle;\n } else if (rotate === 'tangential' && labelPosition !== 'outside' && labelPosition !== 'outer') {\n var rad = Math.atan2(nx, ny);\n if (rad < 0) {\n rad = PI * 2 + rad;\n }\n var isDown = ny > 0;\n if (isDown) {\n rad = PI + rad;\n }\n labelRotate = rad - PI;\n }\n hasLabelRotate = !!labelRotate;\n label.x = textX;\n label.y = textY;\n label.rotation = labelRotate;\n label.setStyle({\n verticalAlign: 'middle'\n });\n // Not sectorShape the inside label\n if (!isLabelInside) {\n var textRect = label.getBoundingRect().clone();\n textRect.applyTransform(label.getComputedTransform());\n // Text has a default 1px stroke. Exclude this.\n var margin = (label.style.margin || 0) + 2.1;\n textRect.y -= margin / 2;\n textRect.height += margin;\n labelLayoutList.push({\n label: label,\n labelLine: labelLine,\n position: labelPosition,\n len: labelLineLen,\n len2: labelLineLen2,\n minTurnAngle: labelLineModel.get('minTurnAngle'),\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n surfaceNormal: new Point(nx, ny),\n linePoints: linePoints,\n textAlign: textAlign,\n labelDistance: labelDistance,\n labelAlignTo: labelAlignTo,\n edgeDistance: edgeDistance,\n bleedMargin: bleedMargin,\n rect: textRect,\n unconstrainedWidth: textRect.width,\n labelStyleWidth: label.style.width\n });\n } else {\n label.setStyle({\n align: textAlign\n });\n var selectState = label.states.select;\n if (selectState) {\n selectState.x += label.x;\n selectState.y += label.y;\n }\n }\n sector.setTextConfig({\n inside: isLabelInside\n });\n });\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n }\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n var label = layout.label;\n var labelLine = layout.labelLine;\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\n if (label) {\n label.setStyle({\n align: layout.textAlign\n });\n if (notShowLabel) {\n each(label.states, setNotShow);\n label.ignore = true;\n }\n var selectState = label.states.select;\n if (selectState) {\n selectState.x += label.x;\n selectState.y += label.y;\n }\n }\n if (labelLine) {\n var linePoints = layout.linePoints;\n if (notShowLabel || !linePoints) {\n each(labelLine.states, setNotShow);\n labelLine.ignore = true;\n } else {\n limitTurnAngle(linePoints, layout.minTurnAngle);\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n labelLine.setShape({\n points: linePoints\n });\n // Set the anchor to the midpoint of sector\n label.__hostTarget.textGuideLineConfig = {\n anchor: new Point(linePoints[0][0], linePoints[0][1])\n };\n }\n }\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*/\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 { __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport ChartView from '../../view/Chart.js';\nimport labelLayout from './labelLayout.js';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getSectorCornerRadius } from '../helper/sectorHelper.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\nimport { getBasicPieLayout, getSeriesLayoutData } from './pieLayout.js';\n/**\n * Piece of pie including Sector, Label, LabelLine\n */\nvar PiePiece = /** @class */function (_super) {\n __extends(PiePiece, _super);\n function PiePiece(data, idx, startAngle) {\n var _this = _super.call(this) || this;\n _this.z2 = 2;\n var text = new graphic.Text();\n _this.setTextContent(text);\n _this.updateData(data, idx, startAngle, true);\n return _this;\n }\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n var sector = this;\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n var layout = data.getItemLayout(idx);\n // cornerRadius & innerCornerRadius doesn't exist in the item layout. Use `0` if null value is specified.\n // see `setItemLayout` in `pieLayout.ts`.\n var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout, true), layout);\n // Ignore NaN data.\n if (isNaN(sectorShape.startAngle)) {\n // Use NaN shape to avoid drawing shape.\n sector.setShape(sectorShape);\n return;\n }\n if (firstCreate) {\n sector.setShape(sectorShape);\n var animationType = seriesModel.getShallow('animationType');\n if (seriesModel.ecModel.ssr) {\n // Use scale animation in SSR mode(opacity?)\n // Because CSS SVG animation doesn't support very customized shape animation.\n graphic.initProps(sector, {\n scaleX: 0,\n scaleY: 0\n }, seriesModel, {\n dataIndex: idx,\n isFrom: true\n });\n sector.originX = sectorShape.cx;\n sector.originY = sectorShape.cy;\n } else if (animationType === 'scale') {\n sector.shape.r = layout.r0;\n graphic.initProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, idx);\n }\n // Expansion\n else {\n if (startAngle != null) {\n sector.setShape({\n startAngle: startAngle,\n endAngle: startAngle\n });\n graphic.initProps(sector, {\n shape: {\n startAngle: layout.startAngle,\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n } else {\n sector.shape.endAngle = layout.startAngle;\n graphic.updateProps(sector, {\n shape: {\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n }\n }\n } else {\n saveOldStyle(sector);\n // Transition animation from the old shape\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel, idx);\n }\n sector.useStyle(data.getItemVisual(idx, 'style'));\n setStatesStylesFromModel(sector, itemModel);\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var offset = seriesModel.get('selectedOffset');\n var dx = Math.cos(midAngle) * offset;\n var dy = Math.sin(midAngle) * offset;\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle);\n this._updateLabel(seriesModel, data, idx);\n sector.ensureState('emphasis').shape = extend({\n r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n extend(sector.ensureState('select'), {\n x: dx,\n y: dy,\n shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n });\n extend(sector.ensureState('blur'), {\n shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n });\n var labelLine = sector.getTextGuideLine();\n var labelText = sector.getTextContent();\n labelLine && extend(labelLine.ensureState('select'), {\n x: dx,\n y: dy\n });\n // TODO: needs dx, dy in zrender?\n extend(labelText.ensureState('select'), {\n x: dx,\n y: dy\n });\n toggleHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n };\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n var sector = this;\n var itemModel = data.getItemModel(idx);\n var labelLineModel = itemModel.getModel('labelLine');\n var style = data.getItemVisual(idx, 'style');\n var visualColor = style && style.fill;\n var visualOpacity = style && style.opacity;\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n inheritColor: visualColor,\n defaultOpacity: visualOpacity,\n defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n });\n var labelText = sector.getTextContent();\n // Set textConfig on sector.\n sector.setTextConfig({\n // reset position, rotation\n position: null,\n rotation: null\n });\n // Make sure update style on labelText after setLabelStyle.\n // Because setLabelStyle will replace a new style on it.\n labelText.attr({\n z2: 10\n });\n var labelPosition = seriesModel.get(['label', 'position']);\n if (labelPosition !== 'outside' && labelPosition !== 'outer') {\n sector.removeTextGuideLine();\n } else {\n var polyline = this.getTextGuideLine();\n if (!polyline) {\n polyline = new graphic.Polyline();\n this.setTextGuideLine(polyline);\n }\n // Default use item visual color\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n stroke: visualColor,\n opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n });\n }\n };\n return PiePiece;\n}(graphic.Sector);\n// Pie view\nvar PieView = /** @class */function (_super) {\n __extends(PieView, _super);\n function PieView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ignoreLabelLineUpdate = true;\n return _this;\n }\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var startAngle;\n // First render\n if (!oldData && data.count() > 0) {\n var shape = data.getItemLayout(0);\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n shape = data.getItemLayout(s);\n }\n if (shape) {\n startAngle = shape.startAngle;\n }\n }\n // remove empty-circle if it exists\n if (this._emptyCircleSector) {\n group.remove(this._emptyCircleSector);\n }\n // when all data are filtered, show lightgray empty circle\n if (data.count() === 0 && seriesModel.get('showEmptyCircle')) {\n var layoutData = getSeriesLayoutData(seriesModel);\n var sector = new graphic.Sector({\n shape: extend(getBasicPieLayout(seriesModel, api), layoutData)\n });\n sector.useStyle(seriesModel.getModel('emptyCircleStyle').getItemStyle());\n this._emptyCircleSector = sector;\n group.add(sector);\n }\n data.diff(oldData).add(function (idx) {\n var piePiece = new PiePiece(data, idx, startAngle);\n data.setItemGraphicEl(idx, piePiece);\n group.add(piePiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n piePiece.updateData(data, newIdx, startAngle);\n piePiece.off('click');\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n }).execute();\n labelLayout(seriesModel);\n // Always use initial animation.\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n this._data = data;\n }\n };\n PieView.prototype.dispose = function () {};\n PieView.prototype.containPoint = function (point, seriesModel) {\n var data = seriesModel.getData();\n var itemLayout = data.getItemLayout(0);\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n };\n PieView.type = 'pie';\n return PieView;\n}(ChartView);\nexport default PieView;","\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 prepareSeriesDataSchema from '../../data/helper/createDimensions.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport { extend, isArray } from 'zrender/lib/core/util.js';\n/**\n * [Usage]:\n * (1)\n * createListSimply(seriesModel, ['value']);\n * (2)\n * createListSimply(seriesModel, {\n * coordDimensions: ['value'],\n * dimensionsCount: 5\n * });\n */\nexport default function createSeriesDataSimply(seriesModel, opt, nameList) {\n opt = isArray(opt) && {\n coordDimensions: opt\n } || extend({\n encodeDefine: seriesModel.getEncode()\n }, opt);\n var source = seriesModel.getSource();\n var dimensions = prepareSeriesDataSchema(source, opt).dimensions;\n var list = new SeriesData(dimensions, seriesModel);\n list.initData(source, nameList);\n return list;\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/**\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*/\n/**\n * LegendVisualProvider is an bridge that pick encoded color from data and\n * provide to the legend component.\n */\nvar LegendVisualProvider = /** @class */function () {\n function LegendVisualProvider(\n // Function to get data after filtered. It stores all the encoding info\n getDataWithEncodedVisual,\n // Function to get raw data before filtered.\n getRawData) {\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n this._getRawData = getRawData;\n }\n LegendVisualProvider.prototype.getAllNames = function () {\n var rawData = this._getRawData();\n // We find the name from the raw data. In case it's filtered by the legend component.\n // Normally, the name can be found in rawData, but can't be found in filtered data will display as gray.\n return rawData.mapArray(rawData.getName);\n };\n LegendVisualProvider.prototype.containName = function (name) {\n var rawData = this._getRawData();\n return rawData.indexOfName(name) >= 0;\n };\n LegendVisualProvider.prototype.indexOfName = function (name) {\n // Only get data when necessary.\n // Because LegendVisualProvider constructor may be new in the stage that data is not prepared yet.\n // Invoking Series#getData immediately will throw an error.\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n return dataWithEncodedVisual.indexOfName(name);\n };\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n // Get encoded visual properties from final filtered data.\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n };\n return LegendVisualProvider;\n}();\nexport default LegendVisualProvider;","\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 { __extends } from \"tslib\";\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nimport { getPercentSeats } from '../../util/number.js';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport SeriesModel from '../../model/Series.js';\nvar innerData = modelUtil.makeInner();\nvar PieSeriesModel = /** @class */function (_super) {\n __extends(PieSeriesModel, _super);\n function PieSeriesModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @overwrite\n */\n PieSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments);\n // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n this._defaultLabelLine(option);\n };\n /**\n * @overwrite\n */\n PieSeriesModel.prototype.mergeOption = function () {\n _super.prototype.mergeOption.apply(this, arguments);\n };\n /**\n * @overwrite\n */\n PieSeriesModel.prototype.getInitialData = function () {\n return createSeriesDataSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n };\n /**\n * @overwrite\n */\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n var data = this.getData();\n // update seats when data is changed\n var dataInner = innerData(data);\n var seats = dataInner.seats;\n if (!seats) {\n var valueList_1 = [];\n data.each(data.mapDimension('value'), function (value) {\n valueList_1.push(value);\n });\n seats = dataInner.seats = getPercentSeats(valueList_1, data.hostModel.get('percentPrecision'));\n }\n var params = _super.prototype.getDataParams.call(this, dataIndex);\n // seats may be empty when sum is 0\n params.percent = seats[dataIndex] || 0;\n params.$vars.push('percent');\n return params;\n };\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\n // Extend labelLine emphasis\n modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine;\n // Not show label line if `label.normal.show = false`\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n };\n PieSeriesModel.type = 'series.pie';\n PieSeriesModel.defaultOption = {\n // zlevel: 0,\n z: 2,\n legendHoverLink: true,\n colorBy: 'data',\n // 默认全局居中\n center: ['50%', '50%'],\n radius: [0, '75%'],\n // 默认顺时针\n clockwise: true,\n startAngle: 90,\n endAngle: 'auto',\n padAngle: 0,\n // 最小角度改为0\n minAngle: 0,\n // If the angle of a sector less than `minShowLabelAngle`,\n // the label will not be displayed.\n minShowLabelAngle: 0,\n // 选中时扇区偏移量\n selectedOffset: 10,\n // 选择模式,默认关闭,可选single,multiple\n // selectedMode: false,\n // 南丁格尔玫瑰图模式,'radius'(半径) | 'area'(面积)\n // roseType: null,\n percentPrecision: 2,\n // If still show when all data zero.\n stillShowZeroSum: true,\n // cursor: null,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n width: null,\n height: null,\n label: {\n // color: 'inherit',\n // If rotate around circle\n rotate: 0,\n show: true,\n overflow: 'truncate',\n // 'outer', 'inside', 'center'\n position: 'outer',\n // 'none', 'labelLine', 'edge'. Works only when position is 'outer'\n alignTo: 'none',\n // Closest distance between label and chart edge.\n // Works only position is 'outer' and alignTo is 'edge'.\n edgeDistance: '25%',\n // Works only position is 'outer' and alignTo is not 'edge'.\n bleedMargin: 10,\n // Distance between text and label line.\n distanceToLabelLine: 5\n // formatter: 标签文本格式器,同 tooltip.formatter,不支持异步回调\n // 默认使用全局文本样式,详见 textStyle\n // distance: 当position为inner时有效,为label位置到圆心的距离与圆半径(环状图为内外半径和)的比例系数\n },\n\n // Enabled when label.normal.position is 'outer'\n labelLine: {\n show: true,\n // 引导线两段中的第一段长度\n length: 15,\n // 引导线两段中的第二段长度\n length2: 15,\n smooth: false,\n minTurnAngle: 90,\n maxSurfaceAngle: 90,\n lineStyle: {\n // color: 各异,\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n borderWidth: 1,\n borderJoin: 'round'\n },\n showEmptyCircle: true,\n emptyCircleStyle: {\n color: 'lightgray',\n opacity: 1\n },\n labelLayout: {\n // Hide the overlapped label.\n hideOverlap: true\n },\n emphasis: {\n scale: true,\n scaleSize: 5\n },\n // If use strategy to avoid label overlapping\n avoidLabelOverlap: true,\n // Animation type. Valid values: expansion, scale\n animationType: 'expansion',\n animationDuration: 1000,\n // Animation type when update. Valid values: transition, expansion\n animationTypeUpdate: 'transition',\n animationEasingUpdate: 'cubicInOut',\n animationDurationUpdate: 500,\n animationEasing: 'cubicInOut'\n };\n return PieSeriesModel;\n}(SeriesModel);\nexport default PieSeriesModel;","\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 { isNumber } from 'zrender/lib/core/util.js';\nexport default function negativeDataFilter(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n data.filterSelf(function (idx) {\n // handle negative value condition\n var valueDim = data.mapDimension('value');\n var curValue = data.get(valueDim, idx);\n if (isNumber(curValue) && !isNaN(curValue) && curValue < 0) {\n return false;\n }\n return true;\n });\n }\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*/\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 { createLegacyDataSelectAction } from '../../legacy/dataSelectAction.js';\nimport pieLayout from '../pie/pieLayout.js';\nimport dataFilter from '../../processor/dataFilter.js';\nimport { curry } from 'zrender/lib/core/util.js';\nimport PieView from './PieView.js';\nimport PieSeriesModel from './PieSeries.js';\nimport negativeDataFilter from '../../processor/negativeDataFilter.js';\nexport function install(registers) {\n registers.registerChartView(PieView);\n registers.registerSeriesModel(PieSeriesModel);\n createLegacyDataSelectAction('pie', registers.registerAction);\n registers.registerLayout(curry(pieLayout, 'pie'));\n registers.registerProcessor(dataFilter('pie'));\n registers.registerProcessor(negativeDataFilter('pie'));\n}","@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n position: relative;\n width: 100%;\n display: block;\n}\n\n.container {\n aspect-ratio: 1 / 1;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n}\n\n.chart-container {\n width: 100%;\n height: 100%;\n\n --comp-color-1: #{var-list(var-prefixer(chart-donut-color-1), --t-accent-1, #e05252)};\n --comp-color-2: #{var-list(var-prefixer(chart-donut-color-2), --t-accent-2, #e09952)};\n --comp-color-3: #{var-list(var-prefixer(chart-donut-color-3), --t-accent-3, #e0e052)};\n --comp-color-4: #{var-list(var-prefixer(chart-donut-color-4), --t-accent-4, #99e052)};\n --comp-color-5: #{var-list(var-prefixer(chart-donut-color-5), --t-accent-5, #52e052)};\n --comp-color-6: #{var-list(var-prefixer(chart-donut-color-6), --t-accent-6, #52e099)};\n --comp-color-7: #{var-list(var-prefixer(chart-donut-color-7), --t-accent-7, #52e0e0)};\n --comp-color-8: #{var-list(var-prefixer(chart-donut-color-8), --t-accent-8, #5299e0)};\n --comp-color-9: #{var-list(var-prefixer(chart-donut-color-9), --t-accent-9, #5252e0)};\n --comp-color-10: #{var-list(var-prefixer(chart-donut-color-10), --t-accent-10, #9952e0)};\n --comp-color-11: #{var-list(var-prefixer(chart-donut-color-11), --t-accent-11, #e052e0)};\n --comp-color-12: #{var-list(var-prefixer(chart-donut-color-12), --t-accent-12, #e05299)};\n}\n\n.chart-container,\n.center-card {\n --comp-background-color: #{var-list(var-prefixer(chart-donut-border-color), --t-base, #ffffff)};\n}\n\nbutton {\n --comp-button-padding: #{var-list(\n --tct-chart-donut-button-padding,\n unquote('#{var-list(var-prefixer(chart-donut-button-vertical-padding), --app-scale-1x, 5px)} 0')\n )};\n\n transition: box-shadow #{var-list(var-prefixer(chart-donut-button-tween), --app-tween-1, unquote('0.2s ease'))};\n padding: var(--comp-button-padding);\n &:active {\n box-shadow: var(--const-double-focus-ring),\n #{var-list(\n var-prefixer(chart-donut-button-hover-box-shadow),\n --app-shadow-1,\n unquote(\"0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)\")\n )};\n }\n &:hover {\n box-shadow: #{var-list(\n var-prefixer(chart-donut-button-hover-box-shadow),\n --app-shadow-1,\n unquote(\"0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)\")\n )};\n }\n &:focus {\n box-shadow: var(--const-double-focus-ring),\n #{var-list(\n var-prefixer(chart-donut-button-hover-box-shadow),\n --app-shadow-1,\n unquote(\"0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)\")\n )};\n }\n}\n\n.center-card-container {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n padding: var-list(var-prefixer(chart-donut-button-container-padding), --app-scale-1x, 5px);\n}\n\n.center-card {\n width: 100%;\n text-align: center;\n color: #{var-list(var-prefixer(chart-donut-text-color), --t-text, #4d4d4d)};\n margin-inline: auto;\n display: block;\n\n &:is(button) {\n cursor: pointer;\n background: var(--comp-background-color);\n border: 0;\n border-radius: #{var-list(var-prefixer(chart-donut-button-border-radius), --app-border-radius-1, 4px)};\n }\n}\n\nq2-icon {\n --tct-icon-size: #{var-list(var-prefixer(chart-donut-icon-size), 26px)};\n --comp-icon-margin: #{var-list(\n --tct-chart-donut-icon-margin,\n unquote('0 0 #{var-list(var-prefixer(chart-donut-icon-margin-bottom), --app-scale-1x, 5px)}')\n )};\n margin: var(--comp-icon-margin);\n}\n\n.name {\n font-size: #{var-list(var-prefixer(chart-donut-name-font-size), 14px)};\n}\n\n.value {\n font-size: #{var-list(var-prefixer(chart-donut-value-font-size), 21px)};\n}\n\nfigure {\n margin: 0;\n}\n\n.legend {\n margin-top: #{var-list(--tct-chart-donut-legend-margin-top, --app-scale-0x, 0)};\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Element,\n EventEmitter,\n Event,\n Method,\n Watch,\n Listen,\n} from '@stencil/core';\nimport * as echarts from 'echarts/core';\nimport { EChartsCoreOption } from 'echarts/types/dist/core';\nimport {\n TooltipComponent,\n TooltipComponentOption,\n LegendComponent,\n AriaComponent,\n AriaComponentOption,\n LegendComponentOption,\n} from 'echarts/components';\nimport { PieChart, PieSeriesOption } from 'echarts/charts';\nimport { LabelLayout } from 'echarts/features';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { isEventFromElement, isMobile, loc, overrideFocus } from 'src/utils';\nimport { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\nimport { getCSSProperty } from 'src/utils/charting';\n\necharts.use([TooltipComponent, LegendComponent, PieChart, CanvasRenderer, AriaComponent, LabelLayout]);\ntype EChartsOption = echarts.ComposeOption<\n TooltipComponentOption | LegendComponentOption | AriaComponentOption | PieSeriesOption\n>;\n@Component({ tag: 'q2-chart-donut', shadow: true, styleUrl: 'q2-chart-donut.scss' })\nexport class Q2ChartDonut implements ComponentInterface {\n // #region Own Properties\n\n btnElement: HTMLDivElement;\n centerButtonElement: HTMLButtonElement;\n chart: echarts.ECharts;\n chartContainer: HTMLDivElement;\n chartContainerStyles: CSSStyleDeclaration;\n colors: string[];\n defaultRecord = { id: null, value: null, name: null };\n hostElementStyles: CSSStyleDeclaration;\n isInChangeEvent: boolean;\n resizeObserver: ResizeObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n hoveredId: string;\n\n @State()\n legendData: IDonutChartData[];\n\n // #endregion\n // #region Public Property API\n\n /**\n * The title of the chart. We recommend always including this for accessibility purposes.\n *\n * It is hidden by default, but can be made visible with the `showChartName` variable.\n * @localizable\n */\n @Prop({ reflect: true })\n chartName: string;\n\n /** An array of objects that contain the data to be displayed. */\n @Prop()\n data: IDonutChartData[] = [];\n\n /** Controls whether values on the value axis are shown as numbers or as currency. */\n @Prop({ reflect: true })\n format: 'currency' | 'default';\n\n /** The amount which the slice will scale when hovered. */\n @Prop()\n hoverScaleSize: number = 5;\n\n /**\n * The inner radius of the chart slices which is represeted by a percentage of the radius.\n *\n * @warning\n * If you update this property to be greater than or equal to the `outerRadius`,\n * we automatically set it to be 15% less than the current `outerRadius` to prevent display issues.\n */\n @Prop({ mutable: true })\n innerRadius: string = '70%';\n\n /**\n * Determine whether the data in the center renders inside a button element.\n *\n * @info\n * This also enables extra keyboard controls when the button is focused.\n */\n @Prop({ reflect: true })\n isClickable: boolean;\n\n /** The minimum size of the chart slizes which is represented as a percentage of the circumferences. */\n @Prop()\n minSliceSize: string = '2.5%';\n\n /**\n * The outer radius of the chart slices which is represented by a percentage of the radius.\n *\n * @warning\n * If you update this property to be less than or equal to the `innerRadius`,\n * we automatically set it to be 15% greater than the current `innerRadius` to prevent display issues.\n */\n @Prop({ mutable: true })\n outerRadius: string = '85%';\n\n /** The id of the data point that is currently selected in the chart. You may set this to pre-select a data point on render, or force a selection change. */\n @Prop({ mutable: true })\n selectedId: string;\n\n /** The amount which the slice will separate from the chart when selected. */\n @Prop()\n selectedOffset: number = 10;\n\n /**\n * Determines whether the legend is displayed.\n *\n * @info\n * The legend is a list of the data points in the chart and their colors.\n */\n @Prop({ reflect: true })\n showLegend: boolean = false;\n\n /** The icon that displays by default when no slices are selected. */\n @Prop({ reflect: true })\n summaryIcon: string;\n\n /**\n * The name that displays by default when no slices are selected.\n * @localizable\n */\n @Prop({ reflect: true })\n summaryName: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a slice is selected.\n */\n @Event()\n change: EventEmitter<IDonutChartData>;\n\n /**\n * Emitted when the center button is clicked.\n *\n * Requires the `isClickable` prop to be set to `true`.\n */\n @Event()\n click: EventEmitter<IDonutChartData>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n // CRITICAL: Dispose eCharts instance to prevent memory leaks\n // eCharts holds references to canvas, event listeners (mouseover, mouseout, click, selectchanged, finished),\n // and animation frames. All chart event listeners are automatically cleaned up by dispose()\n if (this.chart) {\n this.chart.dispose();\n this.chart = null;\n }\n\n // Disconnect ResizeObserver\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n\n // Clear cached style references that hold DOM references (Safari memory management)\n this.chartContainerStyles = null;\n this.hostElementStyles = null;\n\n // Clear DOM references\n this.chartContainer = null;\n this.centerButtonElement = null;\n this.btnElement = null;\n\n // Clear data references\n this.colors = null;\n this.legendData = null;\n\n // Clear state to prevent lingering references\n this.hoveredId = null;\n this.selectedId = null;\n }\n\n componentDidLoad(): void {\n const chart = echarts.init(this.chartContainer);\n\n this.cacheComputedStyles();\n this.colors = this.getColors();\n\n this.resizeObserver = new ResizeObserver(() => this.resizeChart());\n this.resizeObserver.observe(this.hostElement);\n\n this.updateChart(chart);\n this.setupChartEvents(chart);\n this.checkSelectedId();\n\n this.chart = chart;\n this.setLegendData();\n this.selectById(this.selectedId);\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n if (!this.isClickable) return;\n this.centerButtonElement?.focus();\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Clears any selected slice.\n */\n @Method()\n async clearSelection() {\n const { selectedId } = this;\n if (!selectedId) return;\n\n this.chart.dispatchAction({\n type: 'unselect',\n seriesId: 'pie',\n dataIndex: this.getIndexById(selectedId),\n });\n }\n\n /**\n * Returns the chart instance for e2e testing.\n *\n * @testOnly\n */\n @Method()\n async getChartOptions(): Promise<EChartsCoreOption> {\n return this.chart.getOption();\n }\n\n /**\n * Selects a slice by its provided `id` in the provided `data`.\n */\n @Method()\n async selectById(id: string) {\n const dataIndex = this.getIndexById(id);\n if (dataIndex === -1) return;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex,\n });\n }\n\n /**\n * Selects a slice by its index in the provided `data`.\n */\n @Method()\n async selectByIndex(index: number) {\n const dataIndex = this.data[index] ? index : null;\n if (!dataIndex) return;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex,\n });\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('chartName')\n @Watch('innerRadius')\n @Watch('outerRadius')\n @Watch('minSliceSize')\n @Watch('hoverScaleSize')\n @Watch('selectedOffset')\n propsUpdates() {\n this.updateChart(this.chart);\n }\n\n @Watch('data')\n dataUpdated() {\n this.colors = this.getColors();\n this.updateChart(this.chart);\n this.setLegendData();\n }\n\n @Watch('innerRadius')\n innerRadiusUpdated() {\n const { innerRadius, outerRadius } = this;\n const innerRadiusInt = parseFloat(innerRadius);\n const outerRadiusInt = parseFloat(outerRadius);\n if (innerRadiusInt >= outerRadiusInt) {\n this.innerRadius = `${outerRadiusInt - 15}%`;\n }\n }\n\n @Watch('outerRadius')\n outerRadiusUpdated() {\n const { innerRadius, outerRadius } = this;\n const innerRadiusInt = parseFloat(innerRadius);\n const outerRadiusInt = parseFloat(outerRadius);\n if (outerRadiusInt <= innerRadiusInt) {\n this.outerRadius = `${innerRadiusInt + 15}%`;\n }\n }\n\n /**\n * Function to detect and set a data range (category) as selected\n * Logic for when legends are present, and can set selectedId when ledgend category is clicked\n * Also can be used by dev to preset\n */\n @Watch('selectedId')\n checkSelectedId() {\n if (!!this.selectedId) {\n this.hoveredId = this.selectedId;\n // Dispatch action only to be fired when chart is rendered\n if (this.chart) {\n this.selectById(this.selectedId);\n }\n } else {\n // Dispatch action only to be fired when chart is rendered\n if (this.chart) {\n this.chart.dispatchAction({\n type: 'unselect',\n seriesId: 'pie',\n dataIndex: this.getIndexById(this.hoveredId),\n });\n }\n this.hoveredId = null;\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get centerData() {\n const { hoveredId, data } = this;\n const idToDisplay = hoveredId;\n const index = this.getIndexById(idToDisplay);\n\n return idToDisplay\n ? { ...this.getDataById(idToDisplay), color: this.colors[index] }\n : {\n name: loc(this.summaryName || 'tecton.element.chartDonut.button.summaryName'),\n icon: this.summaryIcon,\n value: data.reduce((acc, cur) => acc + cur.value, 0),\n color: null,\n };\n }\n\n get isMobile(): boolean {\n return isMobile();\n }\n\n get legendHoveredId() {\n return this.hoveredId === this.selectedId ? null : this.hoveredId;\n }\n\n cacheComputedStyles() {\n this.chartContainerStyles = getComputedStyle(this.chartContainer);\n this.hostElementStyles = getComputedStyle(this.hostElement);\n }\n\n displayValue(value: string | number) {\n const valueAsFloat = parseFloat(value.toString());\n if (isNaN(valueAsFloat)) return;\n\n if (this.format === 'currency') {\n return Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(valueAsFloat);\n } else {\n return Intl.NumberFormat('en-US').format(valueAsFloat);\n }\n }\n\n getColors() {\n const defaultColors = [1, 3, 8, 4, 2, 10, 7, 11, 6, 9, 12, 5].map(e => `--comp-color-${e}`);\n return this.data.reduce((acc, cur, idx) => {\n let color = defaultColors[idx % defaultColors.length];\n if (cur.color) color = cur.color;\n\n acc.push(getCSSProperty(color, this.chartContainerStyles, this.hostElementStyles) || color);\n return acc;\n }, []);\n }\n\n getCSSProperty(name: string) {\n let fallback;\n if (name.startsWith('var(') && name.endsWith(')')) {\n const regExp = /var\\((.*)\\)/g;\n const result = regExp.exec(name);\n const split = result.length >= 2 ? result[1].split(',') : [];\n name = split[0];\n fallback = split[1];\n }\n let result = this.chartContainerStyles.getPropertyValue(name).trim();\n if (!result) result = this.hostElementStyles.getPropertyValue(name).trim();\n return result || fallback;\n }\n\n getDataById(id: string) {\n if (!id) return;\n return this.data.find(item => item.id === id);\n }\n\n getDataByIndex(index: number) {\n if (typeof index !== 'number') return;\n return this.data[index];\n }\n\n getDataIndexForId(id: string) {\n return this.data.findIndex(item => item.id === id);\n }\n\n getIndexById(id: string) {\n return this.data.findIndex(item => item.id === id);\n }\n\n getMinSliceSizeAsAngle() {\n return (parseFloat(this.minSliceSize) / 100) * 360;\n }\n\n onButtonClick = (event: MouseEvent) => {\n event.stopPropagation();\n\n const { selectedId } = this;\n const data = selectedId ? this.getDataById(selectedId) : { ...this.defaultRecord };\n this.click.emit(data);\n };\n\n onButtonKeyDown = (event: KeyboardEvent) => {\n const { selectedId, data } = this;\n let selectedIndex = this.getIndexById(selectedId) || 0;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n selectedIndex--;\n if (selectedIndex < 0) selectedIndex = data.length - 1;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: selectedIndex,\n });\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n selectedIndex++;\n if (selectedIndex > data.length - 1) selectedIndex = 0;\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: selectedIndex,\n });\n break;\n\n case 'Escape':\n this.clearSelection();\n break;\n\n case ' ':\n event.preventDefault();\n break;\n\n default:\n return;\n }\n };\n\n onClickElsewhere = (event: Event) => {\n event.stopPropagation();\n this.clearSelection();\n };\n\n onContainerClick = (event: Event) => {\n if (this.isInChangeEvent) return;\n if (!(event.target instanceof HTMLElement)) return;\n this.clearSelection();\n event.stopPropagation();\n };\n\n onLegendClick = event => {\n event.stopPropagation();\n if (event.detail) {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.selectedId = event.detail.id;\n this.chart.dispatchAction({\n type: 'select',\n seriesIndex: 0,\n dataIndex,\n });\n } else {\n const dataIndex = this.getDataIndexForId(this.selectedId);\n this.hoveredId = this.selectedId;\n this.selectedId = null;\n this.chart.dispatchAction({\n type: 'unselect',\n seriesIndex: 0,\n dataIndex,\n });\n }\n };\n\n onLegendMouseenter = event => {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.hoveredId = event.detail.id;\n this.chart.dispatchAction({\n type: 'highlight',\n seriesIndex: 0,\n dataIndex,\n });\n };\n\n onLegendMouseleave = event => {\n const dataIndex = this.getDataIndexForId(event.detail.id);\n this.hoveredId = this.selectedId;\n this.chart.dispatchAction({\n type: 'downplay',\n seriesIndex: 0,\n dataIndex,\n });\n };\n\n resizeChart() {\n this.chart.resize();\n }\n\n setLegendData() {\n const chartColors = this.chart.getOption().series[0].color;\n this.legendData = this.data.map((item, index) => {\n const newItem = { ...item };\n if (!newItem.color) newItem.color = chartColors[index];\n\n return newItem;\n });\n }\n\n // Edit with caution. Echarts does not interpret events the same on mobile.\n setupChartEvents(chart: echarts.ECharts) {\n if (!this.isMobile) {\n chart.on('mouseover', (params: any) => {\n this.hoveredId = params.data.id;\n });\n chart.on('mouseout', () => {\n this.hoveredId = this.selectedId;\n });\n }\n chart.on('click', params => {\n params.event.stop();\n });\n chart.on('selectchanged', (params: any) => {\n const selectedIndex = params.selected?.[0]?.dataIndex?.[0] ?? null;\n const data =\n typeof selectedIndex === 'number' ? this.getDataByIndex(selectedIndex) : { ...this.defaultRecord };\n this.selectedId = data.id;\n this.isInChangeEvent = true;\n this.change.emit(data);\n setTimeout(() => {\n this.isInChangeEvent = false;\n }, 0);\n });\n chart.on('finished', () => {\n const canvas = chart.getDom().querySelector('canvas');\n if (canvas?.hasAttribute('aria-hidden') ?? false) return;\n canvas.setAttribute('aria-hidden', 'true');\n });\n }\n\n validateColor() {\n // check if there is name duplicated, then custom style using `itemStyle` object will be used.\n if (\n this.data.length >\n Object.keys(\n this.data.reduce((acc, cur) => {\n acc[cur.name] = cur.name;\n return acc;\n }, {})\n ).length\n ) {\n this.data.forEach((el, i) => {\n el.itemStyle = { ...el.itemStyle, color: el.color || this.colors[i] };\n });\n }\n }\n\n updateChart(chart: echarts.ECharts) {\n this.validateColor();\n return chart.setOption<EChartsOption>({\n tooltip: {\n show: false,\n },\n legend: {\n show: false,\n },\n aria: {\n enabled: true,\n },\n series: [\n {\n name: this.chartName,\n animationType: 'scale',\n color: this.colors,\n id: 'pie',\n type: 'pie',\n selectedOffset: this.selectedOffset,\n selectedMode: 'single',\n radius: [this.innerRadius, this.outerRadius],\n label: {\n show: false,\n },\n labelLine: {\n show: false,\n },\n itemStyle: {\n borderWidth: 5,\n borderColor: getCSSProperty(\n '--comp-background-color',\n this.chartContainerStyles,\n this.hostElementStyles\n ),\n },\n emphasis: {\n disabled: this.isMobile,\n scaleSize: this.hoverScaleSize,\n itemStyle: {\n color: 'inherit',\n },\n },\n minAngle: this.getMinSliceSizeAsAngle(),\n data: this.data,\n },\n ],\n });\n }\n\n // #endregion\n // #region Test Methods API\n\n /**\n * A method to select a slice with index.\n *\n * @testOnly\n */\n @Method()\n async selectDataPoint(index: number) {\n this.chart.dispatchAction({\n type: 'select',\n seriesId: 'pie',\n dataIndex: index,\n });\n }\n // #endregion\n // #region Render Methods\n\n renderCenterBlock() {\n const { icon, name, value, color } = this.centerData;\n const { isClickable } = this;\n const TagName = isClickable ? 'button' : 'div';\n const displayValue = this.displayValue(value);\n\n const props = isClickable\n ? {\n onKeyDown: this.onButtonKeyDown,\n onClick: this.onButtonClick,\n ref: el => (this.centerButtonElement = el),\n 'aria-describedby': 'center-card-description',\n 'aria-roledescription': loc('tecton.element.chartDonut.button.roleDescription'),\n }\n : null;\n\n return (\n <div\n class=\"center-card-container\"\n style={{ width: `calc(${this.innerRadius} - 10%)` }}\n >\n <div\n id=\"center-card-description\"\n class=\"sr\"\n >\n {loc('tecton.element.chartDonut.button.description')}\n </div>\n <TagName\n class=\"center-card\"\n test-id=\"centerCard\"\n {...props}\n >\n {!!icon && (\n <q2-icon\n type={icon}\n style={\n color && {\n '--tct-icon-stroke-primary': color,\n '--tct-icon-stroke-secondary': color,\n color,\n }\n }\n ></q2-icon>\n )}\n {!!name && <div class=\"name\">{name}</div>}\n {!isNaN(value) && <div class=\"value\">{displayValue}</div>}\n </TagName>\n </div>\n );\n }\n\n render() {\n return (\n <click-elsewhere onChange={this.onClickElsewhere}>\n <figure>\n <div class=\"container\">\n <div\n ref={el => (this.chartContainer = el)}\n aria-describedby={!this.isClickable ? 'center-card-description' : undefined}\n class=\"chart-container\"\n role=\"img\"\n test-id=\"chartContainer\"\n onClick={this.onContainerClick}\n tabIndex={!this.isClickable ? 0 : undefined}\n onKeyDown={!this.isClickable ? this.onButtonKeyDown : undefined}\n ></div>\n {this.renderCenterBlock()}\n </div>\n {this.showLegend && (\n <figcaption>\n <q2-legend\n class=\"legend\"\n data={this.legendData}\n format={this.format}\n hoveredItemId={this.legendHoveredId}\n onClick={this.onLegendClick}\n onMouseleave={this.onLegendMouseleave}\n onMouseenter={this.onLegendMouseenter}\n selectedItemId={this.selectedId}\n />\n </figcaption>\n )}\n </figure>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"version":3}
|