{"version":3,"file":"adaptor.js","sourceRoot":"","sources":["../../../src/plots/gauge/adaptor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Geometry } from '@antv/g2';\nimport { isString } from '@antv/util';\nimport { interaction, animation, theme, scale, annotation } from '../../adaptor/common';\nimport { interval } from '../../adaptor/geometries';\nimport { AXIS_META_CONFIG_KEYS } from '../../constant';\nimport { Params } from '../../core/adaptor';\nimport { deepAssign, flow, pick, renderGaugeStatistic } from '../../utils';\nimport { RANGE_TYPE, RANGE_VALUE, PERCENT, DEFAULT_COLOR, INDICATEOR_VIEW_ID, RANGE_VIEW_ID } from './constants';\nimport { GaugeOptions } from './types';\nimport { getIndicatorData, getRangeData } from './utils';\n\n/**\n * geometry 处理\n * @param params\n */\nfunction geometry(params: Params): Params {\n const { chart, options } = params;\n const { percent, range, radius, innerRadius, startAngle, endAngle, axis, indicator, gaugeStyle, type, meter } =\n options;\n const { color, width: rangeWidth } = range;\n\n // 指标 & 指针\n // 如果开启在应用\n if (indicator) {\n const indicatorData = getIndicatorData(percent);\n\n const v1 = chart.createView({ id: INDICATEOR_VIEW_ID });\n v1.data(indicatorData);\n\n v1.point()\n .position(`${PERCENT}*1`)\n .shape(indicator.shape || 'gauge-indicator')\n // 传入指针的样式到自定义 shape 中\n .customInfo({\n defaultColor: chart.getTheme().defaultColor,\n indicator,\n });\n\n v1.coordinate('polar', {\n startAngle,\n endAngle,\n radius: innerRadius * radius, // 外部的 innerRadius * radius = 这里的 radius\n });\n\n v1.axis(PERCENT, axis);\n // 一部分应用到 scale 中\n v1.scale(PERCENT, pick(axis, AXIS_META_CONFIG_KEYS));\n }\n\n // 辅助 range\n // [{ range: 1, type: '0', percent: 原始进度百分比 }]\n const rangeData = getRangeData(percent, options.range);\n const v2 = chart.createView({ id: RANGE_VIEW_ID });\n v2.data(rangeData);\n\n const rangeColor = isString(color) ? [color, DEFAULT_COLOR] : color;\n\n const { ext } = interval({\n chart: v2,\n options: {\n xField: '1',\n yField: RANGE_VALUE,\n seriesField: RANGE_TYPE,\n rawFields: [PERCENT],\n isStack: true,\n interval: {\n color: rangeColor,\n style: gaugeStyle,\n shape: type === 'meter' ? 'meter-gauge' : null,\n },\n args: {\n zIndexReversed: true,\n sortZIndex: true,\n },\n minColumnWidth: rangeWidth,\n maxColumnWidth: rangeWidth,\n },\n });\n\n const geometry = ext.geometry as Geometry;\n // 传入到自定义 shape 中\n geometry.customInfo({ meter });\n\n v2.coordinate('polar', {\n innerRadius,\n radius,\n startAngle,\n endAngle,\n }).transpose();\n\n return params;\n}\n\n/**\n * meta 配置\n * @param params\n */\nfunction meta(params: Params): Params {\n return flow(\n scale({\n range: {\n min: 0,\n max: 1,\n maxLimit: 1,\n minLimit: 0,\n },\n [PERCENT]: {},\n })\n )(params);\n}\n\n/**\n * 统计指标文档\n * @param params\n */\nfunction statistic(params: Params, updated?: boolean): Params {\n const { chart, options } = params;\n const { statistic, percent } = options;\n\n // 先清空标注,再重新渲染\n chart.getController('annotation').clear(true);\n if (statistic) {\n const { content: contentOption } = statistic;\n let transformContent;\n // 当设置 content 的时候,设置默认样式\n if (contentOption) {\n transformContent = deepAssign(\n {},\n {\n content: `${(percent * 100).toFixed(2)}%`,\n style: {\n opacity: 0.75,\n fontSize: '30px',\n lineHeight: 1,\n textAlign: 'center',\n color: 'rgba(44,53,66,0.85)',\n },\n },\n contentOption\n );\n }\n renderGaugeStatistic(chart, { statistic: { ...statistic, content: transformContent } }, { percent });\n }\n\n if (updated) {\n chart.render(true);\n }\n\n return params;\n}\n\n/**\n * other 配置\n * @param params\n */\nfunction other(params: Params): Params {\n const { chart } = params;\n\n chart.legend(false);\n chart.tooltip(false);\n\n return params;\n}\n\n/**\n * 对外暴露的 adaptor\n */\nexport { statistic };\n\n/**\n * 图适配器\n * @param chart\n * @param options\n */\nexport function adaptor(params: Params) {\n // flow 的方式处理所有的配置到 G2 API\n return flow(\n theme,\n // animation 配置必须在 createView 之前,不然无法让子 View 生效\n animation,\n geometry,\n meta,\n statistic,\n interaction,\n annotation(),\n other\n // ... 其他的 adaptor flow\n )(params);\n}\n"]}