@nocobase/plugin-charts 0.9.1-alpha.2

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 (139) hide show
  1. package/client.d.ts +4 -0
  2. package/client.js +30 -0
  3. package/lib/client/ChartBlockEngine.d.ts +27 -0
  4. package/lib/client/ChartBlockEngine.js +201 -0
  5. package/lib/client/ChartBlockEngineDesigner.d.ts +3 -0
  6. package/lib/client/ChartBlockEngineDesigner.js +348 -0
  7. package/lib/client/ChartBlockInitializer.d.ts +3 -0
  8. package/lib/client/ChartBlockInitializer.js +324 -0
  9. package/lib/client/ChartQueryBlockInitializer.d.ts +9 -0
  10. package/lib/client/ChartQueryBlockInitializer.js +230 -0
  11. package/lib/client/ChartQueryMetadataProvider.d.ts +10 -0
  12. package/lib/client/ChartQueryMetadataProvider.js +118 -0
  13. package/lib/client/DataSetPreviewTable.d.ts +5 -0
  14. package/lib/client/DataSetPreviewTable.js +127 -0
  15. package/lib/client/Icons.d.ts +1 -0
  16. package/lib/client/Icons.js +226 -0
  17. package/lib/client/chartRenderComponents/index.d.ts +2 -0
  18. package/lib/client/chartRenderComponents/index.js +26 -0
  19. package/lib/client/hooks/index.d.ts +4 -0
  20. package/lib/client/hooks/index.js +52 -0
  21. package/lib/client/index.d.ts +4 -0
  22. package/lib/client/index.js +161 -0
  23. package/lib/client/locale/en-US.d.ts +23 -0
  24. package/lib/client/locale/en-US.js +29 -0
  25. package/lib/client/locale/index.d.ts +3 -0
  26. package/lib/client/locale/index.js +46 -0
  27. package/lib/client/locale/ja-JP.d.ts +2 -0
  28. package/lib/client/locale/ja-JP.js +8 -0
  29. package/lib/client/locale/ru-RU.d.ts +2 -0
  30. package/lib/client/locale/ru-RU.js +8 -0
  31. package/lib/client/locale/tr-TR.d.ts +2 -0
  32. package/lib/client/locale/tr-TR.js +8 -0
  33. package/lib/client/locale/zh-CN.d.ts +61 -0
  34. package/lib/client/locale/zh-CN.js +67 -0
  35. package/lib/client/select/CustomSelect.d.ts +11 -0
  36. package/lib/client/select/CustomSelect.js +193 -0
  37. package/lib/client/select/ReadPretty.d.ts +2 -0
  38. package/lib/client/select/ReadPretty.js +102 -0
  39. package/lib/client/select/index.d.ts +2 -0
  40. package/lib/client/select/index.js +31 -0
  41. package/lib/client/select/shared.d.ts +7 -0
  42. package/lib/client/select/shared.js +86 -0
  43. package/lib/client/settings/AddNewQuery.d.ts +2 -0
  44. package/lib/client/settings/AddNewQuery.js +321 -0
  45. package/lib/client/settings/ConfigureFields.d.ts +1 -0
  46. package/lib/client/settings/ConfigureFields.js +51 -0
  47. package/lib/client/settings/QueriesTable.d.ts +1 -0
  48. package/lib/client/settings/QueriesTable.js +108 -0
  49. package/lib/client/settings/queryTypes.d.ts +5 -0
  50. package/lib/client/settings/queryTypes.js +85 -0
  51. package/lib/client/settings/schemas/chartsQueries.d.ts +8 -0
  52. package/lib/client/settings/schemas/chartsQueries.js +378 -0
  53. package/lib/client/templates/AreaTemplate.d.ts +65 -0
  54. package/lib/client/templates/AreaTemplate.js +86 -0
  55. package/lib/client/templates/BarTemplate.d.ts +80 -0
  56. package/lib/client/templates/BarTemplate.js +103 -0
  57. package/lib/client/templates/ColumnTemplate.d.ts +80 -0
  58. package/lib/client/templates/ColumnTemplate.js +103 -0
  59. package/lib/client/templates/FunnelTemplate.d.ts +66 -0
  60. package/lib/client/templates/FunnelTemplate.js +87 -0
  61. package/lib/client/templates/LineTemplate.d.ts +67 -0
  62. package/lib/client/templates/LineTemplate.js +92 -0
  63. package/lib/client/templates/PieTemplate.d.ts +71 -0
  64. package/lib/client/templates/PieTemplate.js +92 -0
  65. package/lib/client/templates/RadarTemplate.d.ts +71 -0
  66. package/lib/client/templates/RadarTemplate.js +93 -0
  67. package/lib/client/templates/ScatterTemplate.d.ts +91 -0
  68. package/lib/client/templates/ScatterTemplate.js +112 -0
  69. package/lib/client/templates/TableTemplate.d.ts +28 -0
  70. package/lib/client/templates/TableTemplate.js +54 -0
  71. package/lib/client/templates/index.d.ts +1 -0
  72. package/lib/client/templates/index.js +33 -0
  73. package/lib/client/utils.d.ts +3 -0
  74. package/lib/client/utils.js +66 -0
  75. package/lib/index.d.ts +1 -0
  76. package/lib/index.js +15 -0
  77. package/lib/server/actions/chartsQueries.d.ts +3 -0
  78. package/lib/server/actions/chartsQueries.js +104 -0
  79. package/lib/server/actions/index.d.ts +1 -0
  80. package/lib/server/actions/index.js +1 -0
  81. package/lib/server/collections/chartsQueries.d.ts +2 -0
  82. package/lib/server/collections/chartsQueries.js +36 -0
  83. package/lib/server/index.d.ts +1 -0
  84. package/lib/server/index.js +15 -0
  85. package/lib/server/plugin.d.ts +14 -0
  86. package/lib/server/plugin.js +142 -0
  87. package/lib/server/query.d.ts +12 -0
  88. package/lib/server/query.js +91 -0
  89. package/lib/server/shared/index.d.ts +2 -0
  90. package/lib/server/shared/index.js +8 -0
  91. package/package.json +14 -0
  92. package/server.d.ts +4 -0
  93. package/server.js +30 -0
  94. package/src/client/ChartBlockEngine.tsx +120 -0
  95. package/src/client/ChartBlockEngineDesigner.tsx +238 -0
  96. package/src/client/ChartBlockInitializer.tsx +216 -0
  97. package/src/client/ChartQueryBlockInitializer.tsx +136 -0
  98. package/src/client/ChartQueryMetadataProvider.tsx +62 -0
  99. package/src/client/DataSetPreviewTable.tsx +73 -0
  100. package/src/client/Icons.tsx +99 -0
  101. package/src/client/chartRenderComponents/index.ts +7 -0
  102. package/src/client/hooks/index.ts +19 -0
  103. package/src/client/index.tsx +101 -0
  104. package/src/client/locale/en-US.ts +23 -0
  105. package/src/client/locale/index.ts +18 -0
  106. package/src/client/locale/ja-JP.ts +1 -0
  107. package/src/client/locale/ru-RU.ts +1 -0
  108. package/src/client/locale/tr-TR.ts +1 -0
  109. package/src/client/locale/zh-CN.ts +63 -0
  110. package/src/client/select/CustomSelect.tsx +127 -0
  111. package/src/client/select/ReadPretty.tsx +36 -0
  112. package/src/client/select/index.md +38 -0
  113. package/src/client/select/index.ts +2 -0
  114. package/src/client/select/shared.ts +36 -0
  115. package/src/client/settings/AddNewQuery.tsx +161 -0
  116. package/src/client/settings/ConfigureFields.tsx +18 -0
  117. package/src/client/settings/QueriesTable.tsx +26 -0
  118. package/src/client/settings/queryTypes.ts +64 -0
  119. package/src/client/settings/schemas/chartsQueries.ts +319 -0
  120. package/src/client/templates/AreaTemplate.tsx +64 -0
  121. package/src/client/templates/BarTemplate.tsx +80 -0
  122. package/src/client/templates/ColumnTemplate.tsx +81 -0
  123. package/src/client/templates/FunnelTemplate.tsx +65 -0
  124. package/src/client/templates/LineTemplate.tsx +72 -0
  125. package/src/client/templates/PieTemplate.tsx +68 -0
  126. package/src/client/templates/RadarTemplate.tsx +71 -0
  127. package/src/client/templates/ScatterTemplate.tsx +90 -0
  128. package/src/client/templates/TableTemplate.tsx +48 -0
  129. package/src/client/templates/index.ts +21 -0
  130. package/src/client/utils.ts +39 -0
  131. package/src/index.ts +1 -0
  132. package/src/server/actions/chartsQueries.ts +44 -0
  133. package/src/server/actions/index.ts +0 -0
  134. package/src/server/collections/.gitkeep +0 -0
  135. package/src/server/collections/chartsQueries.ts +24 -0
  136. package/src/server/index.ts +1 -0
  137. package/src/server/plugin.ts +61 -0
  138. package/src/server/query.ts +39 -0
  139. package/src/server/shared/index.ts +2 -0
