@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.
- package/LICENSE +661 -0
- package/README.md +88 -0
- package/client.d.ts +3 -0
- package/client.js +65 -0
- package/lib/client/Settings.d.ts +2 -0
- package/lib/client/Settings.js +81 -0
- package/lib/client/block/ChartBlock.d.ts +2 -0
- package/lib/client/block/ChartBlock.js +73 -0
- package/lib/client/block/ChartBlockDesigner.d.ts +2 -0
- package/lib/client/block/ChartBlockDesigner.js +35 -0
- package/lib/client/block/ChartBlockInitializer.d.ts +6 -0
- package/lib/client/block/ChartBlockInitializer.js +114 -0
- package/lib/client/block/ChartConfigure.d.ts +33 -0
- package/lib/client/block/ChartConfigure.js +501 -0
- package/lib/client/block/formatters.d.ts +15 -0
- package/lib/client/block/formatters.js +58 -0
- package/lib/client/block/index.d.ts +4 -0
- package/lib/client/block/index.js +49 -0
- package/lib/client/block/schemas/configure.d.ts +4 -0
- package/lib/client/block/schemas/configure.js +492 -0
- package/lib/client/block/transformers.d.ts +6 -0
- package/lib/client/block/transformers.js +69 -0
- package/lib/client/hooks.d.ts +312 -0
- package/lib/client/hooks.js +275 -0
- package/lib/client/index.d.ts +5 -0
- package/lib/client/index.js +70 -0
- package/lib/client/locale/en-US.d.ts +23 -0
- package/lib/client/locale/en-US.js +29 -0
- package/lib/client/locale/index.d.ts +3 -0
- package/lib/client/locale/index.js +39 -0
- package/lib/client/locale/ja-JP.d.ts +2 -0
- package/lib/client/locale/ja-JP.js +8 -0
- package/lib/client/locale/pt-BR.d.ts +23 -0
- package/lib/client/locale/pt-BR.js +29 -0
- package/lib/client/locale/ru-RU.d.ts +2 -0
- package/lib/client/locale/ru-RU.js +8 -0
- package/lib/client/locale/tr-TR.d.ts +2 -0
- package/lib/client/locale/tr-TR.js +8 -0
- package/lib/client/locale/zh-CN.d.ts +70 -0
- package/lib/client/locale/zh-CN.js +76 -0
- package/lib/client/renderer/ChartLibrary.d.ts +71 -0
- package/lib/client/renderer/ChartLibrary.js +140 -0
- package/lib/client/renderer/ChartRenderer.d.ts +7 -0
- package/lib/client/renderer/ChartRenderer.js +258 -0
- package/lib/client/renderer/ChartRendererProvider.d.ts +43 -0
- package/lib/client/renderer/ChartRendererProvider.js +38 -0
- package/lib/client/renderer/index.d.ts +4 -0
- package/lib/client/renderer/index.js +49 -0
- package/lib/client/renderer/library/AntdLibrary.d.ts +2 -0
- package/lib/client/renderer/library/AntdLibrary.js +123 -0
- package/lib/client/renderer/library/G2PlotLibrary.d.ts +2 -0
- package/lib/client/renderer/library/G2PlotLibrary.js +288 -0
- package/lib/client/renderer/library/index.d.ts +3 -0
- package/lib/client/renderer/library/index.js +15 -0
- package/lib/client/utils.d.ts +96 -0
- package/lib/client/utils.js +137 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +13 -0
- package/lib/server/actions/formatter.d.ts +3 -0
- package/lib/server/actions/formatter.js +44 -0
- package/lib/server/actions/query.d.ts +86 -0
- package/lib/server/actions/query.js +326 -0
- package/lib/server/index.d.ts +1 -0
- package/lib/server/index.js +13 -0
- package/lib/server/plugin.d.ts +13 -0
- package/lib/server/plugin.js +64 -0
- package/package.json +23 -0
- package/server.d.ts +3 -0
- package/server.js +65 -0
- package/src/client/Settings.tsx +43 -0
- package/src/client/__tests__/chart-configure.test.tsx +14 -0
- package/src/client/__tests__/chart-library.test.ts +78 -0
- package/src/client/__tests__/chart-renderer.test.tsx +30 -0
- package/src/client/__tests__/hooks.test.ts +261 -0
- package/src/client/block/ChartBlock.tsx +22 -0
- package/src/client/block/ChartBlockDesigner.tsx +19 -0
- package/src/client/block/ChartBlockInitializer.tsx +83 -0
- package/src/client/block/ChartConfigure.tsx +450 -0
- package/src/client/block/formatters.ts +70 -0
- package/src/client/block/index.ts +4 -0
- package/src/client/block/schemas/configure.ts +474 -0
- package/src/client/block/transformers.ts +52 -0
- package/src/client/hooks.ts +239 -0
- package/src/client/index.tsx +41 -0
- package/src/client/locale/en-US.ts +23 -0
- package/src/client/locale/index.ts +19 -0
- package/src/client/locale/ja-JP.ts +1 -0
- package/src/client/locale/pt-BR.ts +23 -0
- package/src/client/locale/ru-RU.ts +1 -0
- package/src/client/locale/tr-TR.ts +1 -0
- package/src/client/locale/zh-CN.ts +71 -0
- package/src/client/renderer/ChartLibrary.tsx +178 -0
- package/src/client/renderer/ChartRenderer.tsx +201 -0
- package/src/client/renderer/ChartRendererProvider.tsx +58 -0
- package/src/client/renderer/index.ts +4 -0
- package/src/client/renderer/library/AntdLibrary.tsx +94 -0
- package/src/client/renderer/library/G2PlotLibrary.tsx +236 -0
- package/src/client/renderer/library/index.tsx +4 -0
- package/src/client/utils.ts +102 -0
- package/src/index.ts +1 -0
- package/src/server/__tests__/api.test.ts +105 -0
- package/src/server/__tests__/formatter.test.ts +49 -0
- package/src/server/__tests__/query.test.ts +220 -0
- package/src/server/actions/formatter.ts +49 -0
- package/src/server/actions/query.ts +285 -0
- package/src/server/collections/.gitkeep +0 -0
- package/src/server/index.ts +1 -0
- package/src/server/plugin.ts +37 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ChartRenderer = void 0;
|
|
7
|
+
function _react() {
|
|
8
|
+
const data = require("@formily/react");
|
|
9
|
+
_react = function _react() {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _client() {
|
|
15
|
+
const data = require("@nocobase/client");
|
|
16
|
+
_client = function _client() {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _antd() {
|
|
22
|
+
const data = require("antd");
|
|
23
|
+
_antd = function _antd() {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _react2() {
|
|
29
|
+
const data = _interopRequireWildcard(require("react"));
|
|
30
|
+
_react2 = function _react2() {
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
function _reactErrorBoundary() {
|
|
36
|
+
const data = require("react-error-boundary");
|
|
37
|
+
_reactErrorBoundary = function _reactErrorBoundary() {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
var _block = require("../block");
|
|
43
|
+
var _hooks = require("../hooks");
|
|
44
|
+
var _locale = require("../locale");
|
|
45
|
+
var _utils = require("../utils");
|
|
46
|
+
var _ChartLibrary = require("./ChartLibrary");
|
|
47
|
+
var _ChartRendererProvider = require("./ChartRendererProvider");
|
|
48
|
+
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); }
|
|
49
|
+
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; }
|
|
50
|
+
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); } }
|
|
51
|
+
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); }); }; }
|
|
52
|
+
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; }
|
|
53
|
+
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; }
|
|
54
|
+
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; }
|
|
55
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
56
|
+
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); }
|
|
57
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
58
|
+
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."); }
|
|
59
|
+
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); }
|
|
60
|
+
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; }
|
|
61
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
62
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
63
|
+
const Paragraph = _antd().Typography.Paragraph,
|
|
64
|
+
Text = _antd().Typography.Text;
|
|
65
|
+
const ChartRenderer = props => {
|
|
66
|
+
var _chart$useProps;
|
|
67
|
+
const _useChartsTranslation = (0, _locale.useChartsTranslation)(),
|
|
68
|
+
t = _useChartsTranslation.t;
|
|
69
|
+
const _useContext = (0, _react2().useContext)(_block.ChartConfigContext),
|
|
70
|
+
setQueryData = _useContext.setData,
|
|
71
|
+
current = _useContext.current;
|
|
72
|
+
const _useContext2 = (0, _react2().useContext)(_ChartRendererProvider.ChartRendererContext),
|
|
73
|
+
query = _useContext2.query,
|
|
74
|
+
config = _useContext2.config,
|
|
75
|
+
collection = _useContext2.collection,
|
|
76
|
+
transform = _useContext2.transform;
|
|
77
|
+
const configuring = props.configuring,
|
|
78
|
+
runQuery = props.runQuery;
|
|
79
|
+
const general = (config === null || config === void 0 ? void 0 : config.general) || {};
|
|
80
|
+
const advanced = (config === null || config === void 0 ? void 0 : config.advanced) || {};
|
|
81
|
+
const schema = (0, _react().useFieldSchema)();
|
|
82
|
+
const currentSchema = schema || (current === null || current === void 0 ? void 0 : current.schema);
|
|
83
|
+
const fields = (0, _hooks.useFieldsWithAssociation)(collection);
|
|
84
|
+
const api = (0, _client().useAPIClient)();
|
|
85
|
+
const _useState = (0, _react2().useState)([]),
|
|
86
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
87
|
+
data = _useState2[0],
|
|
88
|
+
setData = _useState2[1];
|
|
89
|
+
const _useRequest = (0, _client().useRequest)(query => api.request({
|
|
90
|
+
url: 'charts:query',
|
|
91
|
+
method: 'POST',
|
|
92
|
+
data: _objectSpread(_objectSpread({
|
|
93
|
+
uid: currentSchema === null || currentSchema === void 0 ? void 0 : currentSchema['x-uid'],
|
|
94
|
+
collection
|
|
95
|
+
}, query), {}, {
|
|
96
|
+
dimensions: ((query === null || query === void 0 ? void 0 : query.dimensions) || []).map(item => {
|
|
97
|
+
const dimension = _objectSpread({}, item);
|
|
98
|
+
if (item.format && !item.alias) {
|
|
99
|
+
const _parseField = (0, _utils.parseField)(item.field),
|
|
100
|
+
alias = _parseField.alias;
|
|
101
|
+
dimension.alias = alias;
|
|
102
|
+
}
|
|
103
|
+
return dimension;
|
|
104
|
+
}),
|
|
105
|
+
measures: ((query === null || query === void 0 ? void 0 : query.measures) || []).map(item => {
|
|
106
|
+
const measure = _objectSpread({}, item);
|
|
107
|
+
if (item.aggregation && !item.alias) {
|
|
108
|
+
const _parseField2 = (0, _utils.parseField)(item.field),
|
|
109
|
+
alias = _parseField2.alias;
|
|
110
|
+
measure.alias = alias;
|
|
111
|
+
}
|
|
112
|
+
return measure;
|
|
113
|
+
})
|
|
114
|
+
})
|
|
115
|
+
}).then(res => {
|
|
116
|
+
var _res$data;
|
|
117
|
+
const data = (res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.data) || [];
|
|
118
|
+
return (0, _utils.processData)(fields, data, {
|
|
119
|
+
t
|
|
120
|
+
});
|
|
121
|
+
}), {
|
|
122
|
+
manual: true,
|
|
123
|
+
onSuccess: data => {
|
|
124
|
+
setData(data);
|
|
125
|
+
},
|
|
126
|
+
onFinally(params, data, error) {
|
|
127
|
+
if (!configuring) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (error) {
|
|
131
|
+
var _error$response, _error$response$data, _error$response$data$, _error$response$data$2;
|
|
132
|
+
const message = error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : (_error$response$data$ = _error$response$data.errors) === null || _error$response$data$ === void 0 ? void 0 : (_error$response$data$2 = _error$response$data$.map) === null || _error$response$data$2 === void 0 ? void 0 : _error$response$data$2.call(_error$response$data$, error => error.message).join('\n');
|
|
133
|
+
setQueryData(message || error.message);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
setQueryData(data);
|
|
137
|
+
}
|
|
138
|
+
}),
|
|
139
|
+
runAsync = _useRequest.runAsync;
|
|
140
|
+
(0, _react2().useEffect)(() => {
|
|
141
|
+
setData([]);
|
|
142
|
+
const run = /*#__PURE__*/function () {
|
|
143
|
+
var _ref = _asyncToGenerator(function* (query) {
|
|
144
|
+
var _query$measures;
|
|
145
|
+
if (query === null || query === void 0 ? void 0 : (_query$measures = query.measures) === null || _query$measures === void 0 ? void 0 : _query$measures.length // || (query?.sql?.fields && query?.sql?.clauses)
|
|
146
|
+
) {
|
|
147
|
+
yield runAsync(query);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
return function run(_x2) {
|
|
151
|
+
return _ref.apply(this, arguments);
|
|
152
|
+
};
|
|
153
|
+
}();
|
|
154
|
+
if (runQuery) {
|
|
155
|
+
runQuery.current = run;
|
|
156
|
+
}
|
|
157
|
+
run(query);
|
|
158
|
+
}, [query, runAsync, runQuery]);
|
|
159
|
+
const charts = (0, _ChartLibrary.useCharts)();
|
|
160
|
+
const chart = charts[config === null || config === void 0 ? void 0 : config.chartType];
|
|
161
|
+
const Component = chart === null || chart === void 0 ? void 0 : chart.component;
|
|
162
|
+
const locale = api.auth.getLocale();
|
|
163
|
+
const transformers = (0, _hooks.useFieldTransformer)(transform, locale);
|
|
164
|
+
const info = {
|
|
165
|
+
data,
|
|
166
|
+
general,
|
|
167
|
+
advanced,
|
|
168
|
+
fieldProps: Object.keys(data[0] || {}).reduce((props, name) => {
|
|
169
|
+
if (!props[name]) {
|
|
170
|
+
const field = (0, _utils.getField)(fields, name.split('.'));
|
|
171
|
+
const transformer = transformers[name];
|
|
172
|
+
props[name] = _objectSpread(_objectSpread({}, field), {}, {
|
|
173
|
+
transformer
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
return props;
|
|
177
|
+
}, {}),
|
|
178
|
+
locale
|
|
179
|
+
};
|
|
180
|
+
const componentProps = (chart === null || chart === void 0 ? void 0 : (_chart$useProps = chart.useProps) === null || _chart$useProps === void 0 ? void 0 : _chart$useProps.call(chart, info)) || info;
|
|
181
|
+
const C = () => Component ? _react2().default.createElement(_reactErrorBoundary().ErrorBoundary, {
|
|
182
|
+
onError: error => {
|
|
183
|
+
console.error(error);
|
|
184
|
+
},
|
|
185
|
+
FallbackComponent: ErrorFallback
|
|
186
|
+
}, _react2().default.createElement(Component, _objectSpread({}, componentProps))) : _react2().default.createElement(_antd().Empty, {
|
|
187
|
+
image: _antd().Empty.PRESENTED_IMAGE_SIMPLE,
|
|
188
|
+
description: t('Please configure chart')
|
|
189
|
+
});
|
|
190
|
+
return data && data.length ? _react2().default.createElement(C, null) : _react2().default.createElement(_antd().Empty, {
|
|
191
|
+
image: _antd().Empty.PRESENTED_IMAGE_SIMPLE,
|
|
192
|
+
description: t('Please configure and run query')
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
exports.ChartRenderer = ChartRenderer;
|
|
196
|
+
ChartRenderer.Designer = function Designer() {
|
|
197
|
+
const _useChartsTranslation2 = (0, _locale.useChartsTranslation)(),
|
|
198
|
+
t = _useChartsTranslation2.t;
|
|
199
|
+
const _useContext3 = (0, _react2().useContext)(_block.ChartConfigContext),
|
|
200
|
+
setVisible = _useContext3.setVisible,
|
|
201
|
+
setCurrent = _useContext3.setCurrent;
|
|
202
|
+
const field = (0, _react().useField)();
|
|
203
|
+
const schema = (0, _react().useFieldSchema)();
|
|
204
|
+
const _useDesignable = (0, _client().useDesignable)(),
|
|
205
|
+
insertAdjacent = _useDesignable.insertAdjacent;
|
|
206
|
+
const _useCollection = (0, _client().useCollection)(),
|
|
207
|
+
name = _useCollection.name,
|
|
208
|
+
title = _useCollection.title;
|
|
209
|
+
return _react2().default.createElement(_client().GeneralSchemaDesigner, {
|
|
210
|
+
disableInitializer: true,
|
|
211
|
+
title: title || name
|
|
212
|
+
}, _react2().default.createElement(_client().SchemaSettings.Item, {
|
|
213
|
+
key: "configure",
|
|
214
|
+
onClick: () => {
|
|
215
|
+
setCurrent({
|
|
216
|
+
schema,
|
|
217
|
+
field,
|
|
218
|
+
collection: name
|
|
219
|
+
});
|
|
220
|
+
setVisible(true);
|
|
221
|
+
}
|
|
222
|
+
}, t('Configure')), _react2().default.createElement(_client().SchemaSettings.Item, {
|
|
223
|
+
key: "duplicate",
|
|
224
|
+
onClick: () => insertAdjacent('afterEnd', (0, _utils.createRendererSchema)(schema === null || schema === void 0 ? void 0 : schema['x-decorator-props']), {
|
|
225
|
+
wrap: _client().gridRowColWrap
|
|
226
|
+
})
|
|
227
|
+
}, t('Duplicate')), _react2().default.createElement(_client().SchemaSettings.BlockTitleItem, null), _react2().default.createElement(_client().SchemaSettings.Divider, null), _react2().default.createElement(_client().SchemaSettings.Remove
|
|
228
|
+
// removeParentsIfNoChildren
|
|
229
|
+
, {
|
|
230
|
+
// removeParentsIfNoChildren
|
|
231
|
+
breakRemoveOn: {
|
|
232
|
+
'x-component': 'ChartV2Block'
|
|
233
|
+
}
|
|
234
|
+
}));
|
|
235
|
+
};
|
|
236
|
+
const ErrorFallback = ({
|
|
237
|
+
error
|
|
238
|
+
}) => {
|
|
239
|
+
const _useChartsTranslation3 = (0, _locale.useChartsTranslation)(),
|
|
240
|
+
t = _useChartsTranslation3.t;
|
|
241
|
+
return _react2().default.createElement("div", {
|
|
242
|
+
style: {
|
|
243
|
+
backgroundColor: 'white'
|
|
244
|
+
}
|
|
245
|
+
}, _react2().default.createElement(_antd().Result, {
|
|
246
|
+
status: "error",
|
|
247
|
+
title: t('Render Failed'),
|
|
248
|
+
subTitle: t('Please check the configuration.')
|
|
249
|
+
}, _react2().default.createElement(Paragraph, {
|
|
250
|
+
copyable: true
|
|
251
|
+
}, _react2().default.createElement(Text, {
|
|
252
|
+
type: "danger",
|
|
253
|
+
style: {
|
|
254
|
+
whiteSpace: 'pre-line',
|
|
255
|
+
textAlign: 'center'
|
|
256
|
+
}
|
|
257
|
+
}, error.message))));
|
|
258
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type MeasureProps = {
|
|
3
|
+
field: string | string[];
|
|
4
|
+
aggregation?: string;
|
|
5
|
+
alias?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare type DimensionProps = {
|
|
8
|
+
field: string | string[];
|
|
9
|
+
alias?: string;
|
|
10
|
+
format?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare type TransformProps = {
|
|
13
|
+
field: string;
|
|
14
|
+
type: string;
|
|
15
|
+
format: string;
|
|
16
|
+
};
|
|
17
|
+
export declare type QueryProps = Partial<{
|
|
18
|
+
measures: MeasureProps[];
|
|
19
|
+
dimensions: DimensionProps[];
|
|
20
|
+
orders: {
|
|
21
|
+
field: string;
|
|
22
|
+
order: 'asc' | 'desc';
|
|
23
|
+
}[];
|
|
24
|
+
filter: any;
|
|
25
|
+
limit: number;
|
|
26
|
+
sql: {
|
|
27
|
+
fields?: string;
|
|
28
|
+
clauses?: string;
|
|
29
|
+
};
|
|
30
|
+
}>;
|
|
31
|
+
export declare type ChartRendererProps = {
|
|
32
|
+
collection: string;
|
|
33
|
+
query?: QueryProps;
|
|
34
|
+
config?: {
|
|
35
|
+
chartType: string;
|
|
36
|
+
general: any;
|
|
37
|
+
advanced: any;
|
|
38
|
+
};
|
|
39
|
+
transform?: TransformProps[];
|
|
40
|
+
mode?: 'builder' | 'sql';
|
|
41
|
+
};
|
|
42
|
+
export declare const ChartRendererContext: React.Context<ChartRendererProps>;
|
|
43
|
+
export declare const ChartRendererProvider: React.FC<ChartRendererProps>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ChartRendererProvider = exports.ChartRendererContext = void 0;
|
|
7
|
+
function _client() {
|
|
8
|
+
const data = require("@nocobase/client");
|
|
9
|
+
_client = function _client() {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _react() {
|
|
15
|
+
const data = _interopRequireWildcard(require("react"));
|
|
16
|
+
_react = function _react() {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
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); }
|
|
22
|
+
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; }
|
|
23
|
+
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; }
|
|
24
|
+
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; }
|
|
25
|
+
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; }
|
|
26
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
27
|
+
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); }
|
|
28
|
+
const ChartRendererContext = (0, _react().createContext)({});
|
|
29
|
+
exports.ChartRendererContext = ChartRendererContext;
|
|
30
|
+
const ChartRendererProvider = props => {
|
|
31
|
+
const collection = props.collection;
|
|
32
|
+
return _react().default.createElement(_client().MaybeCollectionProvider, {
|
|
33
|
+
collection: collection
|
|
34
|
+
}, _react().default.createElement(ChartRendererContext.Provider, {
|
|
35
|
+
value: _objectSpread({}, props)
|
|
36
|
+
}, props.children));
|
|
37
|
+
};
|
|
38
|
+
exports.ChartRendererProvider = ChartRendererProvider;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _ChartLibrary = require("./ChartLibrary");
|
|
7
|
+
Object.keys(_ChartLibrary).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _ChartLibrary[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _ChartLibrary[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _ChartRenderer = require("./ChartRenderer");
|
|
18
|
+
Object.keys(_ChartRenderer).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _ChartRenderer[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function get() {
|
|
24
|
+
return _ChartRenderer[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _ChartRendererProvider = require("./ChartRendererProvider");
|
|
29
|
+
Object.keys(_ChartRendererProvider).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _ChartRendererProvider[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function get() {
|
|
35
|
+
return _ChartRendererProvider[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _library = require("./library");
|
|
40
|
+
Object.keys(_library).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _library[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function get() {
|
|
46
|
+
return _library[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AntdLibrary = void 0;
|
|
7
|
+
function _antd() {
|
|
8
|
+
const data = require("antd");
|
|
9
|
+
_antd = function _antd() {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
var _locale = require("../../locale");
|
|
15
|
+
var _ChartLibrary = require("../ChartLibrary");
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
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; }
|
|
19
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
20
|
+
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); }
|
|
21
|
+
const AntdLibrary = {
|
|
22
|
+
statistic: {
|
|
23
|
+
name: (0, _locale.lang)('Statistic'),
|
|
24
|
+
component: _antd().Statistic,
|
|
25
|
+
schema: {
|
|
26
|
+
type: 'object',
|
|
27
|
+
properties: {
|
|
28
|
+
field: {
|
|
29
|
+
title: (0, _locale.lang)('Field'),
|
|
30
|
+
type: 'string',
|
|
31
|
+
'x-decorator': 'FormItem',
|
|
32
|
+
'x-component': 'Select',
|
|
33
|
+
'x-reactions': '{{ useChartFields }}',
|
|
34
|
+
required: true
|
|
35
|
+
},
|
|
36
|
+
title: {
|
|
37
|
+
title: (0, _locale.lang)('Title'),
|
|
38
|
+
type: 'string',
|
|
39
|
+
'x-decorator': 'FormItem',
|
|
40
|
+
'x-component': 'Input'
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
init: (fields, {
|
|
45
|
+
measures,
|
|
46
|
+
dimensions
|
|
47
|
+
}) => {
|
|
48
|
+
const _infer = (0, _ChartLibrary.infer)(fields, {
|
|
49
|
+
measures,
|
|
50
|
+
dimensions
|
|
51
|
+
}),
|
|
52
|
+
yField = _infer.yField;
|
|
53
|
+
return {
|
|
54
|
+
general: {
|
|
55
|
+
field: yField === null || yField === void 0 ? void 0 : yField.value,
|
|
56
|
+
title: yField === null || yField === void 0 ? void 0 : yField.label
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
},
|
|
60
|
+
useProps: ({
|
|
61
|
+
data,
|
|
62
|
+
fieldProps,
|
|
63
|
+
general,
|
|
64
|
+
advanced
|
|
65
|
+
}) => {
|
|
66
|
+
const record = data[0] || {};
|
|
67
|
+
const field = general === null || general === void 0 ? void 0 : general.field;
|
|
68
|
+
const props = fieldProps[field];
|
|
69
|
+
return _objectSpread(_objectSpread({
|
|
70
|
+
value: record[field],
|
|
71
|
+
formatter: props === null || props === void 0 ? void 0 : props.transformer
|
|
72
|
+
}, general), advanced);
|
|
73
|
+
},
|
|
74
|
+
reference: {
|
|
75
|
+
title: (0, _locale.lang)('Statistic'),
|
|
76
|
+
link: 'https://ant.design/components/statistic/'
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
table: {
|
|
80
|
+
name: (0, _locale.lang)('Table'),
|
|
81
|
+
component: _antd().Table,
|
|
82
|
+
useProps: ({
|
|
83
|
+
data,
|
|
84
|
+
fieldProps,
|
|
85
|
+
general,
|
|
86
|
+
advanced
|
|
87
|
+
}) => {
|
|
88
|
+
var _advanced$pagination;
|
|
89
|
+
const columns = data.length ? Object.keys(data[0]).map(item => {
|
|
90
|
+
var _fieldProps$item;
|
|
91
|
+
return {
|
|
92
|
+
title: ((_fieldProps$item = fieldProps[item]) === null || _fieldProps$item === void 0 ? void 0 : _fieldProps$item.label) || item,
|
|
93
|
+
dataIndex: item,
|
|
94
|
+
key: item
|
|
95
|
+
};
|
|
96
|
+
}) : [];
|
|
97
|
+
const dataSource = data.map(item => {
|
|
98
|
+
Object.keys(item).map(key => {
|
|
99
|
+
const props = fieldProps[key];
|
|
100
|
+
if (props === null || props === void 0 ? void 0 : props.transformer) {
|
|
101
|
+
item[key] = props.transformer(item[key]);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
return item;
|
|
105
|
+
});
|
|
106
|
+
const pageSize = (advanced === null || advanced === void 0 ? void 0 : (_advanced$pagination = advanced.pagination) === null || _advanced$pagination === void 0 ? void 0 : _advanced$pagination.pageSize) || 10;
|
|
107
|
+
return _objectSpread(_objectSpread({
|
|
108
|
+
bordered: true,
|
|
109
|
+
size: 'middle',
|
|
110
|
+
pagination: dataSource.length < pageSize ? false : {
|
|
111
|
+
pageSize
|
|
112
|
+
},
|
|
113
|
+
dataSource,
|
|
114
|
+
columns
|
|
115
|
+
}, general), advanced);
|
|
116
|
+
},
|
|
117
|
+
reference: {
|
|
118
|
+
title: (0, _locale.lang)('Table'),
|
|
119
|
+
link: 'https://ant.design/components/table/'
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
exports.AntdLibrary = AntdLibrary;
|