UNPKG

7.71 kBSource Map (JSON)View Raw
1{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/facet/list.ts"],"names":[],"mappings":"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","sourcesContent":["import { deepMix, each, filter, get } from '@antv/util';\nimport { DIRECTION } from '../constant';\nimport { AxisCfg, Datum, ListCfg, ListData } from '../interface';\n\nimport View from '../chart/view';\nimport { getFactTitleConfig } from '../util/facet';\nimport { Facet } from './facet';\n\n/**\n * @ignore\n * 镜像分面\n */\nexport default class List extends Facet<ListCfg, ListData> {\n protected getDefaultCfg() {\n return deepMix({}, super.getDefaultCfg(), {\n type: 'list',\n cols: null, // 默认显示一列\n showTitle: true,\n title: super.getDefaultTitleCfg(),\n });\n }\n\n public render() {\n super.render();\n\n if (this.cfg.showTitle) {\n this.renderTitle();\n }\n }\n\n protected afterEachView(view: View, facet: ListData) {\n this.processAxis(view, facet);\n }\n\n protected beforeEachView(view: View, facet: ListData) {}\n\n protected generateFacets(data: Datum[]): ListData[] {\n const { fields } = this.cfg;\n let { cols } = this.cfg;\n\n const [columnField] = fields;\n if (!columnField) {\n throw new Error('No `fields` specified!');\n }\n\n const colValues = this.getFieldValues(data, columnField);\n\n const count = colValues.length;\n cols = cols || count; // 每行有几列数据\n\n // 总共有几行\n const rows = this.getPageCount(count, cols);\n const rst = [];\n\n colValues.forEach((val, index) => {\n // 当前 index 在那个行列\n const { row, col } = this.getRowCol(index, cols);\n\n const conditions = [{ field: columnField, value: val, values: colValues }];\n\n const facetData = filter(data, this.getFacetDataFilter(conditions));\n\n const facet: ListData = {\n type: this.cfg.type,\n data: facetData,\n region: this.getRegion(rows, cols, col, row),\n\n columnValue: val,\n rowValue: val,\n columnField,\n rowField: null,\n columnIndex: col,\n rowIndex: row,\n columnValuesLength: cols,\n rowValuesLength: rows,\n\n total: count,\n };\n\n rst.push(facet);\n });\n\n return rst;\n }\n\n /**\n * 设置 x 坐标轴的文本、title 是否显示\n * @param x\n * @param axes\n * @param option\n * @param facet\n */\n protected getXAxisOption(x: string, axes: any, option: AxisCfg, facet: ListData): object {\n // 当是最后一行或者下面没有 view 时文本不显示\n if (\n facet.rowIndex !== facet.rowValuesLength - 1 &&\n facet.columnValuesLength * facet.rowIndex + facet.columnIndex + 1 + facet.columnValuesLength <= facet.total\n ) {\n return {\n ...option,\n label: null,\n title: null,\n };\n }\n return option;\n }\n\n /**\n * 设置 y 坐标轴的文本、title 是否显示\n * @param y\n * @param axes\n * @param option\n * @param facet\n */\n protected getYAxisOption(y: string, axes: any, option: AxisCfg, facet: ListData): object {\n if (facet.columnIndex !== 0) {\n return {\n ...option,\n title: null,\n label: null,\n };\n }\n return option;\n }\n\n /**\n * facet title\n */\n private renderTitle() {\n each(this.facets, (facet: ListData) => {\n const { columnValue, view } = facet;\n const formatter = get(this.cfg.title, 'formatter');\n\n const config = deepMix(\n {\n position: ['50%', '0%'] as [string, string],\n content: formatter ? formatter(columnValue) : columnValue,\n },\n getFactTitleConfig(DIRECTION.TOP),\n this.cfg.title\n );\n\n view.annotation().text(config);\n });\n }\n\n /**\n * 计算分页数\n * @param total\n * @param pageSize\n */\n private getPageCount(total: number, pageSize: number): number {\n return Math.floor((total + pageSize - 1) / pageSize);\n }\n\n /**\n * 索引值在哪一页\n * @param index\n * @param pageSize\n */\n private getRowCol(index: number, pageSize: number) {\n const row = Math.floor(index / pageSize);\n const col = index % pageSize;\n\n return { row, col };\n }\n}\n"]}
\No newline at end of file