85 lines
3.3 KiB
TypeScript

/**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import { Plugin } from '@nocobase/client';
import {
ChartV2Block,
ChartV2BlockDesigner,
ChartV2BlockInitializer,
ChartBlockProvider,
chartInitializers,
chartInitializers_deprecated,
} from './block';
import antd from './chart/antd';
import g2plot from './chart/g2plot';
import { ChartGroup } from './chart/group';
import {
chartFilterActionInitializers,
chartFilterActionInitializers_deprecated,
chartFilterItemInitializers,
chartFilterItemInitializers_deprecated,
} from './filter';
import { lang } from './locale';
import { chartActionsInitializer } from './initializers/chartActions';
import { chartActionRefreshSettings } from './settings/chartActionRefresh';
import { useChartRefreshActionProps } from './initializers/RefreshAction';
import { chartBlockActionsInitializer } from './initializers/chartBlockActions';
import { useChartBlockRefreshActionProps } from './initializers/BlockRefreshAction';
import { chartBlockActionRefreshSettings } from './settings/chartBlockActionRefresh';
class PluginDataVisualiztionClient extends Plugin {
public charts: ChartGroup = new ChartGroup();
async load() {
this.charts.setGroup('Built-in', [...g2plot, ...antd]);
this.app.addComponents({
ChartV2BlockInitializer,
ChartV2BlockDesigner,
ChartV2Block,
ChartBlockProvider,
});
this.app.addScopes({
useChartRefreshActionProps,
useChartBlockRefreshActionProps,
});
this.app.schemaInitializerManager.add(chartInitializers_deprecated);
this.app.schemaInitializerManager.add(chartInitializers);
this.app.schemaInitializerManager.add(chartFilterItemInitializers_deprecated);
this.app.schemaInitializerManager.add(chartFilterItemInitializers);
this.app.schemaInitializerManager.add(chartFilterActionInitializers_deprecated);
this.app.schemaInitializerManager.add(chartFilterActionInitializers);
this.app.schemaInitializerManager.add(chartActionsInitializer);
this.app.schemaInitializerManager.add(chartBlockActionsInitializer);
this.app.schemaSettingsManager.add(chartActionRefreshSettings);
this.app.schemaSettingsManager.add(chartBlockActionRefreshSettings);
const blockInitializers = this.app.schemaInitializerManager.get('page:addBlock');
blockInitializers?.add('dataBlocks.chartV2', {
title: lang('Charts'),
Component: 'ChartV2BlockInitializer',
});
this.app.schemaInitializerManager.addItem('mobile:addBlock', 'dataBlocks.chartV2', {
title: lang('Charts'),
Component: 'ChartV2BlockInitializer',
});
this.app.schemaInitializerManager.addItem('popup:common:addBlock', 'dataBlocks.charts', {
title: '{{t("Charts")}}',
Component: 'ChartV2BlockInitializer',
});
}
}
export default PluginDataVisualiztionClient;
export { Chart } from './chart/chart';
export type { ChartProps, ChartType, RenderProps } from './chart/chart';
export { ChartConfigContext } from './configure';
export type { FieldOption } from './hooks';
export type { QueryProps } from './renderer';