1 line
40 KiB
JSON
1 line
40 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.array.slice.js\";\nimport \"core-js/modules/es.array.sort.js\";\nimport \"core-js/modules/es.array.join.js\";\nimport \"core-js/modules/es.function.name.js\";\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format.js';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util.js';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper.js';\nimport { getRandomIdBase } from '../../util/number.js';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1'; // TODO: more textStyle option\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n var nameFontColor = textStyle.color || '#6e7079';\n var nameFontSize = textStyle.fontSize || 12;\n var nameFontWeight = textStyle.fontWeight || '400';\n var valueFontColor = textStyle.color || '#464646';\n var valueFontSize = textStyle.fontSize || 14;\n var valueFontWeight = textStyle.fontWeight || '900';\n\n if (renderMode === 'html') {\n // `textStyle` is probably from user input, should be encoded to reduce security risk.\n return {\n // eslint-disable-next-line max-len\n nameStyle: \"font-size:\" + encodeHTML(nameFontSize + '') + \"px;color:\" + encodeHTML(nameFontColor) + \";font-weight:\" + encodeHTML(nameFontWeight + ''),\n // eslint-disable-next-line max-len\n valueStyle: \"font-size:\" + encodeHTML(valueFontSize + '') + \"px;color:\" + encodeHTML(valueFontColor) + \";font-weight:\" + encodeHTML(valueFontWeight + '')\n };\n } else {\n return {\n nameStyle: {\n fontSize: nameFontSize,\n fill: nameFontColor,\n fontWeight: nameFontWeight\n },\n valueStyle: {\n fontSize: valueFontSize,\n fill: valueFontColor,\n fontWeight: valueFontWeight\n }\n };\n }\n} // See `TooltipMarkupLayoutIntent['innerGapLevel']`.\n// (value from UI design)\n\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n']; // eslint-disable-next-line max-len\n\nexport function createTooltipMarkup(type, option) {\n option.type = type;\n return option;\n}\n\nfunction isSectionFragment(frag) {\n return frag.type === 'section';\n}\n\nfunction getBuilder(frag) {\n return isSectionFragment(frag) ? buildSection : buildNameValue;\n}\n\nfunction getBlockGapLevel(frag) {\n if (isSectionFragment(frag)) {\n var gapLevel_1 = 0;\n var subBlockLen = frag.blocks.length;\n var hasInnerGap_1 = subBlockLen > 1 || subBlockLen > 0 && !frag.noHeader;\n each(frag.blocks, function (subBlock) {\n var subGapLevel = getBlockGapLevel(subBlock); // If the some of the sub-blocks have some gaps (like 10px) inside, this block\n // should use a larger gap (like 20px) to distinguish those sub-blocks.\n\n if (subGapLevel >= gapLevel_1) {\n gapLevel_1 = subGapLevel + +(hasInnerGap_1 && ( // 0 always can not be readable gap level.\n !subGapLevel // If no header, always keep the sub gap level. Otherwise\n // look weird in case `multipleSeries`.\n || isSectionFragment(subBlock) && !subBlock.noHeader));\n }\n });\n return gapLevel_1;\n }\n\n return 0;\n}\n\nfunction buildSection(ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n var noHeader = fragment.noHeader;\n var gaps = getGap(getBlockGapLevel(fragment));\n var subMarkupTextList = [];\n var subBlocks = fragment.blocks || [];\n assert(!subBlocks || isArray(subBlocks));\n subBlocks = subBlocks || [];\n var orderMode = ctx.orderMode;\n\n if (fragment.sortBlocks && orderMode) {\n subBlocks = subBlocks.slice();\n var orderMap = {\n valueAsc: 'asc',\n valueDesc: 'desc'\n };\n\n if (hasOwn(orderMap, orderMode)) {\n var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n subBlocks.sort(function (a, b) {\n return comparator_1.evaluate(a.sortParam, b.sortParam);\n });\n } // FIXME 'seriesDesc' necessary?\n else if (orderMode === 'seriesDesc') {\n subBlocks.reverse();\n }\n }\n\n each(subBlocks, function (subBlock, idx) {\n var valueFormatter = fragment.valueFormatter;\n var subMarkupText = getBuilder(subBlock)( // Inherit valueFormatter\n valueFormatter ? extend(extend({}, ctx), {\n valueFormatter: valueFormatter\n }) : ctx, subBlock, idx > 0 ? gaps.html : 0, toolTipTextStyle);\n subMarkupText != null && subMarkupTextList.push(subMarkupText);\n });\n var subMarkupText = ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), noHeader ? topMarginForOuterGap : gaps.html);\n\n if (noHeader) {\n return subMarkupText;\n }\n\n var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n if (ctx.renderMode === 'richText') {\n return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n } else {\n return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n }\n}\n\nfunction buildNameValue(ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n var renderMode = ctx.renderMode;\n var noName = fragment.noName;\n var noValue = fragment.noValue;\n var noMarker = !fragment.markerType;\n var name = fragment.name;\n var useUTC = ctx.useUTC;\n\n var valueFormatter = fragment.valueFormatter || ctx.valueFormatter || function (value) {\n value = isArray(value) ? value : [value];\n return map(value, function (val, idx) {\n return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n });\n };\n\n if (noName && noValue) {\n return;\n }\n\n var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n var valueTypeOption = fragment.valueType;\n var readableValueList = noValue ? [] : valueFormatter(fragment.value);\n var valueAlignRight = !noMarker || !noName; // It little weird if only value next to marker but far from marker.\n\n var valueCloseToMarker = !noMarker && noName;\n\n var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n nameStyle = _a.nameStyle,\n valueStyle = _a.valueStyle;\n\n return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) // Value has commas inside, so use ' ' as delimiter for multiple values.\n + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n}\n/**\n * @return markupText. null/undefined means no content.\n */\n\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n if (!fragment) {\n return;\n }\n\n var builder = getBuilder(fragment);\n var ctx = {\n useUTC: useUTC,\n renderMode: renderMode,\n orderMode: orderMode,\n markupStyleCreator: markupStyleCreator,\n valueFormatter: fragment.valueFormatter\n };\n return builder(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(gapLevel) {\n return {\n html: HTML_GAPS[gapLevel],\n richText: RICH_TEXT_GAPS[gapLevel]\n };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n var clearfix = '<div style=\"clear:both\"></div>';\n var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n // Do not too close to marker, considering there are multiple values separated by spaces.\n var paddingStr = valueCloseToMarker ? '10px' : '20px';\n var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n valueList = isArray(valueList) ? valueList : [valueList];\n return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" // Value has commas inside, so use ' ' as delimiter for multiple values.\n + map(valueList, function (value) {\n return encodeHTML(value);\n }).join(' ') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, values, alignRight, valueCloseToMarker, style) {\n var styles = [style];\n var paddingLeft = valueCloseToMarker ? 10 : 20;\n alignRight && styles.push({\n padding: [0, 0, 0, paddingLeft],\n align: 'right'\n }); // Value has commas inside, so use ' ' as delimiter for multiple values.\n\n return ctx.markupStyleCreator.wrapRichTextStyle(isArray(values) ? values.join(' ') : values, styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n var style = series.getData().getItemVisual(dataIndex, 'style');\n var color = style[series.visualDrawType];\n return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n var padding = model.get('padding');\n return padding != null ? padding // We give slightly different to look pretty.\n : renderMode === 'richText' ? [8, 10] : 10;\n}\n/**\n * The major feature is generate styles for `renderMode: 'richText'`.\n * But it also serves `renderMode: 'html'` to provide\n * \"renderMode-independent\" API.\n */\n\nvar TooltipMarkupStyleCreator =\n/** @class */\nfunction () {\n function TooltipMarkupStyleCreator() {\n this.richTextStyles = {}; // Notice that \"generate a style name\" usually happens repeatedly when mouse is moving and\n // a tooltip is displayed. So we put the `_nextStyleNameId` as a member of each creator\n // rather than static shared by all creators (which will cause it increase to fast).\n\n this._nextStyleNameId = getRandomIdBase();\n }\n\n TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n return '__EC_aUTo_' + this._nextStyleNameId++;\n };\n\n TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n var marker = getTooltipMarker({\n color: colorStr,\n type: markerType,\n renderMode: renderMode,\n markerId: markerId\n });\n\n if (isString(marker)) {\n return marker;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n assert(markerId);\n }\n\n this.richTextStyles[markerId] = marker.style;\n return marker.content;\n }\n };\n /**\n * @usage\n * ```ts\n * const styledText = markupStyleCreator.wrapRichTextStyle([\n * // The styles will be auto merged.\n * {\n * fontSize: 12,\n * color: 'blue'\n * },\n * {\n * padding: 20\n * }\n * ]);\n * ```\n */\n\n\n TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n var finalStl = {};\n\n if (isArray(styles)) {\n each(styles, function (stl) {\n return extend(finalStl, stl);\n });\n } else {\n extend(finalStl, styles);\n }\n\n var styleName = this._generateStyleName();\n\n this.richTextStyles[styleName] = finalStl;\n return \"{\" + styleName + \"|\" + text + \"}\";\n };\n\n return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src啊/ElectronicMallVue/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js"],"names":["getTooltipMarker","encodeHTML","makeValueReadable","convertToColorString","isString","each","hasOwn","isArray","map","assert","extend","SortOrderComparator","getRandomIdBase","TOOLTIP_LINE_HEIGHT_CSS","getTooltipTextStyle","textStyle","renderMode","nameFontColor","color","nameFontSize","fontSize","nameFontWeight","fontWeight","valueFontColor","valueFontSize","valueFontWeight","nameStyle","valueStyle","fill","HTML_GAPS","RICH_TEXT_GAPS","createTooltipMarkup","type","option","isSectionFragment","frag","getBuilder","buildSection","buildNameValue","getBlockGapLevel","gapLevel_1","subBlockLen","blocks","length","hasInnerGap_1","noHeader","subBlock","subGapLevel","ctx","fragment","topMarginForOuterGap","toolTipTextStyle","gaps","getGap","subMarkupTextList","subBlocks","orderMode","sortBlocks","slice","orderMap","valueAsc","valueDesc","comparator_1","sort","a","b","evaluate","sortParam","reverse","idx","valueFormatter","subMarkupText","html","push","join","richText","wrapBlockHTML","displayableHeader","header","useUTC","wrapInlineNameRichText","noName","noValue","noMarker","markerType","name","value","val","valueTypeOption","markerStr","markupStyleCreator","makeTooltipMarker","markerColor","readableName","valueType","readableValueList","valueAlignRight","valueCloseToMarker","_a","wrapInlineValueRichText","wrapInlineNameHTML","wrapInlineValueHTML","buildTooltipMarkup","builder","gapLevel","encodedContent","topGap","clearfix","marginCSS","leftHasMarker","style","marginCss","valueList","alignRight","paddingStr","alignCSS","wrapRichTextStyle","values","styles","paddingLeft","padding","align","retrieveVisualColorForTooltipMarker","series","dataIndex","getData","getItemVisual","visualDrawType","getPaddingFromTooltipModel","model","get","TooltipMarkupStyleCreator","richTextStyles","_nextStyleNameId","prototype","_generateStyleName","colorStr","markerId","marker","process","env","NODE_ENV","content","text","finalStl","stl","styleName"],"mappings":"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","sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format.js';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util.js';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper.js';\nimport { getRandomIdBase } from '../../util/number.js';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1'; // TODO: more textStyle option\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n var nameFontColor = textStyle.color || '#6e7079';\n var nameFontSize = textStyle.fontSize || 12;\n var nameFontWeight = textStyle.fontWeight || '400';\n var valueFontColor = textStyle.color || '#464646';\n var valueFontSize = textStyle.fontSize || 14;\n var valueFontWeight = textStyle.fontWeight || '900';\n\n if (renderMode === 'html') {\n // `textStyle` is probably from user input, should be encoded to reduce security risk.\n return {\n // eslint-disable-next-line max-len\n nameStyle: \"font-size:\" + encodeHTML(nameFontSize + '') + \"px;color:\" + encodeHTML(nameFontColor) + \";font-weight:\" + encodeHTML(nameFontWeight + ''),\n // eslint-disable-next-line max-len\n valueStyle: \"font-size:\" + encodeHTML(valueFontSize + '') + \"px;color:\" + encodeHTML(valueFontColor) + \";font-weight:\" + encodeHTML(valueFontWeight + '')\n };\n } else {\n return {\n nameStyle: {\n fontSize: nameFontSize,\n fill: nameFontColor,\n fontWeight: nameFontWeight\n },\n valueStyle: {\n fontSize: valueFontSize,\n fill: valueFontColor,\n fontWeight: valueFontWeight\n }\n };\n }\n} // See `TooltipMarkupLayoutIntent['innerGapLevel']`.\n// (value from UI design)\n\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n']; // eslint-disable-next-line max-len\n\nexport function createTooltipMarkup(type, option) {\n option.type = type;\n return option;\n}\n\nfunction isSectionFragment(frag) {\n return frag.type === 'section';\n}\n\nfunction getBuilder(frag) {\n return isSectionFragment(frag) ? buildSection : buildNameValue;\n}\n\nfunction getBlockGapLevel(frag) {\n if (isSectionFragment(frag)) {\n var gapLevel_1 = 0;\n var subBlockLen = frag.blocks.length;\n var hasInnerGap_1 = subBlockLen > 1 || subBlockLen > 0 && !frag.noHeader;\n each(frag.blocks, function (subBlock) {\n var subGapLevel = getBlockGapLevel(subBlock); // If the some of the sub-blocks have some gaps (like 10px) inside, this block\n // should use a larger gap (like 20px) to distinguish those sub-blocks.\n\n if (subGapLevel >= gapLevel_1) {\n gapLevel_1 = subGapLevel + +(hasInnerGap_1 && ( // 0 always can not be readable gap level.\n !subGapLevel // If no header, always keep the sub gap level. Otherwise\n // look weird in case `multipleSeries`.\n || isSectionFragment(subBlock) && !subBlock.noHeader));\n }\n });\n return gapLevel_1;\n }\n\n return 0;\n}\n\nfunction buildSection(ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n var noHeader = fragment.noHeader;\n var gaps = getGap(getBlockGapLevel(fragment));\n var subMarkupTextList = [];\n var subBlocks = fragment.blocks || [];\n assert(!subBlocks || isArray(subBlocks));\n subBlocks = subBlocks || [];\n var orderMode = ctx.orderMode;\n\n if (fragment.sortBlocks && orderMode) {\n subBlocks = subBlocks.slice();\n var orderMap = {\n valueAsc: 'asc',\n valueDesc: 'desc'\n };\n\n if (hasOwn(orderMap, orderMode)) {\n var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n subBlocks.sort(function (a, b) {\n return comparator_1.evaluate(a.sortParam, b.sortParam);\n });\n } // FIXME 'seriesDesc' necessary?\n else if (orderMode === 'seriesDesc') {\n subBlocks.reverse();\n }\n }\n\n each(subBlocks, function (subBlock, idx) {\n var valueFormatter = fragment.valueFormatter;\n var subMarkupText = getBuilder(subBlock)( // Inherit valueFormatter\n valueFormatter ? extend(extend({}, ctx), {\n valueFormatter: valueFormatter\n }) : ctx, subBlock, idx > 0 ? gaps.html : 0, toolTipTextStyle);\n subMarkupText != null && subMarkupTextList.push(subMarkupText);\n });\n var subMarkupText = ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), noHeader ? topMarginForOuterGap : gaps.html);\n\n if (noHeader) {\n return subMarkupText;\n }\n\n var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n if (ctx.renderMode === 'richText') {\n return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n } else {\n return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n }\n}\n\nfunction buildNameValue(ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n var renderMode = ctx.renderMode;\n var noName = fragment.noName;\n var noValue = fragment.noValue;\n var noMarker = !fragment.markerType;\n var name = fragment.name;\n var useUTC = ctx.useUTC;\n\n var valueFormatter = fragment.valueFormatter || ctx.valueFormatter || function (value) {\n value = isArray(value) ? value : [value];\n return map(value, function (val, idx) {\n return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n });\n };\n\n if (noName && noValue) {\n return;\n }\n\n var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n var valueTypeOption = fragment.valueType;\n var readableValueList = noValue ? [] : valueFormatter(fragment.value);\n var valueAlignRight = !noMarker || !noName; // It little weird if only value next to marker but far from marker.\n\n var valueCloseToMarker = !noMarker && noName;\n\n var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n nameStyle = _a.nameStyle,\n valueStyle = _a.valueStyle;\n\n return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) // Value has commas inside, so use ' ' as delimiter for multiple values.\n + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n}\n/**\n * @return markupText. null/undefined means no content.\n */\n\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n if (!fragment) {\n return;\n }\n\n var builder = getBuilder(fragment);\n var ctx = {\n useUTC: useUTC,\n renderMode: renderMode,\n orderMode: orderMode,\n markupStyleCreator: markupStyleCreator,\n valueFormatter: fragment.valueFormatter\n };\n return builder(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(gapLevel) {\n return {\n html: HTML_GAPS[gapLevel],\n richText: RICH_TEXT_GAPS[gapLevel]\n };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n var clearfix = '<div style=\"clear:both\"></div>';\n var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n // Do not too close to marker, considering there are multiple values separated by spaces.\n var paddingStr = valueCloseToMarker ? '10px' : '20px';\n var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n valueList = isArray(valueList) ? valueList : [valueList];\n return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" // Value has commas inside, so use ' ' as delimiter for multiple values.\n + map(valueList, function (value) {\n return encodeHTML(value);\n }).join(' ') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, values, alignRight, valueCloseToMarker, style) {\n var styles = [style];\n var paddingLeft = valueCloseToMarker ? 10 : 20;\n alignRight && styles.push({\n padding: [0, 0, 0, paddingLeft],\n align: 'right'\n }); // Value has commas inside, so use ' ' as delimiter for multiple values.\n\n return ctx.markupStyleCreator.wrapRichTextStyle(isArray(values) ? values.join(' ') : values, styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n var style = series.getData().getItemVisual(dataIndex, 'style');\n var color = style[series.visualDrawType];\n return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n var padding = model.get('padding');\n return padding != null ? padding // We give slightly different to look pretty.\n : renderMode === 'richText' ? [8, 10] : 10;\n}\n/**\n * The major feature is generate styles for `renderMode: 'richText'`.\n * But it also serves `renderMode: 'html'` to provide\n * \"renderMode-independent\" API.\n */\n\nvar TooltipMarkupStyleCreator =\n/** @class */\nfunction () {\n function TooltipMarkupStyleCreator() {\n this.richTextStyles = {}; // Notice that \"generate a style name\" usually happens repeatedly when mouse is moving and\n // a tooltip is displayed. So we put the `_nextStyleNameId` as a member of each creator\n // rather than static shared by all creators (which will cause it increase to fast).\n\n this._nextStyleNameId = getRandomIdBase();\n }\n\n TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n return '__EC_aUTo_' + this._nextStyleNameId++;\n };\n\n TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n var marker = getTooltipMarker({\n color: colorStr,\n type: markerType,\n renderMode: renderMode,\n markerId: markerId\n });\n\n if (isString(marker)) {\n return marker;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n assert(markerId);\n }\n\n this.richTextStyles[markerId] = marker.style;\n return marker.content;\n }\n };\n /**\n * @usage\n * ```ts\n * const styledText = markupStyleCreator.wrapRichTextStyle([\n * // The styles will be auto merged.\n * {\n * fontSize: 12,\n * color: 'blue'\n * },\n * {\n * padding: 20\n * }\n * ]);\n * ```\n */\n\n\n TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n var finalStl = {};\n\n if (isArray(styles)) {\n each(styles, function (stl) {\n return extend(finalStl, stl);\n });\n } else {\n extend(finalStl, styles);\n }\n\n var styleName = this._generateStyleName();\n\n this.richTextStyles[styleName] = finalStl;\n return \"{\" + styleName + \"|\" + text + \"}\";\n };\n\n return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };"]},"metadata":{},"sourceType":"module"} |