package/client.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ // @ts-nocheck
2
+ export * from './lib/client';
3
+ export { default } from './lib/client';
4
+
package/client.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+
5
+ 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; }
6
+
7
+ var _index = _interopRequireWildcard(require("./lib/client"));
8
+
9
+ Object.defineProperty(exports, "__esModule", {
10
+ value: true
11
+ });
12
+ var _exportNames = {};
13
+ Object.defineProperty(exports, "default", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _index.default;
17
+ }
18
+ });
19
+
20
+ Object.keys(_index).forEach(function (key) {
21
+ if (key === "default" || key === "__esModule") return;
22
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
23
+ if (key in exports && exports[key] === _index[key]) return;
24
+ Object.defineProperty(exports, key, {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _index[key];
28
+ }
29
+ });
30
+ });
@@ -0,0 +1,27 @@
1
+ export interface IQueryConfig {
2
+ id: number;
3
+ }
4
+ export interface IChartConfig {
5
+ type: string;
6
+ template: string;
7
+ metric: string;
8
+ dimension: string;
9
+ category?: string;
10
+ [key: string]: any;
11
+ }
12
+ export interface ChartBlockEngineMetaData {
13
+ query: IQueryConfig;
14
+ chart: IChartConfig;
15
+ }
16
+ export declare const useGetDataSet: (chartQueryId: number) => {
17
+ loading: boolean;
18
+ dataSet: any;
19
+ error: Error;
20
+ };
21
+ declare const ChartBlockEngine: {
22
+ ({ chartBlockEngineMetaData }: {
23
+ chartBlockEngineMetaData: ChartBlockEngineMetaData;
24
+ }): JSX.Element;
25
+ Designer: () => JSX.Element;
26
+ };
27
+ export { ChartBlockEngine };
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useGetDataSet = exports.ChartBlockEngine = void 0;
7
+
8
+ function _client() {
9
+ const data = require("@nocobase/client");
10
+
11
+ _client = function _client() {
12
+ return data;
13
+ };
14
+
15
+ return data;
16
+ }
17
+
18
+ function _antd() {
19
+ const data = require("antd");
20
+
21
+ _antd = function _antd() {
22
+ return data;
23
+ };
24
+
25
+ return data;
26
+ }
27
+
28
+ function _json() {
29
+ const data = _interopRequireDefault(require("json5"));
30
+
31
+ _json = function _json() {
32
+ return data;
33
+ };
34
+
35
+ return data;
36
+ }
37
+
38
+ function _react() {
39
+ const data = _interopRequireWildcard(require("react"));
40
+
41
+ _react = function _react() {
42
+ return data;
43
+ };
44
+
45
+ return data;
46
+ }
47
+
48
+ var _ChartBlockEngineDesigner = require("./ChartBlockEngineDesigner");
49
+
50
+ var _chartRenderComponents = _interopRequireDefault(require("./chartRenderComponents"));
51
+
52
+ var _locale = require("./locale");
53
+
54
+ var _templates = require("./templates");
55
+
56
+ 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); }
57
+
58
+ 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; }
59
+
60
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
61
+
62
+ 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; }
63
+
64
+ 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; }
65
+
66
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
67
+
68
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
69
+
70
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
71
+
72
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
73
+
74
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
75
+
76
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
77
+
78
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
79
+
80
+ const ChartRenderComponent = ({
81
+ chartBlockEngineMetaData
82
+ }) => {
83
+ var _templates$get;
84
+
85
+ const compile = (0, _client().useCompile)();
86
+ const chartType = chartBlockEngineMetaData.chart.type;
87
+ const renderComponent = (_templates$get = _templates.templates.get(chartType)) === null || _templates$get === void 0 ? void 0 : _templates$get.renderComponent;
88
+
89
+ const RenderComponent = _chartRenderComponents.default.get(renderComponent); //G2Plot | Echarts | D3 |Table
90
+
91
+
92
+ const chartConfig = chartBlockEngineMetaData.chart;
93
+
94
+ const _useGetDataSet = useGetDataSet(chartBlockEngineMetaData.query.id),
95
+ loading = _useGetDataSet.loading,
96
+ dataSet = _useGetDataSet.dataSet,
97
+ error = _useGetDataSet.error;
98
+
99
+ if (error) {
100
+ return _react().default.createElement(_react().default.Fragment, null, _react().default.createElement(_antd().Empty, {
101
+ description: _react().default.createElement("span", null, "May be this chart block's query data has been deleted,please check!")
102
+ }));
103
+ }
104
+
105
+ const _useState = (0, _react().useState)({}),
106
+ _useState2 = _slicedToArray(_useState, 2),
107
+ currentConfig = _useState2[0],
108
+ setCurrentConfig = _useState2[1];
109
+
110
+ (0, _react().useEffect)(() => {
111
+ setCurrentConfig(chartConfig);
112
+ }, [JSON.stringify(chartConfig)]);
113
+
114
+ if (currentConfig.type !== chartConfig.type) {
115
+ return _react().default.createElement(_react().default.Fragment, null);
116
+ }
117
+
118
+ switch (renderComponent) {
119
+ case 'G2Plot':
120
+ {
121
+ var _templates$get2, _chartConfig$category;
122
+
123
+ let finalChartOptions;
124
+ finalChartOptions = (_templates$get2 = _templates.templates.get(chartType)) === null || _templates$get2 === void 0 ? void 0 : _templates$get2.defaultChartOptions;
125
+ let template;
126
+
127
+ try {
128
+ template = _json().default.parse(chartConfig === null || chartConfig === void 0 ? void 0 : chartConfig.template);
129
+ } catch (e) {
130
+ template = {};
131
+ }
132
+
133
+ const config = compile(_objectSpread(_objectSpread(_objectSpread({}, finalChartOptions), template), {}, {
134
+ data: dataSet
135
+ }), _objectSpread(_objectSpread({}, chartConfig), {}, {
136
+ category: (_chartConfig$category = chartConfig === null || chartConfig === void 0 ? void 0 : chartConfig.category) !== null && _chartConfig$category !== void 0 ? _chartConfig$category : ''
137
+ }));
138
+
139
+ if (config && chartConfig) {
140
+ const dimension = chartConfig.dimension,
141
+ metric = chartConfig.metric,
142
+ category = chartConfig.category;
143
+
144
+ if (!metric || !dimension) {
145
+ return _react().default.createElement(_react().default.Fragment, null, (0, _locale.lang)('Please check the chart config'));
146
+ }
147
+ }
148
+
149
+ return _react().default.createElement(_react().default.Fragment, null, loading ? _react().default.createElement(_antd().Spin, null) : _react().default.createElement(RenderComponent, {
150
+ plot: chartConfig.type,
151
+ config: config
152
+ }));
153
+ }
154
+ }
155
+
156
+ return _react().default.createElement(_react().default.Fragment, null);
157
+ };
158
+
159
+ const useGetDataSet = chartQueryId => {
160
+ const _useRequest = (0, _client().useRequest)({
161
+ url: `/chartsQueries:getData/${chartQueryId}`
162
+ }),
163
+ data = _useRequest.data,
164
+ loading = _useRequest.loading,
165
+ error = _useRequest.error;
166
+
167
+ const dataSet = data === null || data === void 0 ? void 0 : data.data;
168
+ return {
169
+ loading,
170
+ dataSet: dataSet,
171
+ error
172
+ };
173
+ };
174
+
175
+ exports.useGetDataSet = useGetDataSet;
176
+
177
+ const ChartBlockEngine = ({
178
+ chartBlockEngineMetaData
179
+ }) => {
180
+ var _chartBlockEngineMeta;
181
+
182
+ let renderComponent;
183
+ const chartType = chartBlockEngineMetaData === null || chartBlockEngineMetaData === void 0 ? void 0 : (_chartBlockEngineMeta = chartBlockEngineMetaData.chart) === null || _chartBlockEngineMeta === void 0 ? void 0 : _chartBlockEngineMeta.type;
184
+
185
+ if (chartType) {
186
+ var _templates$get3;
187
+
188
+ renderComponent = (_templates$get3 = _templates.templates.get(chartType)) === null || _templates$get3 === void 0 ? void 0 : _templates$get3.renderComponent;
189
+ }
190
+
191
+ if (!chartType || !renderComponent) {
192
+ return _react().default.createElement(_react().default.Fragment, null, (0, _locale.lang)('Please check the chart config'));
193
+ }
194
+
195
+ return _react().default.createElement(_react().default.Fragment, null, _react().default.createElement(ChartRenderComponent, {
196
+ chartBlockEngineMetaData: chartBlockEngineMetaData
197
+ }));
198
+ };
199
+
200
+ exports.ChartBlockEngine = ChartBlockEngine;
201
+ ChartBlockEngine.Designer = _ChartBlockEngineDesigner.ChartBlockEngineDesigner;
@@ -0,0 +1,3 @@
1
+ export declare const jsonConfigDesc: (title: string, link: string) => JSX.Element;
2
+ export declare const ChartBlockEngineDesigner: () => JSX.Element;
3
+ export declare const ChartBlockEngineDesignerInitializer: (props: any) => JSX.Element;
@@ -0,0 +1,348 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.jsonConfigDesc = exports.ChartBlockEngineDesignerInitializer = exports.ChartBlockEngineDesigner = void 0;
7
+
8
+ function _css() {
9
+ const data = require("@emotion/css");
10
+
11
+ _css = function _css() {
12
+ return data;
13
+ };
14
+
15
+ return data;
16
+ }
17
+
18
+ function _antd() {
19
+ const data = require("@formily/antd");
20
+
21
+ _antd = function _antd() {
22
+ return data;
23
+ };
24
+
25
+ return data;
26
+ }
27
+
28
+ function _react() {
29
+ const data = require("@formily/react");
30
+
31
+ _react = function _react() {
32
+ return data;
33
+ };
34
+
35
+ return data;
36
+ }
37
+
38
+ function _client() {
39
+ const data = require("@nocobase/client");
40
+
41
+ _client = function _client() {
42
+ return data;
43
+ };
44
+
45
+ return data;
46
+ }
47
+
48
+ function _antd2() {
49
+ const data = require("antd");
50
+
51
+ _antd2 = function _antd2() {
52
+ return data;
53
+ };
54
+
55
+ return data;
56
+ }
57
+
58
+ function _json() {
59
+ const data = _interopRequireDefault(require("json5"));
60
+
61
+ _json = function _json() {
62
+ return data;
63
+ };
64
+
65
+ return data;
66
+ }
67
+
68
+ function _react2() {
69
+ const data = _interopRequireWildcard(require("react"));
70
+
71
+ _react2 = function _react2() {
72
+ return data;
73
+ };
74
+
75
+ return data;
76
+ }
77
+
78
+ function _reactI18next() {
79
+ const data = require("react-i18next");
80
+
81
+ _reactI18next = function _reactI18next() {
82
+ return data;
83
+ };
84
+
85
+ return data;
86
+ }
87
+
88
+ var _ChartBlockInitializer = require("./ChartBlockInitializer");
89
+
90
+ var _DataSetPreviewTable = _interopRequireDefault(require("./DataSetPreviewTable"));
91
+
92
+ var _hooks = require("./hooks");
93
+
94
+ var _locale = require("./locale");
95
+
96
+ var _templates = require("./templates");
97
+
98
+ 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); }
99
+
100
+ 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; }
101
+
102
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
103
+
104
+ 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; }
105
+
106
+ 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; }
107
+
108
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
109
+
110
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
111
+
112
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
113
+
114
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
115
+
116
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
117
+
118
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
119
+
120
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
121
+
122
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
123
+
124
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
125
+
126
+ const jsonConfigDesc = (title, link) => {
127
+ return _react2().default.createElement("span", null, (0, _locale.lang)('Json config references: '), _react2().default.createElement("a", {
128
+ href: link,
129
+ target: "_blank"
130
+ }, (0, _locale.lang)(title)));
131
+ };
132
+
133
+ exports.jsonConfigDesc = jsonConfigDesc;
134
+ const validateJSON = {
135
+ validator: `{{(value, rule)=> {
136
+ if (!value) {
137
+ return '';
138
+ }
139
+ try {
140
+ const val = JSON.parse(value);
141
+ if(!isNaN(val)) {
142
+ return false;
143
+ }
144
+ return true;
145
+ } catch(error) {
146
+ console.error(error);
147
+ return false;
148
+ }
149
+ }}}`,
150
+ message: '{{t("Invalid JSON format",{ ns: "charts" })}}'
151
+ };
152
+
153
+ const ChartBlockEngineDesigner = () => {
154
+ const fieldSchema = (0, _react().useFieldSchema)();
155
+
156
+ const _fieldSchema$xCompon = fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema['x-component-props'],
157
+ chartBlockEngineMetaData = _fieldSchema$xCompon.chartBlockEngineMetaData;
158
+
159
+ return _react2().default.createElement(_client().GeneralSchemaDesigner, null, _react2().default.createElement(ChartBlockEngineDesignerInitializer, {
160
+ chartBlockEngineMetaData: chartBlockEngineMetaData
161
+ }), _react2().default.createElement(_client().SchemaSettings.Divider, null), _react2().default.createElement(_client().SchemaSettings.Remove, {
162
+ removeParentsIfNoChildren: true,
163
+ breakRemoveOn: {
164
+ 'x-component': 'Grid'
165
+ }
166
+ }));
167
+ };
168
+
169
+ exports.ChartBlockEngineDesigner = ChartBlockEngineDesigner;
170
+
171
+ const ChartBlockEngineDesignerInitializer = props => {
172
+ const chartBlockEngineMetaData = props.chartBlockEngineMetaData;
173
+
174
+ const _useTranslation = (0, _reactI18next().useTranslation)(),
175
+ t = _useTranslation.t;
176
+
177
+ const options = (0, _react2().useContext)(_react().SchemaOptionsContext);
178
+
179
+ const _useDesignable = (0, _client().useDesignable)(),
180
+ dn = _useDesignable.dn;
181
+
182
+ const fieldSchema = (0, _react().useFieldSchema)();
183
+ const api = (0, _client().useAPIClient)();
184
+ const field = (0, _react().useField)();
185
+ const compile = (0, _client().useCompile)();
186
+ const chart = chartBlockEngineMetaData.chart,
187
+ query = chartBlockEngineMetaData.query;
188
+
189
+ const _useFieldsById = (0, _hooks.useFieldsById)(query.id),
190
+ fields = _useFieldsById.fields;
191
+
192
+ const dataSource = fields.map(field => {
193
+ return {
194
+ label: field.name,
195
+ value: field.name
196
+ };
197
+ });
198
+ return _react2().default.createElement(_client().SchemaSettings.Item, {
199
+ onClick: function () {
200
+ var _onClick = _asyncToGenerator(function* () {
201
+ (0, _antd().FormDialog)({
202
+ okText: compile('{{t("Submit")}}'),
203
+ title: (0, _locale.lang)('Edit chart block'),
204
+ width: 1200,
205
+ bodyStyle: {
206
+ background: '#f0f2f5',
207
+ maxHeight: '65vh',
208
+ overflow: 'auto'
209
+ }
210
+ }, form => {
211
+ var _chartBlockEngineMeta, _chartBlockEngineMeta2;
212
+
213
+ const _useState = (0, _react2().useState)(null),
214
+ _useState2 = _slicedToArray(_useState, 2),
215
+ chartBlockEngineMetaData = _useState2[0],
216
+ setChartBlockEngineMetaData = _useState2[1];
217
+
218
+ (0, _react2().useEffect)(() => {
219
+ const chartBlockEngineMetaData = {
220
+ query: {
221
+ id: query === null || query === void 0 ? void 0 : query.id
222
+ },
223
+ chart: form.values //TODO
224
+
225
+ };
226
+ setChartBlockEngineMetaData(chartBlockEngineMetaData);
227
+ }, [form.values.type]);
228
+ return _react2().default.createElement(_client().APIClientProvider, {
229
+ apiClient: api
230
+ }, _react2().default.createElement(_client().SchemaComponentOptions, {
231
+ scope: options.scope,
232
+ components: _objectSpread({}, options.components)
233
+ }, _react2().default.createElement("section", {
234
+ className: (0, _css().css)`
235
+ display: flex;
236
+ gap: 24px;
237
+ `
238
+ }, _react2().default.createElement(_antd2().Card, {
239
+ bordered: false,
240
+ title: _client().i18n.t('Chart config'),
241
+ size: 'default',
242
+ className: (0, _css().css)`
243
+ flex: 1;
244
+ `
245
+ }, _react2().default.createElement(_antd().FormLayout, {
246
+ layout: 'vertical'
247
+ }, _react2().default.createElement(_client().SchemaComponent, {
248
+ scope: {
249
+ dataSource,
250
+ JSON5: _json().default,
251
+ jsonConfigDesc
252
+ },
253
+ components: {
254
+ Options: _ChartBlockInitializer.Options
255
+ },
256
+ schema: {
257
+ properties: {
258
+ // title: {
259
+ // title: lang('Chart title'),
260
+ // 'x-component': 'Input',
261
+ // 'x-decorator': 'FormItem',
262
+ // },
263
+ type: {
264
+ title: t('Chart type'),
265
+ required: true,
266
+ 'x-component': 'CustomSelect',
267
+ 'x-decorator': 'FormItem',
268
+ enum: [..._templates.templates.values()].map(template => {
269
+ return {
270
+ title: template.title,
271
+ key: template.type,
272
+ description: template.description,
273
+ group: template.group,
274
+ iconId: template.iconId
275
+ };
276
+ })
277
+ },
278
+ options: {
279
+ type: 'void',
280
+ 'x-component': 'Options'
281
+ }
282
+ }
283
+ }
284
+ }))), _react2().default.createElement("div", {
285
+ className: (0, _css().css)`
286
+ flex: 1;
287
+ min-width: 600px;
288
+ `
289
+ }, _react2().default.createElement(_antd2().Card, {
290
+ size: 'default',
291
+ title: (0, _locale.lang)('Chart preview')
292
+ }, chartBlockEngineMetaData && _react2().default.createElement(_react2().default.Fragment, null, _react2().default.createElement(_client().SchemaComponent, {
293
+ schema: {
294
+ properties: {
295
+ chartPreview: {
296
+ type: 'void',
297
+ 'x-decorator': 'CardItem',
298
+ 'x-component': 'ChartBlockEngine',
299
+ 'x-component-props': {
300
+ chartBlockEngineMetaData: chartBlockEngineMetaData
301
+ }
302
+ }
303
+ }
304
+ }
305
+ }))), _react2().default.createElement(_antd2().Card, {
306
+ size: 'default',
307
+ title: (0, _locale.lang)('Data preview'),
308
+ className: (0, _css().css)`
309
+ margin-top: 24px;
310
+ overflow: scroll;
311
+ `
312
+ }, (chartBlockEngineMetaData === null || chartBlockEngineMetaData === void 0 ? void 0 : (_chartBlockEngineMeta = chartBlockEngineMetaData.query) === null || _chartBlockEngineMeta === void 0 ? void 0 : _chartBlockEngineMeta.id) && _react2().default.createElement(_DataSetPreviewTable.default, {
313
+ queryId: chartBlockEngineMetaData === null || chartBlockEngineMetaData === void 0 ? void 0 : (_chartBlockEngineMeta2 = chartBlockEngineMetaData.query) === null || _chartBlockEngineMeta2 === void 0 ? void 0 : _chartBlockEngineMeta2.id,
314
+ fields: fields
315
+ }))))));
316
+ }).open({
317
+ initialValues: _objectSpread({}, chart) //reset before chartBlockMetaData
318
+
319
+ }).then(values => {
320
+ //patch updates
321
+ values = {
322
+ query,
323
+ chart: values
324
+ };
325
+ field.title = values.chart.title;
326
+ fieldSchema['title'] = values.chart.title;
327
+ field.componentProps.chartBlockEngineMetaData = values;
328
+ fieldSchema['x-component-props'].chartBlockEngineMetaData = values;
329
+ dn.emit('patch', {
330
+ schema: {
331
+ 'x-uid': fieldSchema['x-uid'],
332
+ 'x-component-props': fieldSchema['x-component-props']
333
+ }
334
+ });
335
+ dn.refresh();
336
+ });
337
+ });
338
+
339
+ function onClick() {
340
+ return _onClick.apply(this, arguments);
341
+ }
342
+
343
+ return onClick;
344
+ }()
345
+ }, props.children || props.title || (0, _locale.lang)('Edit chart block'));
346
+ };
347
+
348
+ exports.ChartBlockEngineDesignerInitializer = ChartBlockEngineDesignerInitializer;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const Options: React.MemoExoticComponent<React.FunctionComponent<unknown>>;
3
+ export declare const ChartBlockInitializer: (props: any) => JSX.Element;