import { Plugin } from '@nocobase/client'; import { ChartV2Block, ChartV2BlockDesigner, ChartV2BlockInitializer, chartInitializers } from './block'; import antd from './chart/antd'; import g2plot from './chart/g2plot'; import { ChartGroup } from './chart/group'; import { lang } from './locale'; import { chartFilterActionInitializers, chartFilterItemInitializers } from './filter'; class DataVisualizationPlugin extends Plugin { public charts: ChartGroup = new ChartGroup(); async load() { this.charts.setGroup('Built-in', [...g2plot, ...antd]); this.app.addComponents({ ChartV2BlockInitializer, ChartV2BlockDesigner, ChartV2Block, }); this.app.schemaInitializerManager.add(chartInitializers); this.app.schemaInitializerManager.add(chartFilterItemInitializers); this.app.schemaInitializerManager.add(chartFilterActionInitializers); const blockInitializers = this.app.schemaInitializerManager.get('BlockInitializers'); blockInitializers?.add('dataBlocks.chartV2', { title: lang('Charts'), Component: 'ChartV2BlockInitializer', }); } } export default DataVisualizationPlugin; export { Chart } from './chart/chart'; export type { ChartProps, ChartType, RenderProps } from './chart/chart'; export type { FieldOption } from './hooks'; export type { QueryProps } from './renderer'; export { ChartConfigContext } from './configure';