-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: export registerSymbol #6381
Conversation
@wangxingkang 非常感谢贡献! 可以参考这个 PR #6379 去添加一个测试案例吗?同时也在官网案例中添加一个例子,以及文档,让更多人看到你实现的新 feature! |
好的 我加一下 |
这个地方我想了一下,应该不能把 import {register} from '@antv/g2';
register('symbol.custom', () => {}); 实现可以参考如下: // src/api/library.ts
import { G2ComponentNamespaces, G2Component } from '../runtime';
import { registerSymbol, SymbolFactor } from '../utils/marker';
export const library = {};
// @todo Warn if override existing key.
export function register(
key: `${G2ComponentNamespaces | 'symbol'}.${any}`
component: G2Component | SymbolFactor,
) {
if (key.startsWith('symbol.'))
registerSymbol(key.split('.').pop(), component as SymbolFactor);
else Object.assign(library, { [key]: component });
} 后面更好的做法是把 symbol 作为一个单独的类型的可视化组件。(暂时不考虑) |
好的 我参考下 |
集成到 register 确实更优雅 |
@wangxingkang 嗯嗯,可以滴 |
@pearmini 帮忙看看测试用例写的是否合适 我把文档补一下,顺便看下标题 【自定义符号(Symbol)】是否合适 |
测试代码内容没有问题,但是位置可能需要改一下!🎉 因为这个 register symbol 这个能力是只和静态渲染有关嘛,所以放在截图测试里会好一点。可以在 import { G2Spec, register, SymbolFactor } from '../../../src';
export function mockIntervalLegendMarker(): G2Spec {
const triangle: SymbolFactor = Object.assign(
(x, y, r) => {
const diffY = r * Math.sin((1 / 3) * Math.PI);
return [
['M', x - r, y + diffY],
['L', x, y - diffY],
['L', x + r, y + diffY],
['Z'],
];
},
{ style: ['fill'] },
);
register('symbol.customTriangle', triangle);
return {
type: 'interval',
data: [
{ name: 'London', 月份: 'Jan.', 月均降雨量: 18.9 },
{ name: 'London', 月份: 'Feb.', 月均降雨量: 28.8 },
{ name: 'London', 月份: 'Mar.', 月均降雨量: 39.3 },
{ name: 'London', 月份: 'Apr.', 月均降雨量: 81.4 },
{ name: 'London', 月份: 'May', 月均降雨量: 47 },
{ name: 'London', 月份: 'Jun.', 月均降雨量: 20.3 },
{ name: 'London', 月份: 'Jul.', 月均降雨量: 24 },
{ name: 'London', 月份: 'Aug.', 月均降雨量: 35.6 },
{ name: 'Berlin', 月份: 'Jan.', 月均降雨量: 12.4 },
{ name: 'Berlin', 月份: 'Feb.', 月均降雨量: 23.2 },
{ name: 'Berlin', 月份: 'Mar.', 月均降雨量: 34.5 },
{ name: 'Berlin', 月份: 'Apr.', 月均降雨量: 99.7 },
{ name: 'Berlin', 月份: 'May', 月均降雨量: 52.6 },
{ name: 'Berlin', 月份: 'Jun.', 月均降雨量: 35.5 },
{ name: 'Berlin', 月份: 'Jul.', 月均降雨量: 37.4 },
{ name: 'Berlin', 月份: 'Aug.', 月均降雨量: 42.4 },
],
encode: {
x: '月份',
y: '月均降雨量',
color: 'name',
},
transform: [{ type: 'stackY' }],
legend: {
color: {
itemMarker: 'customTriangle',
},
},
};
} 在 export { mockIntervalLegendMarker } from './mock-interval-legend-marker.'; 然后运行 |
@pearmini 测试相关已修改 文档相关有个疑问 这个文档是和 自定义图例(Legend)同级 还是放在 自定义图例(Legend)下面 |
应该还需要运行
同级好一点?毕竟是两种不同的场景? |
好的 我本地 run test 报错 我找找原因 |
@pearmini 全部搞定了,文档麻烦看下,有没有描述不当的地方 |
Pull Request Test Coverage Report for Build 10092208461Warning: This coverage report may be inaccurate.This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Details
💛 - Coveralls |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wangxingkang 这个 PR 看上去非常棒了!感谢贡献 😊
对了,如果有空的话还可以再提一个 PR,在官网加一个例子 如果可以的话,可以尝试添加一下。截图的话在 PR 里发给我,我帮你上传,然后给你一个链接,你更新到 PR 里面就好。 |
@pearmini 好的 |
Checklist
npm test
passesDescription of change