UNPKG

@alicloud/cloud-charts

Version:

![](https://img.shields.io/npm/v/@alicloud/cloud-charts?color=%23ff8200)

120 lines (100 loc) 4.03 kB
'use strict'; import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; import themes from '../themes'; import { merge, pxToNumber } from './common'; import { warn } from './log'; /** * 图形元素label设置。 * * @param {object} geom 图形元素对象 * @param {object} config 图表配置项 * @param {string} [field] 映射数据的字段,默认为y * @param {object} [defaultConfig] 图表额外配置项 * @param {string} [extraConfigKey] 额外配置项的key,会在 config.label 的基础上额外扩展,且配置优先级高于默认的 label * @param {boolean} [useCustomOffset] 是否适用用户自定义偏移量 * */ var defaultConfigKey = 'label'; export default function (_ref) { var geom = _ref.geom, config = _ref.config, _ref$field = _ref.field, field = _ref$field === void 0 ? 'y' : _ref$field, _ref$defaultConfig = _ref.defaultConfig, defaultConfig = _ref$defaultConfig === void 0 ? {} : _ref$defaultConfig, _ref$extraConfigKey = _ref.extraConfigKey, extraConfigKey = _ref$extraConfigKey === void 0 ? null : _ref$extraConfigKey, _ref$useCustomOffset = _ref.useCustomOffset, useCustomOffset = _ref$useCustomOffset === void 0 ? undefined : _ref$useCustomOffset, _ref$componentConfig = _ref.componentConfig, componentConfig = _ref$componentConfig === void 0 ? undefined : _ref$componentConfig, extraCallbackParams = _ref.extraCallbackParams; var configLabel = config[defaultConfigKey]; if (extraConfigKey && config[extraConfigKey] !== undefined) { configLabel = config[extraConfigKey]; } // const configKey = extraConfigKey || defaultConfigKey; if (!configLabel || typeof configLabel === 'object' && configLabel.visible === false) { return; } if (configLabel === true) { configLabel = {}; } var _configLabel = configLabel, _configLabel$position = _configLabel.position, position = _configLabel$position === void 0 ? 'top' : _configLabel$position, offset = _configLabel.offset, _configLabel$labelFor = _configLabel.labelFormatter, labelFormatter = _configLabel$labelFor === void 0 ? null : _configLabel$labelFor, customConfig = _configLabel.customConfig, userField = _configLabel.field, key = _configLabel.key, callback = _configLabel.callback, otherConfigs = _objectWithoutPropertiesLoose(_configLabel, ["position", "offset", "labelFormatter", "customConfig", "field", "key", "callback"]); var labelConfig = _extends({}, defaultConfig, { // type, position: position, // 默认距离 4,加上文字一半的大小以居中,转换为字号 12/3 + 12/2 = 12 * 5/6 offset: pxToNumber(themes['widgets-font-size-1']) * 5 / 6 // autoRotate, // style, // textStyle, }); if (key) { warn('config.label', 'key 属性已废弃,请使用 field 属性'); } var newField = key || userField || field; if (labelFormatter) { labelConfig.content = function (v, item, index) { return labelFormatter(v[newField], item, index); }; } Object.assign(labelConfig, otherConfigs); if (position === 'middle') { labelConfig.offset = 0; } if (componentConfig) { Object.assign(labelConfig, componentConfig); } if (offset !== undefined) { labelConfig.offset = offset; } if (customConfig) { merge(labelConfig, customConfig); } if (useCustomOffset) { labelConfig.offset = Number(offset); } if (callback) { if (extraCallbackParams) { geom.label(newField, function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return callback.apply(void 0, args.concat(extraCallbackParams)); }, labelConfig); } else { geom.label(newField, callback, labelConfig); } } else { geom.label(newField, labelConfig); } }