UNPKG

@alicloud/cloud-charts

Version:

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

601 lines (589 loc) 25.1 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.convertCSS = convertCSS; exports.convertJsStyle = convertJsStyle; exports.convertKey = convertKey; exports.getG2theme = getG2theme; exports.setG2Theme = setG2Theme; exports.setThemeStyle = setThemeStyle; var _core = require("@antv/g2/esm/core"); var _color = require("@antv/g2/esm/util/color"); var _createByStyleSheet = require("@antv/g2/esm/theme/util/create-by-style-sheet"); var _constants = require("../constants"); var _merge = _interopRequireDefault(require("lodash/merge")); // 直接引入 merge 和 pxToNumber,避免下方的循环依赖链路: // themes/index => themeTools => common/common => themes/index function pxToNumber(px) { return px && Number(px.toString().replace('px', '')); } // ---------------------- CSS ---------------------- var widgetsThemeStyleId = 'widgets-theme-var'; function getStyleElement() { var el = document.getElementById(widgetsThemeStyleId); if (!el) { el = document.createElement('style'); el.setAttribute('id', widgetsThemeStyleId); document.head.appendChild(el); } return el; } function setThemeStyle(css) { var style = getStyleElement(); style.innerText = css; } function convertCSS(theme) { var varList = Object.keys(theme).map(function (key) { return "--" + key + ": " + theme[key]; }); return "." + _constants.FullCrossName + " {" + varList.join(';') + "}"; } // ---------------------- JS ---------------------- /** * 将主题包中横杠连接符变量克隆转为小驼峰写法 * * @param {Theme} themes 主题包 * * @return {Theme} themes * */ function convertKey(themes) { Object.keys(themes).forEach(function (key) { if (key.indexOf('-') > -1) { var newKey = key.replace(/-(\w)/g, function (all, letter) { return letter.toUpperCase(); }); // @ts-ignore if (!themes[newKey]) { // @ts-ignore themes[newKey] = themes[key]; } } }); return themes; } function convertJsStyle(name, theme) { var result = { name: name, // 分类色阶 category_12: [theme['widgets-color-category-1'], theme['widgets-color-category-2'], theme['widgets-color-category-3'], theme['widgets-color-category-4'], theme['widgets-color-category-5'], theme['widgets-color-category-6'], theme['widgets-color-category-7'], theme['widgets-color-category-8'], theme['widgets-color-category-9'], theme['widgets-color-category-10'], theme['widgets-color-category-11'], theme['widgets-color-category-12']], // 分类色阶 - 20色 category_20: [theme['widgets-color-category-1'], theme['widgets-color-category-2'], theme['widgets-color-category-3'], theme['widgets-color-category-4'], theme['widgets-color-category-5'], theme['widgets-color-category-6'], theme['widgets-color-category-7'], theme['widgets-color-category-8'], theme['widgets-color-category-9'], theme['widgets-color-category-10'], theme['widgets-color-category-11'], theme['widgets-color-category-12'], theme['widgets-color-category-13'], theme['widgets-color-category-14'], theme['widgets-color-category-15'], theme['widgets-color-category-16'], theme['widgets-color-category-17'], theme['widgets-color-category-18'], theme['widgets-color-category-19'], theme['widgets-color-category-20']], // 连续色阶,比较接近的颜色会错开 linear_10: [theme['widgets-color-linear-1'], theme['widgets-color-linear-5'], theme['widgets-color-linear-9'], theme['widgets-color-linear-3'], theme['widgets-color-linear-7'], theme['widgets-color-linear-10'], theme['widgets-color-linear-2'], theme['widgets-color-linear-4'], theme['widgets-color-linear-6'], theme['widgets-color-linear-8']], // 顺序色阶,连续相似的颜色排列 order_10: [theme['widgets-color-linear-1'], theme['widgets-color-linear-2'], theme['widgets-color-linear-3'], theme['widgets-color-linear-4'], theme['widgets-color-linear-5'], theme['widgets-color-linear-6'], theme['widgets-color-linear-7'], theme['widgets-color-linear-8'], theme['widgets-color-linear-9'], theme['widgets-color-linear-10']] }; Object.assign(result, theme); return result; } var BLACK_COLORS_MAP = { 100: '#000', 95: '#0D0D0D', 85: '#262626', 65: '#595959', 45: '#8C8C8C', 25: '#BFBFBF', 15: '#D9D9D9', 6: '#F0F0F0' }; var WHITE_COLORS_MAP = { 100: '#FFFFFF', 95: '#F2F2F2', 85: '#D9D9D9', 65: '#A6A6A6', 45: '#737373', 25: '#404040', 15: '#262626', 6: '#0F0F0F' }; function getG2StyleSheet(theme) { var fontSize1 = pxToNumber(theme['widgets-font-size-1']); var fontSize2 = pxToNumber(theme['widgets-font-size-3']); var isDark = (0, _color.isContrastColorWhite)(theme['widgets-color-background']); var BLACK_COLORS = BLACK_COLORS_MAP; var WHITE_COLORS = WHITE_COLORS_MAP; // 暗色模式下互换颜色表 if (isDark) { BLACK_COLORS = WHITE_COLORS_MAP; WHITE_COLORS = BLACK_COLORS_MAP; } var QUALITATIVE_10 = [theme['widgets-color-category-1'], theme['widgets-color-category-2'], theme['widgets-color-category-3'], theme['widgets-color-category-4'], theme['widgets-color-category-5'], theme['widgets-color-category-6'], theme['widgets-color-category-7'], theme['widgets-color-category-8'], theme['widgets-color-category-9'], theme['widgets-color-category-10']]; var QUALITATIVE_20 = [theme['widgets-color-category-1'], theme['widgets-color-category-2'], theme['widgets-color-category-3'], theme['widgets-color-category-4'], theme['widgets-color-category-5'], theme['widgets-color-category-6'], theme['widgets-color-category-7'], theme['widgets-color-category-8'], theme['widgets-color-category-9'], theme['widgets-color-category-10'], theme['widgets-color-category-11'], theme['widgets-color-category-12'], theme['widgets-color-category-13'], theme['widgets-color-category-14'], theme['widgets-color-category-15'], theme['widgets-color-category-16'], theme['widgets-color-category-17'], theme['widgets-color-category-18'], theme['widgets-color-category-19'], theme['widgets-color-category-20']]; return { /** 图表背景色 */ backgroundColor: 'transparent', /** 主题色 */ brandColor: QUALITATIVE_10[0], /** 分类色板 1,在数据量小于等于 10 时使用 */ paletteQualitative10: QUALITATIVE_10, /** 分类色板 2,在数据量大于 10 时使用 */ paletteQualitative20: QUALITATIVE_20, /** 语义色 */ paletteSemanticRed: theme['widgets-color-red'], /** 语义色 */ paletteSemanticGreen: theme['widgets-color-green'], /** 语义色 */ paletteSemanticYellow: theme['widgets-color-orange'], /** 字体 */ fontFamily: theme['widgets-font-family-txd-m-number'], // -------------------- 坐标轴 -------------------- /** 坐标轴线颜色 */ axisLineBorderColor: theme['widgets-axis-line'], /** 坐标轴线粗细 */ axisLineBorder: 1, /** 坐标轴线 lineDash 设置 */ axisLineDash: null, /** 坐标轴标题颜色 */ axisTitleTextFillColor: theme['widgets-axis-label'], /** 坐标轴标题文本字体大小 */ axisTitleTextFontSize: fontSize1, /** 坐标轴标题文本行高 */ axisTitleTextLineHeight: fontSize1, /** 坐标轴标题文本字体粗细 */ axisTitleTextFontWeight: 'normal', /** 坐标轴标题距离坐标轴文本的间距 */ axisTitleSpacing: fontSize1, /** 坐标轴刻度线颜色 */ axisTickLineBorderColor: theme['widgets-axis-line'], /** 坐标轴刻度线长度 */ axisTickLineLength: 4, /** 坐标轴刻度线粗细 */ axisTickLineBorder: 1, /** 坐标轴次刻度线颜色 */ axisSubTickLineBorderColor: theme['widgets-axis-line'], /** 坐标轴次刻度线长度 */ axisSubTickLineLength: 2, /** 坐标轴次刻度线粗细 */ axisSubTickLineBorder: 1, /** 坐标轴刻度文本颜色 */ axisLabelFillColor: theme['widgets-axis-label'], // BLACK_COLORS[45], /** 坐标轴刻度文本字体大小 */ axisLabelFontSize: fontSize1, /** 坐标轴刻度文本行高 */ axisLabelLineHeight: fontSize1, /** 坐标轴刻度文本字体粗细 */ axisLabelFontWeight: 'normal', /** 坐标轴刻度文本距离坐标轴线的间距 */ axisLabelOffset: theme['widgets-axis-label-offset'], /** 坐标轴网格线颜色 */ axisGridBorderColor: theme['widgets-axis-grid'], /** 坐标轴网格线粗细 */ axisGridBorder: 1, /** 坐标轴网格线虚线设置 */ axisGridLineDash: null, // -------------------- 图例 -------------------- /** 图例标题颜色 */ legendTitleTextFillColor: theme['widgets-legend-text'], /** 图例标题文本字体大小 */ legendTitleTextFontSize: fontSize1, /** 图例标题文本行高 */ legendTitleTextLineHeight: fontSize1, /** 图例标题文本字体粗细 */ legendTitleTextFontWeight: 'normal', /** 图例 marker 颜色 */ legendMarkerColor: QUALITATIVE_10[0], /** 图例 marker 距离图例文本的间距 */ legendMarkerSpacing: fontSize2 / 2, /** 图例 marker 默认半径大小 */ legendMarkerSize: fontSize1 / 3, /** 图例 'circle' marker 半径 */ legendCircleMarkerSize: fontSize1 / 3, /** 图例 'square' marker 半径 */ legendSquareMarkerSize: fontSize1 / 3, /** 图例 'line' marker 半径 */ legendLineMarkerSize: fontSize1 / 3, // CHECK 图例项标记样式 /** 图例项文本颜色 */ legendItemNameFillColor: theme['widgets-legend-text'], /** 图例项文本字体大小 */ legendItemNameFontSize: fontSize1, /** 图例项文本行高 */ legendItemNameLineHeight: fontSize1, /** 图例项粗细 */ legendItemNameFontWeight: 'normal', /** 图例项之间的水平间距 */ legendItemSpacing: fontSize2, /** 图例项垂直方向的间隔 */ legendItemMarginBottom: fontSize2, /** 图例与图表绘图区域的偏移距离 */ legendPadding: [8, 8, 8, 8], /** 水平布局的图例与绘图区域偏移距离 */ legendHorizontalPadding: [8, 0, 8, 0], /** 垂直布局的图例与绘图区域偏移距离 */ legendVerticalPadding: [0, 8, 0, 8], // 图例分页器 /** 图例分页器 marker 大小 */ legendPageNavigatorMarkerSize: fontSize1, /** 图例分页器 marker 非激活状态填充色 */ legendPageNavigatorMarkerInactiveFillColor: BLACK_COLORS[100], /** 图例分页器 marker 非激活状态填充色透明度 */ legendPageNavigatorMarkerInactiveFillOpacity: 0.45, /** 图例分页器 marker 填充色 */ legendPageNavigatorMarkerFillColor: BLACK_COLORS[100], /** 图例分页器 marker 填充色透明度 */ legendPageNavigatorMarkerFillOpacity: 1, /** 图例分页器文本颜色 */ legendPageNavigatorTextFillColor: BLACK_COLORS[45], /** 图例分页器文本字体大小 */ legendPageNavigatorTextFontSize: fontSize1, /** 连续图例滑块填充色 */ sliderRailFillColor: BLACK_COLORS[15], /** 连续图例滑块边框粗细 */ sliderRailBorder: 0, /** 连续图例滑块边框颜色 */ sliderRailBorderColor: null, /** 连续图例滑块宽度 */ sliderRailWidth: 100, /** 连续图例滑块高度 */ sliderRailHeight: 12, /** 连续图例文本颜色 */ sliderLabelTextFillColor: theme['widgets-legend-text'], /** 连续图例文本字体大小 */ sliderLabelTextFontSize: fontSize1, /** 连续图例文本行高 */ sliderLabelTextLineHeight: fontSize1, /** 连续图例文本字体粗细 */ sliderLabelTextFontWeight: 'normal', /** 连续图例滑块颜色 */ sliderHandlerFillColor: BLACK_COLORS[6], /** 连续图例滑块宽度 */ sliderHandlerWidth: 10, /** 连续图例滑块高度 */ sliderHandlerHeight: 14, /** 连续图例滑块边框粗细 */ sliderHandlerBorder: 1, /** 连续图例滑块边框颜色 */ sliderHandlerBorderColor: BLACK_COLORS[25], // -------------------- Annotation,图形标注 -------------------- /** arc 图形标注描边颜色 */ annotationArcBorderColor: BLACK_COLORS[15], /** arc 图形标注粗细 */ annotationArcBorder: 1, /** line 图形标注颜色 */ annotationLineBorderColor: BLACK_COLORS[25], /** line 图形标注粗细 */ annotationLineBorder: 1, /** lube 图形标注的虚线间隔 */ annotationLineDash: null, /** text 图形标注文本颜色 */ annotationTextFillColor: BLACK_COLORS[65], /** text 图形标注文本字体大小 */ annotationTextFontSize: 12, /** text 图形标注文本行高 */ annotationTextLineHeight: 12, /** text 图形标注文本字体粗细 */ annotationTextFontWeight: 'normal', /** text 图形标注文本边框颜色 */ annotationTextBorderColor: null, /** text 图形标注文本边框粗细 */ annotationTextBorder: 0, /** region 图形标注填充颜色 */ annotationRegionFillColor: BLACK_COLORS[100], /** region 图形标注填充颜色透明色 */ annotationRegionFillOpacity: theme['widgets-guide-region-opacity'], /** region 图形标注描边粗细 */ annotationRegionBorder: 0, /** region 图形标注描边颜色 */ annotationRegionBorderColor: null, /** dataMarker 图形标注线的长度 */ annotationDataMarkerLineLength: 16, // -------------------- Tooltip -------------------- /** tooltip crosshairs 辅助线颜色 */ tooltipCrosshairsBorderColor: theme['widgets-tooltip-cross-line'], /** tooltip crosshairs 辅助线粗细 */ tooltipCrosshairsBorder: 1, /** tooltip crosshairs 辅助线虚线间隔 */ tooltipCrosshairsLineDash: null, /** tooltip 内容框背景色 */ tooltipContainerFillColor: theme['widgets-tooltip-background'], tooltipContainerFillOpacity: theme['widgets-tooltip-background-opacity'], /** tooltip 内容框阴影 */ tooltipContainerShadow: theme['widgets-tooltip-shadow'], /** tooltip 内容框圆角 */ tooltipContainerBorderRadius: pxToNumber(theme['widgets-tooltip-corner-radius']), /** tooltip 文本颜色 */ tooltipTextFillColor: theme['widgets-tooltip-text'], /** tooltip 文本字体大小 */ tooltipTextFontSize: fontSize1, /** tooltip 文本行高 */ tooltipTextLineHeight: fontSize1, /** tooltip 文本字体粗细 */ tooltipTextFontWeight: 'normal', // -------------------- Geometry labels -------------------- /** Geometry label 文本颜色 */ labelFillColor: theme['widgets-label-text'], labelFillColorDark: theme['widgets-label-text'], labelFillColorLight: '#ffffff', /** Geometry label 文本字体大小 */ labelFontSize: fontSize1, /** Geometry label 文本行高 */ labelLineHeight: fontSize1, /** Geometry label 文本字体粗细 */ labelFontWeight: 'normal', /** Geometry label 文本描边颜色 */ labelBorderColor: null, /** Geometry label 文本描边粗细 */ labelBorder: 0, /** Geometry innerLabel 文本颜色 */ innerLabelFillColor: WHITE_COLORS[100], // CHECK /** Geometry innerLabel 文本字体大小 */ innerLabelFontSize: fontSize1, /** Geometry innerLabel 文本行高 */ innerLabelLineHeight: fontSize1, /** Geometry innerLabel 文本字体粗细 */ innerLabelFontWeight: 'normal', /** Geometry innerLabel 文本描边颜色 */ innerLabelBorderColor: null, /** Geometry innerLabel 文本描边粗细 */ innerLabelBorder: 0, /** Geometry overflowLabel 文本颜色 */ overflowLabelFillColor: theme['widgets-label-text'], // BLACK_COLORS[65], /** Geometry overflowLabel 文本字体大小 */ overflowLabelFontSize: fontSize1, /** Geometry overflowLabel 文本行高 */ overflowLabelLineHeight: fontSize1, /** Geometry overflowLabel 文本字体粗细 */ overflowLabelFontWeight: 'normal', /** Geometry overflowLabel 文本描边颜色 */ overflowLabelBorderColor: WHITE_COLORS[100], /** Geometry overflowLabel 文本描边粗细 */ overflowLabelBorder: 1, /** Geometry label 文本连接线粗细 */ labelLineBorder: 1, /** Geometry label 文本连接线颜色 */ labelLineBorderColor: theme['widgets-label-text'], // CHECK // -------------------- Geometry 图形样式-------------------- /** 点图填充颜色 */ pointFillColor: QUALITATIVE_10[0], /** 点图填充颜色透明度 */ pointFillOpacity: 0.95, /** 点图大小 */ pointSize: 3, /** 点图描边粗细 */ pointBorder: 0, /** 点图描边颜色 */ pointBorderColor: WHITE_COLORS[100], /** 点图描边透明度 */ pointBorderOpacity: 1, /** 点图 active 状态下描边颜色 */ pointActiveBorderColor: BLACK_COLORS[100], pointActiveBorder: 0, /** 点图 selected 状态下描边粗细 */ pointSelectedBorder: 1.5, /** 点图 selected 状态下描边颜色 */ pointSelectedBorderColor: BLACK_COLORS[100], /** 点图 inactive 状态下填充颜色透明度 */ pointInactiveFillOpacity: 0.3, /** 点图 inactive 状态下描边透明度 */ pointInactiveBorderOpacity: 0.3, /** 空心点图大小 */ hollowPointSize: 3, /** 空心点图描边粗细 */ hollowPointBorder: 1.5, /** 空心点图描边颜色 */ hollowPointBorderColor: QUALITATIVE_10[0], /** 空心点图描边透明度 */ hollowPointBorderOpacity: 1, hollowPointFillColor: WHITE_COLORS[100], /** 空心点图 active 状态下描边粗细 */ hollowPointActiveBorder: 1.5, /** 空心点图 active 状态下描边颜色 */ hollowPointActiveBorderColor: QUALITATIVE_10[0], /** 空心点图 active 状态下描边透明度 */ hollowPointActiveBorderOpacity: 1, /** 空心点图 selected 状态下描边粗细 */ hollowPointSelectedBorder: 1.5, /** 空心点图 selected 状态下描边颜色 */ hollowPointSelectedBorderColor: QUALITATIVE_10[0], /** 空心点图 selected 状态下描边透明度 */ hollowPointSelectedBorderOpacity: 1, /** 空心点图 inactive 状态下描边透明度 */ hollowPointInactiveBorderOpacity: 0.3, /** 线图粗细 */ lineBorder: theme['widgets-line-width'], /** 线图颜色 */ lineBorderColor: QUALITATIVE_10[0], /** 线图透明度 */ lineBorderOpacity: 1, /** 线图 Active 状态下粗细 */ lineActiveBorder: theme['widgets-line-width'], /** 线图 selected 状态下粗细 */ lineSelectedBorder: 3, /** 线图 inactive 状态下透明度 */ lineInactiveBorderOpacity: 0.3, /** area 填充颜色 */ areaFillColor: QUALITATIVE_10[0], /** area 填充透明度 */ areaFillOpacity: theme['widgets-shape-area-opacity'], /** area 在 active 状态下的填充透明度 */ areaActiveFillColor: QUALITATIVE_10[0], areaActiveFillOpacity: theme['widgets-shape-area-opacity'], /** area 在 selected 状态下的填充透明度 */ areaSelectedFillColor: QUALITATIVE_10[0], areaSelectedFillOpacity: 0.5, /** area inactive 状态下填充透明度 */ areaInactiveFillOpacity: 0.3 * theme['widgets-shape-area-opacity'], /** hollowArea 颜色 */ hollowAreaBorderColor: QUALITATIVE_10[0], /** hollowArea 边框粗细 */ hollowAreaBorder: 2, /** hollowArea 边框透明度 */ hollowAreaBorderOpacity: 1, /** hollowArea active 状态下的边框粗细 */ hollowAreaActiveBorder: 3, hollowAreaActiveBorderColor: BLACK_COLORS[100], /** hollowArea selected 状态下的边框粗细 */ hollowAreaSelectedBorder: 3, hollowAreaSelectedBorderColor: BLACK_COLORS[100], /** hollowArea inactive 状态下的边框透明度 */ hollowAreaInactiveBorderOpacity: 0.3, /** interval 填充颜色 */ intervalFillColor: QUALITATIVE_10[0], /** interval 填充透明度 */ intervalFillOpacity: theme['widgets-shape-interval-opacity'], /** interval active 状态下边框粗细 */ intervalActiveBorder: 0, /** interval active 状态下边框颜色 */ intervalActiveBorderColor: 'rgba(0,0,0,0)', intervalActiveBorderOpacity: 1, /** interval selected 状态下边框粗细 */ intervalSelectedBorder: 2, /** interval selected 状态下边框颜色 */ intervalSelectedBorderColor: 'rgba(0,0,0,0)', /** interval selected 状态下边框透明度 */ intervalSelectedBorderOpacity: 1, /** interval inactive 状态下边框透明度 */ intervalInactiveBorderOpacity: 0.3, /** interval inactive 状态下填充透明度 */ intervalInactiveFillOpacity: 0.3, /** interval 边框粗细 */ hollowIntervalBorder: 2, /** hollowInterval 边框颜色 */ hollowIntervalBorderColor: QUALITATIVE_10[0], /** hollowInterval 边框透明度 */ hollowIntervalBorderOpacity: 1, hollowIntervalFillColor: theme['widgets-color-background'], // WHITE_COLORS[100], /** hollowInterval active 状态下边框粗细 */ hollowIntervalActiveBorder: 2, /** hollowInterval active 状态下边框颜色 */ hollowIntervalActiveBorderColor: BLACK_COLORS[100], /** hollowInterval selected 状态下边框粗细 */ hollowIntervalSelectedBorder: 3, /** hollowInterval selected 状态下边框颜色 */ hollowIntervalSelectedBorderColor: BLACK_COLORS[100], /** hollowInterval selected 状态下边框透明度 */ hollowIntervalSelectedBorderOpacity: 1, /** hollowInterval inactive 状态下边框透明度 */ hollowIntervalInactiveBorderOpacity: 0.3 }; } var legendKeys = ['common', 'top', 'right', 'bottom', 'left']; function getG2theme(theme) { var g2StyleSheet = getG2StyleSheet(theme); var g2Theme = (0, _createByStyleSheet.createThemeByStyleSheet)(g2StyleSheet); // g2Theme.maxColumnWidth = 36; var baseFontSize = theme['widgets-font-size-1']; var baseFontSizeNum = pxToNumber(theme['widgets-font-size-1']); // legend 样式 var legendStyle = g2Theme.components.legend; legendKeys.forEach(function (key) { var style = legendStyle[key]; (0, _merge["default"])(style, { // 超出占图表宽度的45%则省略,分页符占了10%,期望一页至少展示2个,所以定为0.45 // 这里注意,测试结果中画布尺寸小于100会影响展示 maxItemWidth: 0.45, // 这里设置 itemValue 会导致一直显示 value,所以放到 legend 中配置 itemStates: { active: { nameStyle: { opacity: 1 }, valueStyle: { opacity: 1 } }, unchecked: { nameStyle: { fill: theme['widgets-legend-uncheck'] }, valueStyle: { fill: theme['widgets-legend-uncheck'] }, markerStyle: { fill: theme['widgets-legend-uncheck'], stroke: theme['widgets-legend-uncheck'] } }, inactive: { nameStyle: { fill: theme['widgets-legend-uncheck'] }, valueStyle: { fill: theme['widgets-legend-uncheck'] }, markerStyle: { opacity: 0.3 } } } }); }); // tooltip 样式 var tooltipStyle = g2Theme.components.tooltip.domStyles; Object.assign(tooltipStyle['g2-tooltip'], { padding: "0 " + theme['widgets-tooltip-padding'] + " " + Math.max(0, pxToNumber(theme['widgets-tooltip-padding']) - baseFontSizeNum) + "px " + theme['widgets-tooltip-padding'], backdropFilter: theme['widgets-tooltip-background-blur'] }); Object.assign(tooltipStyle['g2-tooltip-title'], { marginBottom: baseFontSize, marginTop: theme['widgets-tooltip-padding'], color: theme['widgets-tooltip-title'] }); Object.assign(tooltipStyle['g2-tooltip-list-item'], { marginBottom: baseFontSize, marginTop: 0 }); Object.assign(tooltipStyle['g2-tooltip-marker'], { width: baseFontSizeNum / 2 + "px", height: baseFontSizeNum / 2 + "px", marginRight: baseFontSizeNum / 3 + "px" }); Object.assign(tooltipStyle['g2-tooltip-value'], { marginLeft: 2 * baseFontSizeNum / 3 + "px" }); // slider 样式 var sliderStyle = g2Theme.components.slider.common; var p = baseFontSizeNum * 2 / 3; sliderStyle.padding = [baseFontSizeNum, 3, 0, 0]; sliderStyle.height = pxToNumber(theme['widgets-font-size-6']); ; sliderStyle.textStyle = { opacity: 0 }; // scrollbar 样式 var scrollbarStyle = g2Theme.components.scrollbar; // scrollbarStyle.common.categorySize = baseFontSizeNum * 10; Object.assign(scrollbarStyle, { "default": { style: { trackColor: theme['widgets-scrollbar-bg'], thumbColor: theme['widgets-scrollbar-thumb'] } }, hover: { style: { thumbColor: theme['widgets-scrollbar-thumb'] } } }); return g2Theme; } function setG2Theme(theme) { var g2Theme = getG2theme(theme); (0, _core.registerTheme)('default', g2Theme); }