@nocobase/plugin-data-visualization 0.10.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +88 -0
  3. package/client.d.ts +3 -0
  4. package/client.js +65 -0
  5. package/lib/client/Settings.d.ts +2 -0
  6. package/lib/client/Settings.js +81 -0
  7. package/lib/client/block/ChartBlock.d.ts +2 -0
  8. package/lib/client/block/ChartBlock.js +73 -0
  9. package/lib/client/block/ChartBlockDesigner.d.ts +2 -0
  10. package/lib/client/block/ChartBlockDesigner.js +35 -0
  11. package/lib/client/block/ChartBlockInitializer.d.ts +6 -0
  12. package/lib/client/block/ChartBlockInitializer.js +114 -0
  13. package/lib/client/block/ChartConfigure.d.ts +33 -0
  14. package/lib/client/block/ChartConfigure.js +501 -0
  15. package/lib/client/block/formatters.d.ts +15 -0
  16. package/lib/client/block/formatters.js +58 -0
  17. package/lib/client/block/index.d.ts +4 -0
  18. package/lib/client/block/index.js +49 -0
  19. package/lib/client/block/schemas/configure.d.ts +4 -0
  20. package/lib/client/block/schemas/configure.js +492 -0
  21. package/lib/client/block/transformers.d.ts +6 -0
  22. package/lib/client/block/transformers.js +69 -0
  23. package/lib/client/hooks.d.ts +312 -0
  24. package/lib/client/hooks.js +275 -0
  25. package/lib/client/index.d.ts +5 -0
  26. package/lib/client/index.js +70 -0
  27. package/lib/client/locale/en-US.d.ts +23 -0
  28. package/lib/client/locale/en-US.js +29 -0
  29. package/lib/client/locale/index.d.ts +3 -0
  30. package/lib/client/locale/index.js +39 -0
  31. package/lib/client/locale/ja-JP.d.ts +2 -0
  32. package/lib/client/locale/ja-JP.js +8 -0
  33. package/lib/client/locale/pt-BR.d.ts +23 -0
  34. package/lib/client/locale/pt-BR.js +29 -0
  35. package/lib/client/locale/ru-RU.d.ts +2 -0
  36. package/lib/client/locale/ru-RU.js +8 -0
  37. package/lib/client/locale/tr-TR.d.ts +2 -0
  38. package/lib/client/locale/tr-TR.js +8 -0
  39. package/lib/client/locale/zh-CN.d.ts +70 -0
  40. package/lib/client/locale/zh-CN.js +76 -0
  41. package/lib/client/renderer/ChartLibrary.d.ts +71 -0
  42. package/lib/client/renderer/ChartLibrary.js +140 -0
  43. package/lib/client/renderer/ChartRenderer.d.ts +7 -0
  44. package/lib/client/renderer/ChartRenderer.js +258 -0
  45. package/lib/client/renderer/ChartRendererProvider.d.ts +43 -0
  46. package/lib/client/renderer/ChartRendererProvider.js +38 -0
  47. package/lib/client/renderer/index.d.ts +4 -0
  48. package/lib/client/renderer/index.js +49 -0
  49. package/lib/client/renderer/library/AntdLibrary.d.ts +2 -0
  50. package/lib/client/renderer/library/AntdLibrary.js +123 -0
  51. package/lib/client/renderer/library/G2PlotLibrary.d.ts +2 -0
  52. package/lib/client/renderer/library/G2PlotLibrary.js +288 -0
  53. package/lib/client/renderer/library/index.d.ts +3 -0
  54. package/lib/client/renderer/library/index.js +15 -0
  55. package/lib/client/utils.d.ts +96 -0
  56. package/lib/client/utils.js +137 -0
  57. package/lib/index.d.ts +1 -0
  58. package/lib/index.js +13 -0
  59. package/lib/server/actions/formatter.d.ts +3 -0
  60. package/lib/server/actions/formatter.js +44 -0
  61. package/lib/server/actions/query.d.ts +86 -0
  62. package/lib/server/actions/query.js +326 -0
  63. package/lib/server/index.d.ts +1 -0
  64. package/lib/server/index.js +13 -0
  65. package/lib/server/plugin.d.ts +13 -0
  66. package/lib/server/plugin.js +64 -0
  67. package/package.json +23 -0
  68. package/server.d.ts +3 -0
  69. package/server.js +65 -0
  70. package/src/client/Settings.tsx +43 -0
  71. package/src/client/__tests__/chart-configure.test.tsx +14 -0
  72. package/src/client/__tests__/chart-library.test.ts +78 -0
  73. package/src/client/__tests__/chart-renderer.test.tsx +30 -0
  74. package/src/client/__tests__/hooks.test.ts +261 -0
  75. package/src/client/block/ChartBlock.tsx +22 -0
  76. package/src/client/block/ChartBlockDesigner.tsx +19 -0
  77. package/src/client/block/ChartBlockInitializer.tsx +83 -0
  78. package/src/client/block/ChartConfigure.tsx +450 -0
  79. package/src/client/block/formatters.ts +70 -0
  80. package/src/client/block/index.ts +4 -0
  81. package/src/client/block/schemas/configure.ts +474 -0
  82. package/src/client/block/transformers.ts +52 -0
  83. package/src/client/hooks.ts +239 -0
  84. package/src/client/index.tsx +41 -0
  85. package/src/client/locale/en-US.ts +23 -0
  86. package/src/client/locale/index.ts +19 -0
  87. package/src/client/locale/ja-JP.ts +1 -0
  88. package/src/client/locale/pt-BR.ts +23 -0
  89. package/src/client/locale/ru-RU.ts +1 -0
  90. package/src/client/locale/tr-TR.ts +1 -0
  91. package/src/client/locale/zh-CN.ts +71 -0
  92. package/src/client/renderer/ChartLibrary.tsx +178 -0
  93. package/src/client/renderer/ChartRenderer.tsx +201 -0
  94. package/src/client/renderer/ChartRendererProvider.tsx +58 -0
  95. package/src/client/renderer/index.ts +4 -0
  96. package/src/client/renderer/library/AntdLibrary.tsx +94 -0
  97. package/src/client/renderer/library/G2PlotLibrary.tsx +236 -0
  98. package/src/client/renderer/library/index.tsx +4 -0
  99. package/src/client/utils.ts +102 -0
  100. package/src/index.ts +1 -0
  101. package/src/server/__tests__/api.test.ts +105 -0
  102. package/src/server/__tests__/formatter.test.ts +49 -0
  103. package/src/server/__tests__/query.test.ts +220 -0
  104. package/src/server/actions/formatter.ts +49 -0
  105. package/src/server/actions/query.ts +285 -0
  106. package/src/server/collections/.gitkeep +0 -0
  107. package/src/server/index.ts +1 -0
  108. package/src/server/plugin.ts +37 -0
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
8
+ Edit: 'Edit',
9
+ Delete: 'Delete',
10
+ Cancel: 'Cancel',
11
+ Submit: 'Submit',
12
+ Actions: 'Actions',
13
+ Title: 'Title',
14
+ Enable: 'Enable',
15
+ 'SAML manager': 'SAML manager',
16
+ 'SAML Providers': 'SAML Providers',
17
+ 'Redirect url': 'Redirect url',
18
+ 'SP entity id': 'SP entity id',
19
+ 'Add provider': 'Add',
20
+ 'Edit provider': 'Edit',
21
+ 'Client id': 'Client id',
22
+ 'Entity id or issuer': 'Entity id or issuer',
23
+ 'Login Url': 'Login Url',
24
+ 'Public cert': 'Public cert',
25
+ 'Delete provider': 'Delete',
26
+ 'Are you sure you want to delete it?': 'Are you sure you want to delete it?',
27
+ 'Sign in button name, which will be displayed on the sign in page': 'Sign in button name, which will be displayed on the sign in page'
28
+ };
29
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ export declare const NAMESPACE = "charts-v2";
2
+ export declare function lang(key: string): string;
3
+ export declare function useChartsTranslation(): import("react-i18next").UseTranslationResponse<"charts-v2", undefined>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NAMESPACE = void 0;
7
+ exports.lang = lang;
8
+ exports.useChartsTranslation = useChartsTranslation;
9
+ function _client() {
10
+ const data = require("@nocobase/client");
11
+ _client = function _client() {
12
+ return data;
13
+ };
14
+ return data;
15
+ }
16
+ function _reactI18next() {
17
+ const data = require("react-i18next");
18
+ _reactI18next = function _reactI18next() {
19
+ return data;
20
+ };
21
+ return data;
22
+ }
23
+ var _zhCN = _interopRequireDefault(require("./zh-CN"));
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+ const NAMESPACE = 'charts-v2';
26
+ exports.NAMESPACE = NAMESPACE;
27
+ _client().i18n.addResources('zh-CN', NAMESPACE, _zhCN.default);
28
+ // i18n.addResources('en-US', NAMESPACE, enUS);
29
+ // i18n.addResources('ja-JP', NAMESPACE, jaJP);
30
+ // i18n.addResources('ru-RU', NAMESPACE, ruRU);
31
+ // i18n.addResources('tr-TR', NAMESPACE, trTR);
32
+ function lang(key) {
33
+ return _client().i18n.t(key, {
34
+ ns: NAMESPACE
35
+ });
36
+ }
37
+ function useChartsTranslation() {
38
+ return (0, _reactI18next().useTranslation)(NAMESPACE);
39
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {};
8
+ exports.default = _default;
@@ -0,0 +1,23 @@
1
+ declare const _default: {
2
+ Edit: string;
3
+ Delete: string;
4
+ Cancel: string;
5
+ Submit: string;
6
+ Actions: string;
7
+ Title: string;
8
+ Enable: string;
9
+ 'SAML manager': string;
10
+ 'SAML Providers': string;
11
+ 'Redirect url': string;
12
+ 'SP entity id': string;
13
+ 'Add provider': string;
14
+ 'Edit provider': string;
15
+ 'Client id': string;
16
+ 'Entity id or issuer': string;
17
+ 'Login Url': string;
18
+ 'Public cert': string;
19
+ 'Delete provider': string;
20
+ 'Are you sure you want to delete it?': string;
21
+ 'Sign in button name, which will be displayed on the sign in page': string;
22
+ };
23
+ export default _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
8
+ Edit: 'Editar',
9
+ Delete: 'Delete',
10
+ Cancel: 'Cancelar',
11
+ Submit: 'Enviar',
12
+ Actions: 'Ações',
13
+ Title: 'Titulo',
14
+ Enable: 'Ativo',
15
+ 'SAML manager': 'Gerenciador SAML',
16
+ 'SAML Providers': 'Provedores SAML',
17
+ 'Redirect url': 'URL de redirecionamento',
18
+ 'SP entity id': 'ID de entidade do provedor de serviço (SP)',
19
+ 'Add provider': 'Adicionar',
20
+ 'Edit provider': 'Editar',
21
+ 'Client id': 'ID do cliente',
22
+ 'Entity id or issuer': 'ID de entidade ou emissor',
23
+ 'Login Url': 'URL de login',
24
+ 'Public cert': 'Certificado público',
25
+ 'Delete provider': 'Excluir',
26
+ 'Are you sure you want to delete it?': 'Tem certeza de que deseja excluí-lo?',
27
+ 'Sign in button name, which will be displayed on the sign in page': 'Nome do botão de login, que será exibido na página de login'
28
+ };
29
+ exports.default = _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {};
8
+ exports.default = _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {};
8
+ exports.default = _default;
@@ -0,0 +1,70 @@
1
+ declare const _default: {
2
+ Edit: string;
3
+ Delete: string;
4
+ Cancel: string;
5
+ Submit: string;
6
+ Actions: string;
7
+ Title: string;
8
+ Enable: string;
9
+ Chart: string;
10
+ ChartV2: string;
11
+ Charts: string;
12
+ Configure: string;
13
+ Duplicate: string;
14
+ 'Configure chart': string;
15
+ Transform: string;
16
+ 'Chart type': string;
17
+ 'JSON config': string;
18
+ Query: string;
19
+ Data: string;
20
+ 'Run query': string;
21
+ Measures: string;
22
+ Dimensions: string;
23
+ Filter: string;
24
+ Sort: string;
25
+ Limit: string;
26
+ 'Enable cache': string;
27
+ 'TTL (second)': string;
28
+ Field: string;
29
+ Aggregation: string;
30
+ Alias: string;
31
+ Format: string;
32
+ 'The first 10 records of the query result:': string;
33
+ 'Please run query to retrive data.': string;
34
+ Type: string;
35
+ 'Add field': string;
36
+ 'Add chart': string;
37
+ xField: string;
38
+ yField: string;
39
+ seriesField: string;
40
+ angleField: string;
41
+ colorField: string;
42
+ 'Line Chart': string;
43
+ 'Area Chart': string;
44
+ 'Column Chart': string;
45
+ 'Bar Chart': string;
46
+ 'Pie Chart': string;
47
+ 'Dual Axes Chart': string;
48
+ 'Scatter Chart': string;
49
+ 'Gauge Chart': string;
50
+ Statistic: string;
51
+ Currency: string;
52
+ Percent: string;
53
+ Exponential: string;
54
+ Abbreviation: string;
55
+ 'Please configure and run query': string;
56
+ 'Please configure chart': string;
57
+ 'Are you sure to cancel?': string;
58
+ 'You changes are not saved. If you click OK, your changes will be lost.': string;
59
+ 'Same properties set in the form above will be overwritten by this JSON config.': string;
60
+ 'Built-in': string;
61
+ 'Config reference: ': string;
62
+ Table: string;
63
+ Sum: string;
64
+ Avg: string;
65
+ Count: string;
66
+ Min: string;
67
+ Max: string;
68
+ 'Please select a chart type.': string;
69
+ };
70
+ export default _default;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
8
+ Edit: '编辑',
9
+ Delete: '删除',
10
+ Cancel: '取消',
11
+ Submit: '提交',
12
+ Actions: '操作',
13
+ Title: '名称',
14
+ Enable: '启用',
15
+ Chart: '图表',
16
+ ChartV2: '图表V2',
17
+ Charts: '图表',
18
+ Configure: '配置',
19
+ Duplicate: '复制',
20
+ 'Configure chart': '配置图表',
21
+ Transform: '数据转换',
22
+ 'Chart type': '图表类型',
23
+ 'JSON config': 'JSON 配置',
24
+ Query: '查询',
25
+ Data: '数据',
26
+ 'Run query': '执行查询',
27
+ Measures: '度量',
28
+ Dimensions: '维度',
29
+ Filter: '过滤',
30
+ Sort: '排序',
31
+ Limit: '结果数量',
32
+ 'Enable cache': '启用缓存',
33
+ 'TTL (second)': '缓存时间 (秒)',
34
+ Field: '字段',
35
+ Aggregation: '聚合',
36
+ Alias: '别名',
37
+ Format: '格式',
38
+ 'The first 10 records of the query result:': '查询结果的前 10 条记录:',
39
+ 'Please run query to retrive data.': '请执行查询来获取数据。',
40
+ Type: '类型',
41
+ 'Add field': '添加字段',
42
+ 'Add chart': '添加图表',
43
+ xField: 'x轴字段',
44
+ yField: 'y轴字段',
45
+ seriesField: '分类字段',
46
+ angleField: '角度字段',
47
+ colorField: '颜色字段',
48
+ 'Line Chart': '折线图',
49
+ 'Area Chart': '面积图',
50
+ 'Column Chart': '柱状图',
51
+ 'Bar Chart': '条形图',
52
+ 'Pie Chart': '饼图',
53
+ 'Dual Axes Chart': '双轴图',
54
+ 'Scatter Chart': '散点图',
55
+ 'Gauge Chart': '仪表盘',
56
+ Statistic: '统计',
57
+ Currency: '货币',
58
+ Percent: '百分比',
59
+ Exponential: '科学记数法',
60
+ Abbreviation: '缩写',
61
+ 'Please configure and run query': '请配置并执行数据查询',
62
+ 'Please configure chart': '请配置图表',
63
+ 'Are you sure to cancel?': '确定要取消吗?',
64
+ 'You changes are not saved. If you click OK, your changes will be lost.': '您的更改尚未保存。如果您点击“确定”,您的更改将丢失。',
65
+ 'Same properties set in the form above will be overwritten by this JSON config.': '上面表单中设置的相同属性将被JSON配置覆盖。',
66
+ 'Built-in': '内置图表',
67
+ 'Config reference: ': '配置参考: ',
68
+ Table: '表格',
69
+ Sum: '求和',
70
+ Avg: '平均值',
71
+ Count: '计数',
72
+ Min: '最小值',
73
+ Max: '最大值',
74
+ 'Please select a chart type.': '请选择图表类型'
75
+ };
76
+ exports.default = _default;
@@ -0,0 +1,71 @@
1
+ import { ISchema } from '@formily/react';
2
+ import React from 'react';
3
+ import { FieldOption } from '../hooks';
4
+ import { QueryProps } from './ChartRendererProvider';
5
+ /**
6
+ * @params {usePropsFunc} useProps - Accept the information that the chart component needs to render,
7
+ * process it and return the props of the chart component.
8
+ */
9
+ export declare type usePropsFunc = (props: {
10
+ data: any[];
11
+ fieldProps: {
12
+ [field: string]: FieldOption & {
13
+ transformer: (val: any) => string;
14
+ };
15
+ };
16
+ general: any;
17
+ advanced: any;
18
+ }) => any;
19
+ export declare type ChartProps = {
20
+ name: string;
21
+ component: React.FC<any>;
22
+ schema?: ISchema;
23
+ useProps?: usePropsFunc;
24
+ init?: (fields: FieldOption[], query: {
25
+ measures?: QueryProps['measures'];
26
+ dimensions?: QueryProps['dimensions'];
27
+ }) => {
28
+ general?: any;
29
+ advanced?: any;
30
+ };
31
+ reference?: {
32
+ title: string;
33
+ link: string;
34
+ };
35
+ };
36
+ export declare type Charts = {
37
+ [type: string]: ChartProps;
38
+ };
39
+ export declare type ChartLibraries = {
40
+ [library: string]: {
41
+ enabled: boolean;
42
+ charts: Charts;
43
+ };
44
+ };
45
+ export declare const ChartLibraryContext: React.Context<ChartLibraries>;
46
+ export declare const useCharts: () => Charts;
47
+ export declare const useChartTypes: () => {
48
+ label: string;
49
+ children: (ChartProps & {
50
+ key: string;
51
+ label: string;
52
+ value: string;
53
+ })[];
54
+ }[];
55
+ export declare const useToggleChartLibrary: () => {
56
+ toggle: (library: string) => void;
57
+ };
58
+ export declare const ChartLibraryProvider: React.FC<{
59
+ name: string;
60
+ charts: Charts;
61
+ }>;
62
+ export declare const infer: (fields: FieldOption[], { measures, dimensions, }: {
63
+ measures?: QueryProps['measures'];
64
+ dimensions?: QueryProps['dimensions'];
65
+ }) => {
66
+ xField: FieldOption;
67
+ yField: FieldOption;
68
+ seriesField: FieldOption;
69
+ yFields: FieldOption[];
70
+ };
71
+ export declare const commonInit: ChartProps['init'];
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useToggleChartLibrary = exports.useCharts = exports.useChartTypes = exports.infer = exports.commonInit = exports.ChartLibraryProvider = exports.ChartLibraryContext = void 0;
7
+ function _react() {
8
+ const data = _interopRequireWildcard(require("react"));
9
+ _react = function _react() {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ var _locale = require("../locale");
15
+ var _utils = require("../utils");
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
22
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
23
+ const ChartLibraryContext = (0, _react().createContext)({});
24
+ exports.ChartLibraryContext = ChartLibraryContext;
25
+ const useCharts = () => {
26
+ const library = (0, _react().useContext)(ChartLibraryContext);
27
+ return Object.values(library).filter(l => l.enabled).reduce((charts, l) => _objectSpread(_objectSpread({}, charts), l.charts), {});
28
+ };
29
+ exports.useCharts = useCharts;
30
+ const useChartTypes = () => {
31
+ const library = (0, _react().useContext)(ChartLibraryContext);
32
+ return Object.entries(library).filter(([_, l]) => l.enabled).reduce((charts, [name, l]) => {
33
+ const children = Object.entries(l.charts).map(([type, chart]) => _objectSpread(_objectSpread({}, chart), {}, {
34
+ key: type,
35
+ label: chart.name,
36
+ value: type
37
+ }));
38
+ return [...charts, {
39
+ label: (0, _locale.lang)(name),
40
+ children
41
+ }];
42
+ }, []);
43
+ };
44
+ exports.useChartTypes = useChartTypes;
45
+ const useToggleChartLibrary = () => {
46
+ const ctx = (0, _react().useContext)(ChartLibraryContext);
47
+ return {
48
+ toggle: library => {
49
+ ctx[library].enabled = !ctx[library].enabled;
50
+ }
51
+ };
52
+ };
53
+ exports.useToggleChartLibrary = useToggleChartLibrary;
54
+ const ChartLibraryProvider = props => {
55
+ const children = props.children,
56
+ charts = props.charts,
57
+ name = props.name;
58
+ const ctx = (0, _react().useContext)(ChartLibraryContext);
59
+ const library = _objectSpread(_objectSpread({}, ctx), {}, {
60
+ [name]: {
61
+ charts,
62
+ enabled: true
63
+ }
64
+ });
65
+ return _react().default.createElement(ChartLibraryContext.Provider, {
66
+ value: library
67
+ }, children);
68
+ };
69
+ exports.ChartLibraryProvider = ChartLibraryProvider;
70
+ const infer = (fields, {
71
+ measures,
72
+ dimensions
73
+ }) => {
74
+ let xField;
75
+ let yField;
76
+ let seriesField;
77
+ let yFields;
78
+ const getField = (fields, selected) => {
79
+ if (selected.alias) {
80
+ return fields.find(f => f.value === selected.alias);
81
+ }
82
+ const _parseField = (0, _utils.parseField)(selected.field),
83
+ alias = _parseField.alias;
84
+ return fields.find(f => f.value === alias);
85
+ };
86
+ if (measures === null || measures === void 0 ? void 0 : measures.length) {
87
+ yField = getField(fields, measures[0]);
88
+ yFields = measures.map(m => getField(fields, m));
89
+ }
90
+ if (dimensions) {
91
+ if (dimensions.length === 1) {
92
+ xField = getField(fields, dimensions[0]);
93
+ } else if (dimensions.length > 1) {
94
+ // If there is a time field, it is used as the x-axis field by default.
95
+ let xIndex;
96
+ dimensions.forEach((d, i) => {
97
+ const field = getField(fields, d);
98
+ if (['date', 'time', 'datetime'].includes(field === null || field === void 0 ? void 0 : field.type)) {
99
+ xField = field;
100
+ xIndex = i;
101
+ }
102
+ });
103
+ if (xIndex) {
104
+ // If there is a time field, the other field is used as the series field by default.
105
+ const index = xIndex === 0 ? 1 : 0;
106
+ seriesField = getField(fields, dimensions[index]);
107
+ } else {
108
+ xField = getField(fields, dimensions[0]);
109
+ seriesField = getField(fields, dimensions[1]);
110
+ }
111
+ }
112
+ }
113
+ return {
114
+ xField,
115
+ yField,
116
+ seriesField,
117
+ yFields
118
+ };
119
+ };
120
+ exports.infer = infer;
121
+ const commonInit = (fields, {
122
+ measures,
123
+ dimensions
124
+ }) => {
125
+ const _infer = infer(fields, {
126
+ measures,
127
+ dimensions
128
+ }),
129
+ xField = _infer.xField,
130
+ yField = _infer.yField,
131
+ seriesField = _infer.seriesField;
132
+ return {
133
+ general: {
134
+ xField: xField === null || xField === void 0 ? void 0 : xField.value,
135
+ yField: yField === null || yField === void 0 ? void 0 : yField.value,
136
+ seriesField: seriesField === null || seriesField === void 0 ? void 0 : seriesField.value
137
+ }
138
+ };
139
+ };
140
+ exports.commonInit = commonInit;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export declare const ChartRenderer: React.FC<{
3
+ configuring?: boolean;
4
+ runQuery?: any;
5
+ }> & {
6
+ Designer: React.FC;
7
+ };