1 line
58 KiB
JSON
1 line
58 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.array.slice.js\";\nimport \"core-js/modules/es.array.fill.js\";\nimport \"core-js/modules/es.array.join.js\";\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\nimport ZRText from 'zrender/lib/graphic/Text.js';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util.js';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states.js';\nimport { deprecateReplaceLog } from '../util/log.js';\nimport { makeInner, interpolateRawValues } from '../util/model.js';\nimport { initProps, updateProps } from '../util/graphic.js';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var text = labelTexts[stateName];\n var state = label.ensureState(stateName);\n state.style = state.style || {};\n state.style.text = text;\n }\n\n var oldStates = label.currentStates.slice();\n label.clearStates(true);\n label.setStyle({\n text: labelTexts.normal\n });\n label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n var labelFetcher = opt.labelFetcher;\n var labelDataIndex = opt.labelDataIndex;\n var labelDimIndex = opt.labelDimIndex;\n var normalModel = stateModels.normal;\n var baseText;\n\n if (labelFetcher) {\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n interpolatedValue: interpolatedValue\n } : null);\n }\n\n if (baseText == null) {\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n }\n\n var statesText = {\n normal: baseText\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var stateModel = stateModels[stateName];\n statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n }\n\n return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified // TODO specified position?\n) {\n opt = opt || EMPTY_OBJ;\n var isSetOnText = targetEl instanceof ZRText;\n var needsCreateText = false;\n\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n if (stateModel && stateModel.getShallow('show')) {\n needsCreateText = true;\n break;\n }\n }\n\n var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n if (needsCreateText) {\n if (!isSetOnText) {\n // Reuse the previous\n if (!textContent) {\n textContent = new ZRText();\n targetEl.setTextContent(textContent);\n } // Use same state proxy\n\n\n if (targetEl.stateProxy) {\n textContent.stateProxy = targetEl.stateProxy;\n }\n }\n\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\n var normalModel = labelStatesModels.normal;\n var showNormal = !!normalModel.getShallow('show');\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n normalStyle.text = labelStatesTexts.normal;\n\n if (!isSetOnText) {\n // Always create new\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n }\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var stateModel = labelStatesModels[stateName];\n\n if (stateModel) {\n var stateObj = textContent.ensureState(stateName);\n var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n if (stateShow !== showNormal) {\n stateObj.ignore = !stateShow;\n }\n\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n stateObj.style.text = labelStatesTexts[stateName];\n\n if (!isSetOnText) {\n var targetElEmphasisState = targetEl.ensureState(stateName);\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n }\n }\n } // PENDING: if there is many requirements that emphasis position\n // need to be different from normal position, we might consider\n // auto slient is those cases.\n\n\n textContent.silent = !!normalModel.getShallow('silent'); // Keep x and y\n\n if (textContent.style.x != null) {\n normalStyle.x = textContent.style.x;\n }\n\n if (textContent.style.y != null) {\n normalStyle.y = textContent.style.y;\n }\n\n textContent.ignore = !showNormal; // Always create new style.\n\n textContent.useStyle(normalStyle);\n textContent.dirty();\n\n if (opt.enableTextSetter) {\n labelInner(textContent).setLabelText = function (interpolatedValue) {\n var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n setLabelText(textContent, labelStatesTexts);\n };\n }\n } else if (textContent) {\n // Not display rich text.\n textContent.ignore = true;\n }\n\n targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n labelName = labelName || 'label';\n var statesModels = {\n normal: itemModel.getModel(labelName)\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n }\n\n return statesModels;\n}\n/**\r\n * Set basic textStyle properties.\r\n */\n\nexport function createTextStyle(textStyleModel, specifiedTextStyle, // Fixed style in the code. Can't be set by model.\nopt, isNotNormal, isAttached // If text is attached on an element. If so, auto color will handling in zrender.\n) {\n var textStyle = {};\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n specifiedTextStyle && extend(textStyle, specifiedTextStyle); // textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false);\n\n return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n opt = opt || {};\n var textConfig = {};\n var labelPosition;\n var labelRotate = textStyleModel.getShallow('rotate');\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n var labelOffset = textStyleModel.getShallow('offset');\n labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside'); // 'outside' is not a valid zr textPostion value, but used\n // in bar series, and magric type should be considered.\n\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n if (labelPosition != null) {\n textConfig.position = labelPosition;\n }\n\n if (labelOffset != null) {\n textConfig.offset = labelOffset;\n }\n\n if (labelRotate != null) {\n labelRotate *= Math.PI / 180;\n textConfig.rotation = labelRotate;\n }\n\n if (labelDistance != null) {\n textConfig.distance = labelDistance;\n } // fill and auto is determined by the color of path fill if it's not specified by developers.\n\n\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n return textConfig;\n}\n/**\r\n * The uniform entry of set text style, that is, retrieve style definitions\r\n * from `model` and set to `textStyle` object.\r\n *\r\n * Never in merge mode, but in overwrite mode, that is, all of the text style\r\n * properties will be set. (Consider the states of normal and emphasis and\r\n * default value can be adopted, merge would make the logic too complicated\r\n * to manage.)\r\n */\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n // Consider there will be abnormal when merge hover style to normal style if given default value.\n opt = opt || EMPTY_OBJ;\n var ecModel = textStyleModel.ecModel;\n var globalTextStyle = ecModel && ecModel.option.textStyle; // Consider case:\n // {\n // data: [{\n // value: 12,\n // label: {\n // rich: {\n // // no 'a' here but using parent 'a'.\n // }\n // }\n // }],\n // rich: {\n // a: { ... }\n // }\n // }\n\n var richItemNames = getRichItemNames(textStyleModel);\n var richResult;\n\n if (richItemNames) {\n richResult = {};\n\n for (var name_1 in richItemNames) {\n if (richItemNames.hasOwnProperty(name_1)) {\n // Cascade is supported in rich.\n var richTextStyle = textStyleModel.getModel(['rich', name_1]); // In rich, never `disableBox`.\n // FIXME: consider `label: {formatter: '{a|xx}', color: 'blue', rich: {a: {}}}`,\n // the default color `'blue'` will not be adopted if no color declared in `rich`.\n // That might confuses users. So probably we should put `textStyleModel` as the\n // root ancestor of the `richTextStyle`. But that would be a break change.\n\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n }\n }\n }\n\n if (richResult) {\n textStyle.rich = richResult;\n }\n\n var overflow = textStyleModel.get('overflow');\n\n if (overflow) {\n textStyle.overflow = overflow;\n }\n\n var margin = textStyleModel.get('minMargin');\n\n if (margin != null) {\n textStyle.margin = margin;\n }\n\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n} // Consider case:\n// {\n// data: [{\n// value: 12,\n// label: {\n// rich: {\n// // no 'a' here but using parent 'a'.\n// }\n// }\n// }],\n// rich: {\n// a: { ... }\n// }\n// }\n// TODO TextStyleModel\n\n\nfunction getRichItemNames(textStyleModel) {\n // Use object to remove duplicated names.\n var richItemNameMap;\n\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n if (rich) {\n richItemNameMap = richItemNameMap || {};\n var richKeys = keys(rich);\n\n for (var i = 0; i < richKeys.length; i++) {\n var richKey = richKeys[i];\n richItemNameMap[richKey] = 1;\n }\n }\n\n textStyleModel = textStyleModel.parentModel;\n }\n\n return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n // In merge mode, default value should not be given.\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n var inheritColor = opt && opt.inheritColor;\n var fillColor = textStyleModel.getShallow('color');\n var strokeColor = textStyleModel.getShallow('textBorderColor');\n var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n if (fillColor === 'inherit' || fillColor === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n if (fillColor === 'auto') {\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n }\n }\n\n if (inheritColor) {\n fillColor = inheritColor;\n } else {\n fillColor = null;\n }\n }\n\n if (strokeColor === 'inherit' || strokeColor === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n if (strokeColor === 'auto') {\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n }\n }\n\n if (inheritColor) {\n strokeColor = inheritColor;\n } else {\n strokeColor = null;\n }\n }\n\n if (!isAttached) {\n // Only use default global textStyle.color if text is individual.\n // Otherwise it will use the strategy of attached text color because text may be on a path.\n fillColor = fillColor || globalTextStyle.color;\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\n }\n\n if (fillColor != null) {\n textStyle.fill = fillColor;\n }\n\n if (strokeColor != null) {\n textStyle.stroke = strokeColor;\n }\n\n var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n if (textBorderWidth != null) {\n textStyle.lineWidth = textBorderWidth;\n }\n\n var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n if (textBorderType != null) {\n textStyle.lineDash = textBorderType;\n }\n\n var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n if (textBorderDashOffset != null) {\n textStyle.lineDashOffset = textBorderDashOffset;\n }\n\n if (!isNotNormal && opacity == null && !inRich) {\n opacity = opt && opt.defaultOpacity;\n }\n\n if (opacity != null) {\n textStyle.opacity = opacity;\n } // TODO\n\n\n if (!isNotNormal && !isAttached) {\n // Set default finally.\n if (textStyle.fill == null && opt.inheritColor) {\n textStyle.fill = opt.inheritColor;\n }\n } // Do not use `getFont` here, because merge should be supported, where\n // part of these properties may be changed in emphasis style, and the\n // others should remain their original value got from normal style.\n\n\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n var key = TEXT_PROPS_WITH_GLOBAL[i];\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n var key = TEXT_PROPS_SELF[i];\n var val = textStyleModel.getShallow(key);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n if (textStyle.verticalAlign == null) {\n var baseline = textStyleModel.getShallow('baseline');\n\n if (baseline != null) {\n textStyle.verticalAlign = baseline;\n }\n }\n\n if (!isBlock || !opt.disableBox) {\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n var key = TEXT_PROPS_BOX[i];\n var val = textStyleModel.getShallow(key);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n var borderType = textStyleModel.getShallow('borderType');\n\n if (borderType != null) {\n textStyle.borderDash = borderType;\n }\n\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n if (process.env.NODE_ENV !== 'production') {\n if (textStyle.backgroundColor === 'auto') {\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n }\n }\n\n textStyle.backgroundColor = inheritColor;\n }\n\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n if (process.env.NODE_ENV !== 'production') {\n if (textStyle.borderColor === 'auto') {\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n }\n }\n\n textStyle.borderColor = inheritColor;\n }\n }\n}\n\nexport function getFont(opt, ecModel) {\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n return trim([// FIXME in node-canvas fontWeight is before fontStyle\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n if (!label) {\n return;\n }\n\n var obj = labelInner(label);\n obj.prevValue = obj.value;\n obj.value = value;\n var normalLabelModel = labelStatesModels.normal;\n obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n if (obj.valueAnimation) {\n obj.precision = normalLabelModel.get('precision');\n obj.defaultInterpolatedText = getDefaultText;\n obj.statesModels = labelStatesModels;\n }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n var labelInnerStore = labelInner(textEl);\n\n if (!labelInnerStore.valueAnimation || labelInnerStore.prevValue === labelInnerStore.value) {\n // Value not changed, no new label animation\n return;\n }\n\n var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText; // Consider the case that being animating, do not use the `obj.value`,\n // Otherwise it will jump to the `obj.value` when this new animation started.\n\n var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n var targetValue = labelInnerStore.value;\n\n function during(percent) {\n var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n var labelText = getLabelText({\n labelDataIndex: dataIndex,\n labelFetcher: labelFetcher,\n defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n }, labelInnerStore.statesModels, interpolated);\n setLabelText(textEl, labelText);\n }\n\n textEl.percent = 0;\n (labelInnerStore.prevValue == null ? initProps : updateProps)(textEl, {\n // percent is used to prevent animation from being aborted #15916\n percent: 1\n }, animatableModel, dataIndex, null, during);\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/qingge-Market/qingge-vue/node_modules/echarts/lib/label/labelStyle.js"],"names":["ZRText","isFunction","retrieve2","extend","keys","trim","SPECIAL_STATES","DISPLAY_STATES","deprecateReplaceLog","makeInner","interpolateRawValues","initProps","updateProps","EMPTY_OBJ","setLabelText","label","labelTexts","i","length","stateName","text","state","ensureState","style","oldStates","currentStates","slice","clearStates","setStyle","normal","useStates","getLabelText","opt","stateModels","interpolatedValue","labelFetcher","labelDataIndex","labelDimIndex","normalModel","baseText","getFormattedLabel","get","defaultText","statesText","stateModel","setLabelStyle","targetEl","labelStatesModels","stateSpecified","isSetOnText","needsCreateText","getShallow","textContent","getTextContent","setTextContent","stateProxy","labelStatesTexts","showNormal","normalStyle","createTextStyle","setTextConfig","createTextConfig","stateObj","stateShow","ignore","targetElEmphasisState","textConfig","silent","x","y","useStyle","dirty","enableTextSetter","labelInner","getLabelStatesModels","itemModel","labelName","statesModels","getModel","textStyleModel","specifiedTextStyle","isNotNormal","isAttached","textStyle","setTextStyleCommon","labelPosition","labelRotate","labelDistance","labelOffset","defaultOutsidePosition","position","offset","Math","PI","rotation","distance","outsideFill","inheritColor","ecModel","globalTextStyle","option","richItemNames","getRichItemNames","richResult","name_1","hasOwnProperty","richTextStyle","setTokenTextStyle","rich","overflow","margin","richItemNameMap","richKeys","richKey","parentModel","TEXT_PROPS_WITH_GLOBAL","TEXT_PROPS_SELF","TEXT_PROPS_BOX","isBlock","inRich","fillColor","strokeColor","opacity","process","env","NODE_ENV","color","textBorderColor","fill","stroke","textBorderWidth","lineWidth","textBorderType","lineDash","textBorderDashOffset","lineDashOffset","defaultOpacity","key","val","verticalAlign","baseline","disableBox","borderType","borderDash","backgroundColor","borderColor","getFont","gTextStyleModel","fontStyle","fontWeight","fontSize","fontFamily","join","setLabelValueAnimation","value","getDefaultText","obj","prevValue","normalLabelModel","valueAnimation","precision","defaultInterpolatedText","animateLabelValue","textEl","dataIndex","data","animatableModel","labelInnerStore","currValue","targetValue","during","percent","interpolated","labelText"],"mappings":"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","sourcesContent":["\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\n\r\n\r\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\r\n\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\nimport ZRText from 'zrender/lib/graphic/Text.js';\r\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util.js';\r\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states.js';\r\nimport { deprecateReplaceLog } from '../util/log.js';\r\nimport { makeInner, interpolateRawValues } from '../util/model.js';\r\nimport { initProps, updateProps } from '../util/graphic.js';\r\nvar EMPTY_OBJ = {};\r\nexport function setLabelText(label, labelTexts) {\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var text = labelTexts[stateName];\r\n var state = label.ensureState(stateName);\r\n state.style = state.style || {};\r\n state.style.text = text;\r\n }\r\n\r\n var oldStates = label.currentStates.slice();\r\n label.clearStates(true);\r\n label.setStyle({\r\n text: labelTexts.normal\r\n });\r\n label.useStates(oldStates, true);\r\n}\r\n\r\nfunction getLabelText(opt, stateModels, interpolatedValue) {\r\n var labelFetcher = opt.labelFetcher;\r\n var labelDataIndex = opt.labelDataIndex;\r\n var labelDimIndex = opt.labelDimIndex;\r\n var normalModel = stateModels.normal;\r\n var baseText;\r\n\r\n if (labelFetcher) {\r\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\r\n interpolatedValue: interpolatedValue\r\n } : null);\r\n }\r\n\r\n if (baseText == null) {\r\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\r\n }\r\n\r\n var statesText = {\r\n normal: baseText\r\n };\r\n\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = stateModels[stateName];\r\n statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\r\n }\r\n\r\n return statesText;\r\n}\r\n\r\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified // TODO specified position?\r\n) {\r\n opt = opt || EMPTY_OBJ;\r\n var isSetOnText = targetEl instanceof ZRText;\r\n var needsCreateText = false;\r\n\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\r\n\r\n if (stateModel && stateModel.getShallow('show')) {\r\n needsCreateText = true;\r\n break;\r\n }\r\n }\r\n\r\n var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\r\n\r\n if (needsCreateText) {\r\n if (!isSetOnText) {\r\n // Reuse the previous\r\n if (!textContent) {\r\n textContent = new ZRText();\r\n targetEl.setTextContent(textContent);\r\n } // Use same state proxy\r\n\r\n\r\n if (targetEl.stateProxy) {\r\n textContent.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\r\n var normalModel = labelStatesModels.normal;\r\n var showNormal = !!normalModel.getShallow('show');\r\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\r\n normalStyle.text = labelStatesTexts.normal;\r\n\r\n if (!isSetOnText) {\r\n // Always create new\r\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\r\n }\r\n\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = labelStatesModels[stateName];\r\n\r\n if (stateModel) {\r\n var stateObj = textContent.ensureState(stateName);\r\n var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\r\n\r\n if (stateShow !== showNormal) {\r\n stateObj.ignore = !stateShow;\r\n }\r\n\r\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\r\n stateObj.style.text = labelStatesTexts[stateName];\r\n\r\n if (!isSetOnText) {\r\n var targetElEmphasisState = targetEl.ensureState(stateName);\r\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\r\n }\r\n }\r\n } // PENDING: if there is many requirements that emphasis position\r\n // need to be different from normal position, we might consider\r\n // auto slient is those cases.\r\n\r\n\r\n textContent.silent = !!normalModel.getShallow('silent'); // Keep x and y\r\n\r\n if (textContent.style.x != null) {\r\n normalStyle.x = textContent.style.x;\r\n }\r\n\r\n if (textContent.style.y != null) {\r\n normalStyle.y = textContent.style.y;\r\n }\r\n\r\n textContent.ignore = !showNormal; // Always create new style.\r\n\r\n textContent.useStyle(normalStyle);\r\n textContent.dirty();\r\n\r\n if (opt.enableTextSetter) {\r\n labelInner(textContent).setLabelText = function (interpolatedValue) {\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\r\n setLabelText(textContent, labelStatesTexts);\r\n };\r\n }\r\n } else if (textContent) {\r\n // Not display rich text.\r\n textContent.ignore = true;\r\n }\r\n\r\n targetEl.dirty();\r\n}\r\n\r\nexport { setLabelStyle };\r\nexport function getLabelStatesModels(itemModel, labelName) {\r\n labelName = labelName || 'label';\r\n var statesModels = {\r\n normal: itemModel.getModel(labelName)\r\n };\r\n\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\r\n }\r\n\r\n return statesModels;\r\n}\r\n/**\r\n * Set basic textStyle properties.\r\n */\r\n\r\nexport function createTextStyle(textStyleModel, specifiedTextStyle, // Fixed style in the code. Can't be set by model.\r\nopt, isNotNormal, isAttached // If text is attached on an element. If so, auto color will handling in zrender.\r\n) {\r\n var textStyle = {};\r\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\r\n specifiedTextStyle && extend(textStyle, specifiedTextStyle); // textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false);\r\n\r\n return textStyle;\r\n}\r\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\r\n opt = opt || {};\r\n var textConfig = {};\r\n var labelPosition;\r\n var labelRotate = textStyleModel.getShallow('rotate');\r\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\r\n var labelOffset = textStyleModel.getShallow('offset');\r\n labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside'); // 'outside' is not a valid zr textPostion value, but used\r\n // in bar series, and magric type should be considered.\r\n\r\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\r\n\r\n if (labelPosition != null) {\r\n textConfig.position = labelPosition;\r\n }\r\n\r\n if (labelOffset != null) {\r\n textConfig.offset = labelOffset;\r\n }\r\n\r\n if (labelRotate != null) {\r\n labelRotate *= Math.PI / 180;\r\n textConfig.rotation = labelRotate;\r\n }\r\n\r\n if (labelDistance != null) {\r\n textConfig.distance = labelDistance;\r\n } // fill and auto is determined by the color of path fill if it's not specified by developers.\r\n\r\n\r\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\r\n return textConfig;\r\n}\r\n/**\r\n * The uniform entry of set text style, that is, retrieve style definitions\r\n * from `model` and set to `textStyle` object.\r\n *\r\n * Never in merge mode, but in overwrite mode, that is, all of the text style\r\n * properties will be set. (Consider the states of normal and emphasis and\r\n * default value can be adopted, merge would make the logic too complicated\r\n * to manage.)\r\n */\r\n\r\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\r\n // Consider there will be abnormal when merge hover style to normal style if given default value.\r\n opt = opt || EMPTY_OBJ;\r\n var ecModel = textStyleModel.ecModel;\r\n var globalTextStyle = ecModel && ecModel.option.textStyle; // Consider case:\r\n // {\r\n // data: [{\r\n // value: 12,\r\n // label: {\r\n // rich: {\r\n // // no 'a' here but using parent 'a'.\r\n // }\r\n // }\r\n // }],\r\n // rich: {\r\n // a: { ... }\r\n // }\r\n // }\r\n\r\n var richItemNames = getRichItemNames(textStyleModel);\r\n var richResult;\r\n\r\n if (richItemNames) {\r\n richResult = {};\r\n\r\n for (var name_1 in richItemNames) {\r\n if (richItemNames.hasOwnProperty(name_1)) {\r\n // Cascade is supported in rich.\r\n var richTextStyle = textStyleModel.getModel(['rich', name_1]); // In rich, never `disableBox`.\r\n // FIXME: consider `label: {formatter: '{a|xx}', color: 'blue', rich: {a: {}}}`,\r\n // the default color `'blue'` will not be adopted if no color declared in `rich`.\r\n // That might confuses users. So probably we should put `textStyleModel` as the\r\n // root ancestor of the `richTextStyle`. But that would be a break change.\r\n\r\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\r\n }\r\n }\r\n }\r\n\r\n if (richResult) {\r\n textStyle.rich = richResult;\r\n }\r\n\r\n var overflow = textStyleModel.get('overflow');\r\n\r\n if (overflow) {\r\n textStyle.overflow = overflow;\r\n }\r\n\r\n var margin = textStyleModel.get('minMargin');\r\n\r\n if (margin != null) {\r\n textStyle.margin = margin;\r\n }\r\n\r\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\r\n} // Consider case:\r\n// {\r\n// data: [{\r\n// value: 12,\r\n// label: {\r\n// rich: {\r\n// // no 'a' here but using parent 'a'.\r\n// }\r\n// }\r\n// }],\r\n// rich: {\r\n// a: { ... }\r\n// }\r\n// }\r\n// TODO TextStyleModel\r\n\r\n\r\nfunction getRichItemNames(textStyleModel) {\r\n // Use object to remove duplicated names.\r\n var richItemNameMap;\r\n\r\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\r\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\r\n\r\n if (rich) {\r\n richItemNameMap = richItemNameMap || {};\r\n var richKeys = keys(rich);\r\n\r\n for (var i = 0; i < richKeys.length; i++) {\r\n var richKey = richKeys[i];\r\n richItemNameMap[richKey] = 1;\r\n }\r\n }\r\n\r\n textStyleModel = textStyleModel.parentModel;\r\n }\r\n\r\n return richItemNameMap;\r\n}\r\n\r\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\r\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\r\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\r\n\r\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\r\n // In merge mode, default value should not be given.\r\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\r\n var inheritColor = opt && opt.inheritColor;\r\n var fillColor = textStyleModel.getShallow('color');\r\n var strokeColor = textStyleModel.getShallow('textBorderColor');\r\n var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\r\n\r\n if (fillColor === 'inherit' || fillColor === 'auto') {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (fillColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n\r\n if (inheritColor) {\r\n fillColor = inheritColor;\r\n } else {\r\n fillColor = null;\r\n }\r\n }\r\n\r\n if (strokeColor === 'inherit' || strokeColor === 'auto') {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (strokeColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n\r\n if (inheritColor) {\r\n strokeColor = inheritColor;\r\n } else {\r\n strokeColor = null;\r\n }\r\n }\r\n\r\n if (!isAttached) {\r\n // Only use default global textStyle.color if text is individual.\r\n // Otherwise it will use the strategy of attached text color because text may be on a path.\r\n fillColor = fillColor || globalTextStyle.color;\r\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\r\n }\r\n\r\n if (fillColor != null) {\r\n textStyle.fill = fillColor;\r\n }\r\n\r\n if (strokeColor != null) {\r\n textStyle.stroke = strokeColor;\r\n }\r\n\r\n var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\r\n\r\n if (textBorderWidth != null) {\r\n textStyle.lineWidth = textBorderWidth;\r\n }\r\n\r\n var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\r\n\r\n if (textBorderType != null) {\r\n textStyle.lineDash = textBorderType;\r\n }\r\n\r\n var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\r\n\r\n if (textBorderDashOffset != null) {\r\n textStyle.lineDashOffset = textBorderDashOffset;\r\n }\r\n\r\n if (!isNotNormal && opacity == null && !inRich) {\r\n opacity = opt && opt.defaultOpacity;\r\n }\r\n\r\n if (opacity != null) {\r\n textStyle.opacity = opacity;\r\n } // TODO\r\n\r\n\r\n if (!isNotNormal && !isAttached) {\r\n // Set default finally.\r\n if (textStyle.fill == null && opt.inheritColor) {\r\n textStyle.fill = opt.inheritColor;\r\n }\r\n } // Do not use `getFont` here, because merge should be supported, where\r\n // part of these properties may be changed in emphasis style, and the\r\n // others should remain their original value got from normal style.\r\n\r\n\r\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\r\n var key = TEXT_PROPS_WITH_GLOBAL[i];\r\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\r\n\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n\r\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\r\n var key = TEXT_PROPS_SELF[i];\r\n var val = textStyleModel.getShallow(key);\r\n\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n\r\n if (textStyle.verticalAlign == null) {\r\n var baseline = textStyleModel.getShallow('baseline');\r\n\r\n if (baseline != null) {\r\n textStyle.verticalAlign = baseline;\r\n }\r\n }\r\n\r\n if (!isBlock || !opt.disableBox) {\r\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\r\n var key = TEXT_PROPS_BOX[i];\r\n var val = textStyleModel.getShallow(key);\r\n\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n\r\n var borderType = textStyleModel.getShallow('borderType');\r\n\r\n if (borderType != null) {\r\n textStyle.borderDash = borderType;\r\n }\r\n\r\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (textStyle.backgroundColor === 'auto') {\r\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\r\n }\r\n }\r\n\r\n textStyle.backgroundColor = inheritColor;\r\n }\r\n\r\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (textStyle.borderColor === 'auto') {\r\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\r\n }\r\n }\r\n\r\n textStyle.borderColor = inheritColor;\r\n }\r\n }\r\n}\r\n\r\nexport function getFont(opt, ecModel) {\r\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\r\n return trim([// FIXME in node-canvas fontWeight is before fontStyle\r\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\r\n}\r\nexport var labelInner = makeInner();\r\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\r\n if (!label) {\r\n return;\r\n }\r\n\r\n var obj = labelInner(label);\r\n obj.prevValue = obj.value;\r\n obj.value = value;\r\n var normalLabelModel = labelStatesModels.normal;\r\n obj.valueAnimation = normalLabelModel.get('valueAnimation');\r\n\r\n if (obj.valueAnimation) {\r\n obj.precision = normalLabelModel.get('precision');\r\n obj.defaultInterpolatedText = getDefaultText;\r\n obj.statesModels = labelStatesModels;\r\n }\r\n}\r\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\r\n var labelInnerStore = labelInner(textEl);\r\n\r\n if (!labelInnerStore.valueAnimation || labelInnerStore.prevValue === labelInnerStore.value) {\r\n // Value not changed, no new label animation\r\n return;\r\n }\r\n\r\n var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText; // Consider the case that being animating, do not use the `obj.value`,\r\n // Otherwise it will jump to the `obj.value` when this new animation started.\r\n\r\n var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\r\n var targetValue = labelInnerStore.value;\r\n\r\n function during(percent) {\r\n var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\r\n labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\r\n var labelText = getLabelText({\r\n labelDataIndex: dataIndex,\r\n labelFetcher: labelFetcher,\r\n defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\r\n }, labelInnerStore.statesModels, interpolated);\r\n setLabelText(textEl, labelText);\r\n }\r\n\r\n textEl.percent = 0;\r\n (labelInnerStore.prevValue == null ? initProps : updateProps)(textEl, {\r\n // percent is used to prevent animation from being aborted #15916\r\n percent: 1\r\n }, animatableModel, dataIndex, null, during);\r\n}"]},"metadata":{},"sourceType":"module"} |