UNPKG

31.4 kBSource Map (JSON)View Raw
1{"version":3,"file":"legend.js","sourceRoot":"","sources":["../../../src/chart/controller/legend.ts"],"names":[],"mappings":"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","sourcesContent":["import { deepMix, each, find, get, head, isBoolean, last } from '@antv/util';\nimport { COMPONENT_MAX_VIEW_PERCENTAGE, COMPONENT_TYPE, DIRECTION, LAYER } from '../../constant';\nimport { Attribute, CategoryLegend, ContinuousLegend, GroupComponent, IGroup, Scale, Tick } from '../../dependents';\nimport { ComponentOption, LegendCfg, LegendOption, LooseObject, AllLegendsOptions, Padding } from '../../interface';\nimport { DEFAULT_ANIMATE_CFG } from '../../animate';\nimport Geometry from '../../geometry/base';\nimport { BBox } from '../../util/bbox';\nimport { directionToPosition } from '../../util/direction';\nimport { omit } from '../../util/helper';\nimport { getCustomLegendItems, getLegendItems, getLegendLayout, getLegendThemeCfg } from '../../util/legend';\nimport { getName } from '../../util/scale';\nimport View from '../view';\nimport { Controller } from './base';\n\ntype DoEach = (geometry: Geometry, attr: Attribute, scale: Scale) => void;\n\n/**\n * 从配置中获取单个字段的 legend 配置\n * @param legends\n * @param field\n * @returns the option of one legend field\n */\nfunction getLegendOption(legends: AllLegendsOptions, field: string) {\n if (isBoolean(legends)) {\n return legends === false ? false : {};\n }\n\n return get(legends, [field], legends);\n}\n\nfunction getDirection(legendOption: any): DIRECTION {\n return get(legendOption, 'position', DIRECTION.BOTTOM);\n}\n\n/**\n * @ignore\n * legend Controller\n */\nexport default class Legend extends Controller<AllLegendsOptions> {\n /** the draw group of axis */\n private container: IGroup;\n /** 用于多个 legend 布局的 bbox */\n private layoutBBox: BBox;\n\n constructor(view: View) {\n super(view);\n\n this.container = this.view.getLayer(LAYER.FORE).addGroup();\n }\n\n public get name(): string {\n return 'legend';\n }\n\n public init() {}\n\n /**\n * render the legend component by legend options\n */\n public render() {\n // 和 update 逻辑保持一致\n this.update();\n }\n\n /**\n * layout legend\n * 计算出 legend 的 direction 位置 x, y\n */\n public layout() {\n this.layoutBBox = this.view.viewBBox;\n\n each(this.components, (co: ComponentOption) => {\n const { component, direction } = co;\n const layout = getLegendLayout(direction);\n const maxWidthRatio = component.get('maxWidthRatio');\n const maxHeightRatio = component.get('maxHeightRatio');\n\n const maxSize = this.getCategoryLegendSizeCfg(layout, maxWidthRatio, maxHeightRatio);\n\n const maxWidth = component.get('maxWidth');\n const maxHeight = component.get('maxHeight');\n\n // 先更新 maxSize,更新 layoutBBox,以便计算正确的 x y\n component.update({\n maxWidth: Math.min(maxSize.maxWidth, maxWidth || 0),\n maxHeight: Math.min(maxSize.maxHeight, maxHeight || 0),\n });\n\n const padding = component.get('padding') as Padding;\n\n const bboxObject = component.getLayoutBBox(); // 这里只需要他的 width、height 信息做位置调整\n const bbox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height).expand(padding);\n\n const [x1, y1] = directionToPosition(this.view.viewBBox, bbox, direction);\n const [x2, y2] = directionToPosition(this.layoutBBox, bbox, direction);\n\n let x = 0;\n let y = 0;\n\n // 因为 legend x y 要和 coordinateBBox 对齐,所以要做一个简单的判断\n if (direction.startsWith('top') || direction.startsWith('bottom')) {\n x = x1;\n y = y2;\n } else {\n x = x2;\n y = y1;\n }\n\n // 更新位置\n component.setLocation({ x: x + padding[3], y: y + padding[0] });\n\n this.layoutBBox = this.layoutBBox.cut(bbox, direction);\n });\n }\n\n /**\n * legend 的更新逻辑\n */\n public update() {\n this.option = this.view.getOptions().legends;\n\n // 已经处理过的 legend\n const updated: Record<string, true> = {};\n\n const eachLegend = (geometry: Geometry, attr: Attribute, scale: Scale) => {\n const id = this.getId(scale.field);\n\n const existCo = this.getComponentById(id);\n\n // 存在则 update\n if (existCo) {\n let cfg;\n const legendOption = getLegendOption(this.option, scale.field);\n\n // if the legend option is not false, means legend should be created.\n if (legendOption !== false) {\n if (get(legendOption, 'custom')) {\n cfg = this.getCategoryCfg(geometry, attr, scale, legendOption, true);\n } else {\n if (scale.isLinear) {\n // linear field, create continuous legend\n cfg = this.getContinuousCfg(geometry, attr, scale, legendOption);\n } else if (scale.isCategory) {\n // category field, create category legend\n cfg = this.getCategoryCfg(geometry, attr, scale, legendOption);\n }\n }\n }\n\n // 如果 cfg 为空,则不在 updated 标记,那么会在后面逻辑中删除\n if (cfg) {\n // omit 掉一些属性,比如 container 等\n omit(cfg, ['container']);\n\n existCo.direction = getDirection(legendOption);\n\n existCo.component.update(cfg);\n\n // 标记为新的\n updated[id] = true;\n }\n } else {\n // 不存在则 create\n const legend = this.createFieldLegend(geometry, attr, scale);\n\n if (legend) {\n (legend.component as GroupComponent).init();\n this.components.push(legend);\n\n // 标记为新的\n updated[id] = true;\n }\n }\n };\n\n // 全局自定义图例\n if (get(this.option, 'custom')) {\n const id = 'global-custom';\n const existCo = this.getComponentById(id);\n if (existCo) {\n const customCfg = this.getCategoryCfg(undefined, undefined, undefined, this.option, true);\n omit(customCfg, ['container']);\n existCo.component.update(customCfg);\n\n updated[id] = true;\n } else {\n const component = this.createCustomLegend(undefined, undefined, undefined, this.option as LegendCfg);\n if (component) {\n component.init();\n\n const layer = LAYER.FORE;\n const direction = getDirection(this.option);\n\n this.components.push({\n id,\n component,\n layer,\n direction,\n type: COMPONENT_TYPE.LEGEND,\n extra: undefined,\n });\n\n // 标记为更新\n updated[id] = true;\n }\n }\n } else {\n // 遍历处理每一个创建逻辑\n this.loopLegends(eachLegend);\n }\n\n // 处理完成之后,销毁删除的\n // 不在处理中的\n const components = [];\n each(this.getComponents(), (co: ComponentOption) => {\n if (updated[co.id]) {\n components.push(co);\n } else {\n co.component.destroy();\n }\n });\n\n // 更新当前已有的 components\n this.components = components;\n }\n\n public clear() {\n super.clear();\n this.container.clear();\n }\n\n public destroy() {\n super.destroy();\n\n this.container.remove(true);\n }\n\n /**\n * 递归获取所有的 Geometry\n */\n private getGeometries(view: View): Geometry[] {\n let geometries = view.geometries;\n\n each(view.views, (v: View) => {\n geometries = geometries.concat(this.getGeometries(v));\n });\n\n return geometries;\n }\n\n /**\n * 遍历 Geometry,处理 legend 逻辑\n * @param doEach 每个 loop 中的处理方法\n */\n private loopLegends(doEach: DoEach) {\n const isRootView = this.view.getRootView() === this.view;\n // 非根 view,不处理 legend\n if (!isRootView) {\n return;\n }\n\n // 递归 view 中所有的 Geometry,进行创建 legend\n const geometries = this.getGeometries(this.view);\n\n const looped: Record<string, true> = {}; // 防止一个字段创建两个 legend\n\n each(geometries, (geometry: Geometry) => {\n const attributes = geometry.getGroupAttributes();\n\n each(attributes, (attr: Attribute) => {\n const scale = attr.getScale(attr.type);\n // 如果在视觉通道上映射常量值,如 size(2) shape('circle') 不创建 legend\n if (!scale || scale.type === 'identity' || looped[scale.field]) {\n return;\n }\n\n doEach(geometry, attr, scale);\n\n looped[scale.field] = true;\n });\n });\n }\n\n /**\n * 创建一个 legend\n * @param geometry\n * @param attr\n * @param scale\n */\n private createFieldLegend(geometry: Geometry, attr: Attribute, scale: Scale): ComponentOption {\n let component;\n\n const legendOption = getLegendOption(this.option, scale.field);\n const layer = LAYER.FORE;\n const direction = getDirection(legendOption);\n\n // if the legend option is not false, means legend should be created.\n if (legendOption !== false) {\n if (get(legendOption, 'custom')) {\n component = this.createCustomLegend(geometry, attr, scale, legendOption);\n } else {\n if (scale.isLinear) {\n // linear field, create continuous legend\n component = this.createContinuousLegend(geometry, attr, scale, legendOption);\n } else if (scale.isCategory) {\n // category field, create category legend\n component = this.createCategoryLegend(geometry, attr, scale, legendOption);\n }\n }\n }\n\n if (component) {\n component.set('field', scale.field);\n\n return {\n id: this.getId(scale.field),\n component,\n layer,\n direction,\n type: COMPONENT_TYPE.LEGEND,\n extra: { scale },\n };\n }\n }\n\n /**\n * 自定义图例使用 category 图例去渲染\n * @param geometry\n * @param attr\n * @param scale\n * @param legendOption\n */\n private createCustomLegend(geometry: Geometry, attr: Attribute, scale: Scale, legendOption: LegendCfg) {\n // 直接使用 分类图例渲染\n const cfg = this.getCategoryCfg(geometry, attr, scale, legendOption, true);\n return new CategoryLegend(cfg);\n }\n\n /**\n * 创建连续图例\n * @param geometry\n * @param attr\n * @param scale\n * @param legendOption\n */\n private createContinuousLegend(geometry: Geometry, attr: Attribute, scale: Scale, legendOption: any) {\n const cfg = this.getContinuousCfg(geometry, attr, scale, omit(legendOption, ['value']));\n return new ContinuousLegend(cfg);\n }\n\n /**\n * 创建分类图例\n * @param geometry\n * @param attr\n * @param scale\n * @param legendOption\n */\n private createCategoryLegend(geometry: Geometry, attr: Attribute, scale: Scale, legendOption: any) {\n const cfg = this.getCategoryCfg(geometry, attr, scale, legendOption);\n return new CategoryLegend(cfg);\n }\n\n /**\n * 获得连续图例的配置\n * @param geometry\n * @param attr\n * @param scale\n * @param legendOption\n */\n private getContinuousCfg(geometry: Geometry, attr: Attribute, scale: Scale, legendOption: any) {\n const ticks = scale.getTicks();\n\n const containMin = find(ticks, (tick: Tick) => tick.value === 0);\n const containMax = find(ticks, (tick: Tick) => tick.value === 1);\n const items = ticks.map((tick: Tick) => {\n const { value, tickValue } = tick;\n const attrValue = attr.mapping(scale.invert(value)).join('');\n\n return {\n value: tickValue,\n attrValue,\n color: attrValue,\n scaleValue: value,\n };\n });\n\n if (!containMin) {\n items.push({\n value: scale.min,\n attrValue: attr.mapping(scale.invert(0)).join(''),\n color: attr.mapping(scale.invert(0)).join(''),\n scaleValue: 0,\n });\n }\n if (!containMax) {\n items.push({\n value: scale.max,\n attrValue: attr.mapping(scale.invert(1)).join(''),\n color: attr.mapping(scale.invert(1)).join(''),\n scaleValue: 1,\n });\n }\n\n // 排序\n items.sort((a: any, b: any) => a.value - b.value);\n\n // 跟 attr 相关的配置\n // size color 区别的配置\n const attrLegendCfg: LooseObject = {\n min: head(items).value,\n max: last(items).value,\n colors: [],\n rail: {\n type: attr.type,\n },\n track: {},\n };\n\n if (attr.type === 'size') {\n attrLegendCfg.track = {\n style: {\n // size 的选中前景色,对于 color,则直接使用 color 标识\n // @ts-ignore\n fill: attr.type === 'size' ? this.view.getTheme().defaultColor : undefined,\n },\n };\n }\n\n if (attr.type === 'color') {\n attrLegendCfg.colors = items.map((item) => item.attrValue);\n }\n\n const container = this.container;\n // if position is not set, use top as default\n const direction = getDirection(legendOption);\n\n const layout = getLegendLayout(direction);\n\n let title = get(legendOption, 'title');\n if (title) {\n title = deepMix(\n {\n text: getName(scale),\n },\n title\n );\n }\n\n // 基础配置,从当前数据中读到的配置\n attrLegendCfg.container = container;\n attrLegendCfg.layout = layout;\n attrLegendCfg.title = title;\n attrLegendCfg.animateOption = DEFAULT_ANIMATE_CFG;\n // @ts-ignore\n return this.mergeLegendCfg(attrLegendCfg, legendOption, 'continuous');\n }\n\n /**\n * 获取分类图例的配置项\n * @param geometry\n * @param attr\n * @param scale\n * @param custom\n * @param legendOption\n */\n private getCategoryCfg(geometry: Geometry, attr: Attribute, scale: Scale, legendOption: any, custom?: boolean) {\n const container = this.container;\n // if position is not set, use top as default\n const direction = get(legendOption, 'position', DIRECTION.BOTTOM);\n\n const legendTheme = getLegendThemeCfg(this.view.getTheme(), direction);\n\n // the default marker style\n const themeMarker = get(legendTheme, ['marker']);\n const userMarker = get(legendOption, 'marker');\n const layout = getLegendLayout(direction);\n const themePageNavigator = get(legendTheme, ['pageNavigator']);\n const userPageNavigator = get(legendOption, 'pageNavigator');\n\n const items = custom\n ? getCustomLegendItems(themeMarker, userMarker, legendOption.items)\n : getLegendItems(this.view, geometry, attr, themeMarker, userMarker);\n\n let title = get(legendOption, 'title');\n if (title) {\n title = deepMix(\n {\n text: scale ? getName(scale) : '',\n },\n title\n );\n }\n const maxWidthRatio = get(legendOption, 'maxWidthRatio');\n const maxHeightRatio = get(legendOption, 'maxHeightRatio');\n\n const baseCfg: LooseObject = this.getCategoryLegendSizeCfg(layout, maxWidthRatio, maxHeightRatio);\n baseCfg.container = container;\n baseCfg.layout = layout;\n baseCfg.items = items;\n baseCfg.title = title;\n baseCfg.animateOption = DEFAULT_ANIMATE_CFG;\n baseCfg.pageNavigator = deepMix({}, themePageNavigator, userPageNavigator);\n\n const categoryCfg = this.mergeLegendCfg(baseCfg, legendOption, direction);\n if (categoryCfg.reversed) {\n // 图例项需要逆序\n categoryCfg.items.reverse();\n }\n\n const maxItemWidth = get(categoryCfg, 'maxItemWidth');\n if (maxItemWidth && maxItemWidth <= 1) {\n // 转换成像素值\n categoryCfg.maxItemWidth = this.view.viewBBox.width * maxItemWidth;\n }\n\n return categoryCfg;\n }\n\n /**\n * get legend config, use option > suggestion > theme\n * @param baseCfg\n * @param legendOption\n * @param direction\n */\n private mergeLegendCfg(baseCfg: object, legendOption: LegendOption, direction: DIRECTION) {\n const position = direction.split('-')[0];\n const themeObject = getLegendThemeCfg(this.view.getTheme(), position);\n\n return deepMix({}, themeObject, baseCfg, legendOption);\n }\n\n /**\n * 生成 id\n * @param key\n */\n private getId(key: string): string {\n return `${this.name}-${key}`;\n }\n\n /**\n * 根据 id 来获取组件\n * @param id\n */\n private getComponentById(id: string): ComponentOption {\n return find(this.components, (co) => co.id === id);\n }\n\n private getCategoryLegendSizeCfg(\n layout: 'horizontal' | 'vertical',\n maxWidthRatio = COMPONENT_MAX_VIEW_PERCENTAGE,\n maxHeightRatio = COMPONENT_MAX_VIEW_PERCENTAGE\n ) {\n const { width: vw, height: vh } = this.view.viewBBox;\n // 目前 legend 的布局是以 viewBBox 为参照\n // const { width: cw, height: ch } = this.view.coordinateBBox;\n return layout === 'vertical'\n ? {\n maxWidth: vw * maxWidthRatio,\n maxHeight: vh,\n }\n : {\n maxWidth: vw,\n maxHeight: vh * maxHeightRatio,\n };\n }\n}\n"]}
\No newline at end of file