You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
/**
|
|
* <zh/> 基于用户传入的配置,推断出最终的配置
|
|
*
|
|
* <en/> Infer the final configuration based on the configuration passed by the user
|
|
* @param options - <zh/> 用户传入的配置 | <en/> Configuration passed by the user
|
|
* @returns <zh/> 最终的配置 | <en/> Final configuration
|
|
*/
|
|
export function inferOptions(options) {
|
|
const flow = [inferLayoutOptions];
|
|
return flow.reduce((acc, infer) => infer(acc), options);
|
|
}
|
|
/**
|
|
* <zh/> 推断布局配置
|
|
*
|
|
* <en/> Infer layout configuration
|
|
* @param options - <zh/> 用户传入的配置 | <en/> Configuration passed by the user
|
|
* @returns <zh/> 最终的配置 | <en/> Final configuration
|
|
*/
|
|
function inferLayoutOptions(options) {
|
|
if (!options.layout)
|
|
return options;
|
|
if (Array.isArray(options.layout))
|
|
return options;
|
|
if ('preLayout' in options.layout)
|
|
return options;
|
|
if ([
|
|
'antv-dagre',
|
|
'combo-combined',
|
|
'compact-box',
|
|
'circular',
|
|
'concentric',
|
|
'dagre',
|
|
'fishbone',
|
|
'grid',
|
|
'indented',
|
|
'mds',
|
|
'radial',
|
|
'random',
|
|
'snake',
|
|
// <zh/> 下列布局的标签位置待适配,需要手动配置 preLayout false
|
|
// <en/> The label position of the following layouts needs to be adapted, and preLayout needs to be manually configured as false
|
|
'dendrogram',
|
|
'mindmap',
|
|
].includes(options.layout.type)) {
|
|
options.layout.preLayout = true;
|
|
}
|
|
return options;
|
|
}
|
|
//# sourceMappingURL=options.js.map
|