@devtable/dashboard 1.30.0 → 2.0.0
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/dist/dashboard.es.js +486 -2016
- package/dist/dashboard.umd.js +9 -9
- package/package.json +2 -1
package/dist/dashboard.es.js
CHANGED
|
@@ -1,51 +1,24 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
var __objRest = (source, exclude) => {
|
|
21
|
-
var target = {};
|
|
22
|
-
for (var prop in source)
|
|
23
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
24
|
-
target[prop] = source[prop];
|
|
25
|
-
if (source != null && __getOwnPropSymbols)
|
|
26
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
27
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
28
|
-
target[prop] = source[prop];
|
|
29
|
-
}
|
|
30
|
-
return target;
|
|
31
|
-
};
|
|
32
3
|
var __publicField = (obj, key, value) => {
|
|
33
4
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
34
5
|
return value;
|
|
35
6
|
};
|
|
36
|
-
import React
|
|
7
|
+
import React from "react";
|
|
37
8
|
import _ from "lodash";
|
|
38
9
|
import RGL, { WidthProvider } from "react-grid-layout";
|
|
39
|
-
import {
|
|
10
|
+
import { Popover, Tooltip, Group, Text, ActionIcon, Box, Button, TextInput, LoadingOverlay, Table, Select, useMantineTheme, ColorSwatch, Switch, Slider, SegmentedControl, NumberInput, ColorInput, Divider, Accordion, JsonInput, Modal, AppShell, Tabs, Menu, Container, Textarea } from "@mantine/core";
|
|
40
11
|
import { useRequest } from "ahooks";
|
|
41
12
|
import axios from "axios";
|
|
42
|
-
import {
|
|
13
|
+
import { useModals, ModalsProvider } from "@mantine/modals";
|
|
14
|
+
import { InfoCircle, DeviceFloppy, Refresh, Trash, PlaylistAdd, ArrowsMaximize, Settings, Copy, PlayerPlay, Resize, Paint, Database, Recycle, Share, ArrowLeft } from "tabler-icons-react";
|
|
43
15
|
import RichTextEditor, { RichTextEditor as RichTextEditor$1 } from "@mantine/rte";
|
|
44
|
-
import {
|
|
16
|
+
import { useInputState, useElementSize, randomId } from "@mantine/hooks";
|
|
45
17
|
import ReactEChartsCore from "echarts-for-react/lib/core";
|
|
46
18
|
import * as echarts from "echarts/core";
|
|
47
19
|
import { SunburstChart, BarChart, LineChart, ScatterChart, PieChart } from "echarts/charts";
|
|
48
20
|
import { CanvasRenderer } from "echarts/renderers";
|
|
21
|
+
import { transform } from "echarts-stat";
|
|
49
22
|
import { GridComponent, LegendComponent, TooltipComponent, VisualMapComponent } from "echarts/components";
|
|
50
23
|
import numbro from "numbro";
|
|
51
24
|
import "echarts-gl";
|
|
@@ -110,10 +83,11 @@ const APIClient = {
|
|
|
110
83
|
baseURL: "http://localhost:31200",
|
|
111
84
|
getRequest(method) {
|
|
112
85
|
return (url, data, options2 = {}) => {
|
|
113
|
-
const headers =
|
|
86
|
+
const headers = {
|
|
114
87
|
"X-Requested-With": "XMLHttpRequest",
|
|
115
|
-
"Content-Type": options2.string ? "application/x-www-form-urlencoded" : "application/json"
|
|
116
|
-
|
|
88
|
+
"Content-Type": options2.string ? "application/x-www-form-urlencoded" : "application/json",
|
|
89
|
+
...options2.headers
|
|
90
|
+
};
|
|
117
91
|
const conf = {
|
|
118
92
|
baseURL: this.baseURL,
|
|
119
93
|
method,
|
|
@@ -155,7 +129,7 @@ const queryBySQL = ({ context, definitions, title, query }) => async () => {
|
|
|
155
129
|
};
|
|
156
130
|
async function listDataSources() {
|
|
157
131
|
try {
|
|
158
|
-
const res = await APIClient.getRequest("
|
|
132
|
+
const res = await APIClient.getRequest("POST")("/datasource/list", {});
|
|
159
133
|
return res;
|
|
160
134
|
} catch (error) {
|
|
161
135
|
console.error(error);
|
|
@@ -188,96 +162,23 @@ const initialContext$2 = {
|
|
|
188
162
|
}
|
|
189
163
|
};
|
|
190
164
|
const PanelContext = React.createContext(initialContext$2);
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}
|
|
198
|
-
return ctx;
|
|
199
|
-
}
|
|
200
|
-
var __defProp$1 = Object.defineProperty;
|
|
201
|
-
var __defProps$1 = Object.defineProperties;
|
|
202
|
-
var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
|
|
203
|
-
var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
|
|
204
|
-
var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
|
|
205
|
-
var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
|
|
206
|
-
var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
207
|
-
var __spreadValues$1 = (a, b) => {
|
|
208
|
-
for (var prop in b || (b = {}))
|
|
209
|
-
if (__hasOwnProp$1.call(b, prop))
|
|
210
|
-
__defNormalProp$1(a, prop, b[prop]);
|
|
211
|
-
if (__getOwnPropSymbols$1)
|
|
212
|
-
for (var prop of __getOwnPropSymbols$1(b)) {
|
|
213
|
-
if (__propIsEnum$1.call(b, prop))
|
|
214
|
-
__defNormalProp$1(a, prop, b[prop]);
|
|
215
|
-
}
|
|
216
|
-
return a;
|
|
165
|
+
const initialContext$1 = {
|
|
166
|
+
addPanel: _.noop,
|
|
167
|
+
duplidatePanel: _.noop,
|
|
168
|
+
removePanelByID: _.noop,
|
|
169
|
+
viewPanelInFullScreen: _.noop,
|
|
170
|
+
inFullScreen: false
|
|
217
171
|
};
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
closeOnCancel = true,
|
|
226
|
-
groupProps,
|
|
227
|
-
onCancel,
|
|
228
|
-
onConfirm,
|
|
229
|
-
children
|
|
230
|
-
}) {
|
|
231
|
-
const { cancel: cancelLabel, confirm: confirmLabel } = labels;
|
|
232
|
-
const ctx = useModals();
|
|
233
|
-
const handleCancel = (event) => {
|
|
234
|
-
typeof (cancelProps == null ? void 0 : cancelProps.onClick) === "function" && (cancelProps == null ? void 0 : cancelProps.onClick(event));
|
|
235
|
-
typeof onCancel === "function" && onCancel();
|
|
236
|
-
closeOnCancel && ctx.closeModal(id);
|
|
237
|
-
};
|
|
238
|
-
const handleConfirm = (event) => {
|
|
239
|
-
typeof (confirmProps == null ? void 0 : confirmProps.onClick) === "function" && (confirmProps == null ? void 0 : confirmProps.onClick(event));
|
|
240
|
-
typeof onConfirm === "function" && onConfirm();
|
|
241
|
-
closeOnConfirm && ctx.closeModal(id);
|
|
242
|
-
};
|
|
243
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, children && /* @__PURE__ */ React.createElement(Box, {
|
|
244
|
-
mb: "md"
|
|
245
|
-
}, children), /* @__PURE__ */ React.createElement(Group, __spreadValues$1({
|
|
246
|
-
position: "right"
|
|
247
|
-
}, groupProps), /* @__PURE__ */ React.createElement(Button, __spreadProps$1(__spreadValues$1({
|
|
248
|
-
variant: "default"
|
|
249
|
-
}, cancelProps), {
|
|
250
|
-
onClick: handleCancel
|
|
251
|
-
}), (cancelProps == null ? void 0 : cancelProps.children) || cancelLabel), /* @__PURE__ */ React.createElement(Button, __spreadProps$1(__spreadValues$1({}, confirmProps), {
|
|
252
|
-
onClick: handleConfirm
|
|
253
|
-
}), (confirmProps == null ? void 0 : confirmProps.children) || confirmLabel)));
|
|
254
|
-
}
|
|
255
|
-
function modalsReducer(state, action) {
|
|
256
|
-
switch (action.type) {
|
|
257
|
-
case "OPEN": {
|
|
258
|
-
return {
|
|
259
|
-
current: action.payload,
|
|
260
|
-
modals: [...state.modals, action.payload]
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
case "CLOSE": {
|
|
264
|
-
return {
|
|
265
|
-
current: state.modals[state.modals.length - 2] || null,
|
|
266
|
-
modals: state.modals.filter((m2) => m2.id !== action.payload)
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
case "CLOSE_ALL": {
|
|
270
|
-
return {
|
|
271
|
-
current: state.current,
|
|
272
|
-
modals: []
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
default: {
|
|
276
|
-
return state;
|
|
277
|
-
}
|
|
172
|
+
const DashboardActionContext = React.createContext(initialContext$1);
|
|
173
|
+
const initialContext = {
|
|
174
|
+
sqlSnippets: [],
|
|
175
|
+
setSQLSnippets: () => {
|
|
176
|
+
},
|
|
177
|
+
queries: [],
|
|
178
|
+
setQueries: () => {
|
|
278
179
|
}
|
|
279
|
-
}
|
|
280
|
-
|
|
180
|
+
};
|
|
181
|
+
const DefinitionContext = React.createContext(initialContext);
|
|
281
182
|
var jsxRuntime = { exports: {} };
|
|
282
183
|
var reactJsxRuntime_production_min = {};
|
|
283
184
|
/**
|
|
@@ -292,14 +193,14 @@ var reactJsxRuntime_production_min = {};
|
|
|
292
193
|
var f = React, k = Symbol.for("react.element"), l = Symbol.for("react.fragment"), m = Object.prototype.hasOwnProperty, n = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, p = { key: true, ref: true, __self: true, __source: true };
|
|
293
194
|
function q(c, a, g) {
|
|
294
195
|
var b, d = {}, e = null, h = null;
|
|
295
|
-
|
|
296
|
-
a.key
|
|
297
|
-
a.ref
|
|
196
|
+
void 0 !== g && (e = "" + g);
|
|
197
|
+
void 0 !== a.key && (e = "" + a.key);
|
|
198
|
+
void 0 !== a.ref && (h = a.ref);
|
|
298
199
|
for (b in a)
|
|
299
200
|
m.call(a, b) && !p.hasOwnProperty(b) && (d[b] = a[b]);
|
|
300
201
|
if (c && c.defaultProps)
|
|
301
202
|
for (b in a = c.defaultProps, a)
|
|
302
|
-
d[b]
|
|
203
|
+
void 0 === d[b] && (d[b] = a[b]);
|
|
303
204
|
return { $$typeof: k, type: c, key: e, ref: h, props: d, _owner: n.current };
|
|
304
205
|
}
|
|
305
206
|
reactJsxRuntime_production_min.Fragment = l;
|
|
@@ -311,242 +212,6 @@ reactJsxRuntime_production_min.jsxs = q;
|
|
|
311
212
|
const jsx = jsxRuntime.exports.jsx;
|
|
312
213
|
const jsxs = jsxRuntime.exports.jsxs;
|
|
313
214
|
const Fragment = jsxRuntime.exports.Fragment;
|
|
314
|
-
var __defProp2 = Object.defineProperty;
|
|
315
|
-
var __defProps2 = Object.defineProperties;
|
|
316
|
-
var __getOwnPropDescs2 = Object.getOwnPropertyDescriptors;
|
|
317
|
-
var __getOwnPropSymbols2 = Object.getOwnPropertySymbols;
|
|
318
|
-
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
319
|
-
var __propIsEnum2 = Object.prototype.propertyIsEnumerable;
|
|
320
|
-
var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, {
|
|
321
|
-
enumerable: true,
|
|
322
|
-
configurable: true,
|
|
323
|
-
writable: true,
|
|
324
|
-
value
|
|
325
|
-
}) : obj[key] = value;
|
|
326
|
-
var __spreadValues2 = (a, b) => {
|
|
327
|
-
for (var prop in b || (b = {}))
|
|
328
|
-
if (__hasOwnProp2.call(b, prop))
|
|
329
|
-
__defNormalProp2(a, prop, b[prop]);
|
|
330
|
-
if (__getOwnPropSymbols2)
|
|
331
|
-
for (var prop of __getOwnPropSymbols2(b)) {
|
|
332
|
-
if (__propIsEnum2.call(b, prop))
|
|
333
|
-
__defNormalProp2(a, prop, b[prop]);
|
|
334
|
-
}
|
|
335
|
-
return a;
|
|
336
|
-
};
|
|
337
|
-
var __spreadProps2 = (a, b) => __defProps2(a, __getOwnPropDescs2(b));
|
|
338
|
-
var __objRest2 = (source, exclude) => {
|
|
339
|
-
var target = {};
|
|
340
|
-
for (var prop in source)
|
|
341
|
-
if (__hasOwnProp2.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
342
|
-
target[prop] = source[prop];
|
|
343
|
-
if (source != null && __getOwnPropSymbols2)
|
|
344
|
-
for (var prop of __getOwnPropSymbols2(source)) {
|
|
345
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum2.call(source, prop))
|
|
346
|
-
target[prop] = source[prop];
|
|
347
|
-
}
|
|
348
|
-
return target;
|
|
349
|
-
};
|
|
350
|
-
function separateConfirmModalProps(props) {
|
|
351
|
-
if (!props) {
|
|
352
|
-
return {
|
|
353
|
-
confirmProps: {},
|
|
354
|
-
modalProps: {}
|
|
355
|
-
};
|
|
356
|
-
}
|
|
357
|
-
const _a = props, {
|
|
358
|
-
id,
|
|
359
|
-
children,
|
|
360
|
-
onCancel,
|
|
361
|
-
onConfirm,
|
|
362
|
-
closeOnConfirm,
|
|
363
|
-
closeOnCancel,
|
|
364
|
-
cancelProps,
|
|
365
|
-
confirmProps,
|
|
366
|
-
groupProps,
|
|
367
|
-
labels
|
|
368
|
-
} = _a, others = __objRest2(_a, ["id", "children", "onCancel", "onConfirm", "closeOnConfirm", "closeOnCancel", "cancelProps", "confirmProps", "groupProps", "labels"]);
|
|
369
|
-
return {
|
|
370
|
-
confirmProps: {
|
|
371
|
-
id,
|
|
372
|
-
children,
|
|
373
|
-
onCancel,
|
|
374
|
-
onConfirm,
|
|
375
|
-
closeOnConfirm,
|
|
376
|
-
closeOnCancel,
|
|
377
|
-
cancelProps,
|
|
378
|
-
confirmProps,
|
|
379
|
-
groupProps,
|
|
380
|
-
labels
|
|
381
|
-
},
|
|
382
|
-
modalProps: __spreadValues2({
|
|
383
|
-
id
|
|
384
|
-
}, others)
|
|
385
|
-
};
|
|
386
|
-
}
|
|
387
|
-
function ModalsProvider({
|
|
388
|
-
children,
|
|
389
|
-
modalProps,
|
|
390
|
-
labels,
|
|
391
|
-
modals
|
|
392
|
-
}) {
|
|
393
|
-
const [state, dispatch] = useReducer(modalsReducer, {
|
|
394
|
-
modals: [],
|
|
395
|
-
current: null
|
|
396
|
-
});
|
|
397
|
-
const closeAll = (canceled) => {
|
|
398
|
-
state.modals.forEach((modal) => {
|
|
399
|
-
var _a, _b, _c, _d;
|
|
400
|
-
if (modal.type === "confirm" && canceled) {
|
|
401
|
-
(_b = (_a = modal.props) == null ? void 0 : _a.onCancel) == null ? void 0 : _b.call(_a);
|
|
402
|
-
}
|
|
403
|
-
(_d = (_c = modal.props) == null ? void 0 : _c.onClose) == null ? void 0 : _d.call(_c);
|
|
404
|
-
});
|
|
405
|
-
dispatch({
|
|
406
|
-
type: "CLOSE_ALL"
|
|
407
|
-
});
|
|
408
|
-
};
|
|
409
|
-
const openModal = (props) => {
|
|
410
|
-
const id = props.id || randomId();
|
|
411
|
-
dispatch({
|
|
412
|
-
type: "OPEN",
|
|
413
|
-
payload: {
|
|
414
|
-
id,
|
|
415
|
-
type: "content",
|
|
416
|
-
props
|
|
417
|
-
}
|
|
418
|
-
});
|
|
419
|
-
return id;
|
|
420
|
-
};
|
|
421
|
-
const openConfirmModal = (props) => {
|
|
422
|
-
const id = props.id || randomId();
|
|
423
|
-
dispatch({
|
|
424
|
-
type: "OPEN",
|
|
425
|
-
payload: {
|
|
426
|
-
id,
|
|
427
|
-
type: "confirm",
|
|
428
|
-
props
|
|
429
|
-
}
|
|
430
|
-
});
|
|
431
|
-
return id;
|
|
432
|
-
};
|
|
433
|
-
const openContextModal = (modal, props) => {
|
|
434
|
-
const id = props.id || randomId();
|
|
435
|
-
dispatch({
|
|
436
|
-
type: "OPEN",
|
|
437
|
-
payload: {
|
|
438
|
-
id,
|
|
439
|
-
type: "context",
|
|
440
|
-
props,
|
|
441
|
-
ctx: modal
|
|
442
|
-
}
|
|
443
|
-
});
|
|
444
|
-
return id;
|
|
445
|
-
};
|
|
446
|
-
const closeModal = (id, canceled) => {
|
|
447
|
-
var _a, _b, _c, _d;
|
|
448
|
-
if (state.modals.length <= 1) {
|
|
449
|
-
closeAll(canceled);
|
|
450
|
-
return;
|
|
451
|
-
}
|
|
452
|
-
const modal = state.modals.find((item) => item.id === id);
|
|
453
|
-
if ((modal == null ? void 0 : modal.type) === "confirm" && canceled) {
|
|
454
|
-
(_b = (_a = modal.props) == null ? void 0 : _a.onCancel) == null ? void 0 : _b.call(_a);
|
|
455
|
-
}
|
|
456
|
-
(_d = (_c = modal == null ? void 0 : modal.props) == null ? void 0 : _c.onClose) == null ? void 0 : _d.call(_c);
|
|
457
|
-
dispatch({
|
|
458
|
-
type: "CLOSE",
|
|
459
|
-
payload: modal.id
|
|
460
|
-
});
|
|
461
|
-
};
|
|
462
|
-
const ctx = {
|
|
463
|
-
modals: state.modals,
|
|
464
|
-
openModal,
|
|
465
|
-
openConfirmModal,
|
|
466
|
-
openContextModal,
|
|
467
|
-
closeModal,
|
|
468
|
-
closeAll
|
|
469
|
-
};
|
|
470
|
-
const getCurrentModal = () => {
|
|
471
|
-
var _a;
|
|
472
|
-
switch ((_a = state.current) == null ? void 0 : _a.type) {
|
|
473
|
-
case "context": {
|
|
474
|
-
const _b = state.current.props, {
|
|
475
|
-
innerProps
|
|
476
|
-
} = _b, rest = __objRest2(_b, ["innerProps"]);
|
|
477
|
-
const ContextModal = modals[state.current.ctx];
|
|
478
|
-
return {
|
|
479
|
-
modalProps: rest,
|
|
480
|
-
content: /* @__PURE__ */ jsx(ContextModal, {
|
|
481
|
-
innerProps,
|
|
482
|
-
context: ctx,
|
|
483
|
-
id: state.current.id
|
|
484
|
-
})
|
|
485
|
-
};
|
|
486
|
-
}
|
|
487
|
-
case "confirm": {
|
|
488
|
-
const {
|
|
489
|
-
modalProps: separatedModalProps,
|
|
490
|
-
confirmProps: separatedConfirmProps
|
|
491
|
-
} = separateConfirmModalProps(state.current.props);
|
|
492
|
-
return {
|
|
493
|
-
modalProps: separatedModalProps,
|
|
494
|
-
content: /* @__PURE__ */ jsx(ConfirmModal, __spreadValues({}, __spreadProps2(__spreadValues2({}, separatedConfirmProps), {
|
|
495
|
-
id: state.current.id,
|
|
496
|
-
labels: state.current.props.labels || labels
|
|
497
|
-
})))
|
|
498
|
-
};
|
|
499
|
-
}
|
|
500
|
-
case "content": {
|
|
501
|
-
const _c = state.current.props, {
|
|
502
|
-
children: currentModalChildren
|
|
503
|
-
} = _c, rest = __objRest2(_c, ["children"]);
|
|
504
|
-
return {
|
|
505
|
-
modalProps: rest,
|
|
506
|
-
content: /* @__PURE__ */ jsx(Fragment, {
|
|
507
|
-
children: currentModalChildren
|
|
508
|
-
})
|
|
509
|
-
};
|
|
510
|
-
}
|
|
511
|
-
default: {
|
|
512
|
-
return {
|
|
513
|
-
modalProps: {},
|
|
514
|
-
content: null
|
|
515
|
-
};
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
};
|
|
519
|
-
const {
|
|
520
|
-
modalProps: currentModalProps,
|
|
521
|
-
content
|
|
522
|
-
} = getCurrentModal();
|
|
523
|
-
return /* @__PURE__ */ jsxs(ModalsContext.Provider, {
|
|
524
|
-
value: ctx,
|
|
525
|
-
children: [/* @__PURE__ */ jsx(Modal, __spreadProps(__spreadValues({}, __spreadProps2(__spreadValues2(__spreadValues2({}, modalProps), currentModalProps), {
|
|
526
|
-
opened: state.modals.length > 0,
|
|
527
|
-
onClose: () => closeModal(state.current.id)
|
|
528
|
-
})), {
|
|
529
|
-
children: content
|
|
530
|
-
})), children]
|
|
531
|
-
});
|
|
532
|
-
}
|
|
533
|
-
const initialContext$1 = {
|
|
534
|
-
addPanel: _.noop,
|
|
535
|
-
duplidatePanel: _.noop,
|
|
536
|
-
removePanelByID: _.noop,
|
|
537
|
-
viewPanelInFullScreen: _.noop,
|
|
538
|
-
inFullScreen: false
|
|
539
|
-
};
|
|
540
|
-
const DashboardActionContext = React.createContext(initialContext$1);
|
|
541
|
-
const initialContext = {
|
|
542
|
-
sqlSnippets: [],
|
|
543
|
-
setSQLSnippets: () => {
|
|
544
|
-
},
|
|
545
|
-
queries: [],
|
|
546
|
-
setQueries: () => {
|
|
547
|
-
}
|
|
548
|
-
};
|
|
549
|
-
const DefinitionContext = React.createContext(initialContext);
|
|
550
215
|
function DescriptionPopover({
|
|
551
216
|
position = "bottom",
|
|
552
217
|
trigger = "hover"
|
|
@@ -960,1315 +625,50 @@ function Sunbrust({
|
|
|
960
625
|
width,
|
|
961
626
|
height
|
|
962
627
|
}) {
|
|
963
|
-
const
|
|
628
|
+
const {
|
|
964
629
|
label_field = "name",
|
|
965
|
-
value_field = "value"
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
"value_field"
|
|
969
|
-
]);
|
|
630
|
+
value_field = "value",
|
|
631
|
+
...restConf
|
|
632
|
+
} = conf;
|
|
970
633
|
const chartData = React.useMemo(() => {
|
|
971
|
-
return data.map((d) => ({
|
|
972
|
-
name: d[label_field],
|
|
973
|
-
value: Number(d[value_field])
|
|
974
|
-
}));
|
|
975
|
-
}, [data, label_field, value_field]);
|
|
976
|
-
const max = React.useMemo(() => {
|
|
977
|
-
var
|
|
978
|
-
return (_b = (
|
|
979
|
-
}, [chartData]);
|
|
980
|
-
const labelOption = React.useMemo(() => ({
|
|
981
|
-
series: {
|
|
982
|
-
label: {
|
|
983
|
-
formatter: ({
|
|
984
|
-
name,
|
|
985
|
-
value
|
|
986
|
-
}) => {
|
|
987
|
-
if (value / max < 0.2) {
|
|
988
|
-
return " ";
|
|
989
|
-
}
|
|
990
|
-
return name;
|
|
991
|
-
}
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
|
-
}), [max]);
|
|
995
|
-
const option = _.merge({}, defaultOption$2, labelOption, restConf, {
|
|
996
|
-
series: {
|
|
997
|
-
data: chartData
|
|
998
|
-
}
|
|
999
|
-
});
|
|
1000
|
-
return /* @__PURE__ */ jsx(ReactEChartsCore, {
|
|
1001
|
-
echarts,
|
|
1002
|
-
option,
|
|
1003
|
-
style: {
|
|
1004
|
-
width,
|
|
1005
|
-
height
|
|
1006
|
-
}
|
|
1007
|
-
});
|
|
1008
|
-
}
|
|
1009
|
-
var ecStat = { exports: {} };
|
|
1010
|
-
(function(module, exports) {
|
|
1011
|
-
(function webpackUniversalModuleDefinition(root, factory) {
|
|
1012
|
-
module.exports = factory();
|
|
1013
|
-
})(commonjsGlobal, function() {
|
|
1014
|
-
return function(modules) {
|
|
1015
|
-
var installedModules = {};
|
|
1016
|
-
function __webpack_require__(moduleId) {
|
|
1017
|
-
if (installedModules[moduleId])
|
|
1018
|
-
return installedModules[moduleId].exports;
|
|
1019
|
-
var module2 = installedModules[moduleId] = {
|
|
1020
|
-
exports: {},
|
|
1021
|
-
id: moduleId,
|
|
1022
|
-
loaded: false
|
|
1023
|
-
};
|
|
1024
|
-
modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);
|
|
1025
|
-
module2.loaded = true;
|
|
1026
|
-
return module2.exports;
|
|
1027
|
-
}
|
|
1028
|
-
__webpack_require__.m = modules;
|
|
1029
|
-
__webpack_require__.c = installedModules;
|
|
1030
|
-
__webpack_require__.p = "";
|
|
1031
|
-
return __webpack_require__(0);
|
|
1032
|
-
}([
|
|
1033
|
-
function(module2, exports2, __webpack_require__) {
|
|
1034
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1035
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1036
|
-
return {
|
|
1037
|
-
clustering: __webpack_require__(1),
|
|
1038
|
-
regression: __webpack_require__(5),
|
|
1039
|
-
statistics: __webpack_require__(6),
|
|
1040
|
-
histogram: __webpack_require__(15),
|
|
1041
|
-
transform: {
|
|
1042
|
-
regression: __webpack_require__(18),
|
|
1043
|
-
histogram: __webpack_require__(21),
|
|
1044
|
-
clustering: __webpack_require__(22)
|
|
1045
|
-
}
|
|
1046
|
-
};
|
|
1047
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1048
|
-
},
|
|
1049
|
-
function(module2, exports2, __webpack_require__) {
|
|
1050
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1051
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1052
|
-
var dataProcess = __webpack_require__(2);
|
|
1053
|
-
var dataPreprocess = dataProcess.dataPreprocess;
|
|
1054
|
-
var normalizeDimensions = dataProcess.normalizeDimensions;
|
|
1055
|
-
var arrayUtil = __webpack_require__(3);
|
|
1056
|
-
var numberUtil = __webpack_require__(4);
|
|
1057
|
-
var arraySize = arrayUtil.size;
|
|
1058
|
-
var sumOfColumn = arrayUtil.sumOfColumn;
|
|
1059
|
-
var arraySum = arrayUtil.sum;
|
|
1060
|
-
var zeros = arrayUtil.zeros;
|
|
1061
|
-
var numberUtil = __webpack_require__(4);
|
|
1062
|
-
var isNumber = numberUtil.isNumber;
|
|
1063
|
-
var mathPow = Math.pow;
|
|
1064
|
-
var OutputType = {
|
|
1065
|
-
SINGLE: "single",
|
|
1066
|
-
MULTIPLE: "multiple"
|
|
1067
|
-
};
|
|
1068
|
-
function kMeans(data, k2, dataMeta) {
|
|
1069
|
-
var clusterAssigned = zeros(data.length, 2);
|
|
1070
|
-
var centroids = createRandCent(k2, calcExtents(data, dataMeta.dimensions));
|
|
1071
|
-
var clusterChanged = true;
|
|
1072
|
-
var minDist;
|
|
1073
|
-
var minIndex;
|
|
1074
|
-
var distIJ;
|
|
1075
|
-
var ptsInClust;
|
|
1076
|
-
while (clusterChanged) {
|
|
1077
|
-
clusterChanged = false;
|
|
1078
|
-
for (var i = 0; i < data.length; i++) {
|
|
1079
|
-
minDist = Infinity;
|
|
1080
|
-
minIndex = -1;
|
|
1081
|
-
for (var j = 0; j < k2; j++) {
|
|
1082
|
-
distIJ = distEuclid(data[i], centroids[j], dataMeta);
|
|
1083
|
-
if (distIJ < minDist) {
|
|
1084
|
-
minDist = distIJ;
|
|
1085
|
-
minIndex = j;
|
|
1086
|
-
}
|
|
1087
|
-
}
|
|
1088
|
-
if (clusterAssigned[i][0] !== minIndex) {
|
|
1089
|
-
clusterChanged = true;
|
|
1090
|
-
}
|
|
1091
|
-
clusterAssigned[i][0] = minIndex;
|
|
1092
|
-
clusterAssigned[i][1] = minDist;
|
|
1093
|
-
}
|
|
1094
|
-
for (var i = 0; i < k2; i++) {
|
|
1095
|
-
ptsInClust = [];
|
|
1096
|
-
for (var j = 0; j < clusterAssigned.length; j++) {
|
|
1097
|
-
if (clusterAssigned[j][0] === i) {
|
|
1098
|
-
ptsInClust.push(data[j]);
|
|
1099
|
-
}
|
|
1100
|
-
}
|
|
1101
|
-
centroids[i] = meanInColumns(ptsInClust, dataMeta);
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
var clusterWithKmeans = {
|
|
1105
|
-
centroids,
|
|
1106
|
-
clusterAssigned
|
|
1107
|
-
};
|
|
1108
|
-
return clusterWithKmeans;
|
|
1109
|
-
}
|
|
1110
|
-
function meanInColumns(dataList, dataMeta) {
|
|
1111
|
-
var meanArray = [];
|
|
1112
|
-
var sum;
|
|
1113
|
-
var mean;
|
|
1114
|
-
for (var j = 0; j < dataMeta.dimensions.length; j++) {
|
|
1115
|
-
var dimIdx = dataMeta.dimensions[j];
|
|
1116
|
-
sum = 0;
|
|
1117
|
-
for (var i = 0; i < dataList.length; i++) {
|
|
1118
|
-
sum += dataList[i][dimIdx];
|
|
1119
|
-
}
|
|
1120
|
-
mean = sum / dataList.length;
|
|
1121
|
-
meanArray.push(mean);
|
|
1122
|
-
}
|
|
1123
|
-
return meanArray;
|
|
1124
|
-
}
|
|
1125
|
-
function hierarchicalKMeans(data, clusterCountOrConfig, stepByStep) {
|
|
1126
|
-
var config = (isNumber(clusterCountOrConfig) ? { clusterCount: clusterCountOrConfig, stepByStep } : clusterCountOrConfig) || { clusterCount: 2 };
|
|
1127
|
-
var k2 = config.clusterCount;
|
|
1128
|
-
if (k2 < 2) {
|
|
1129
|
-
return;
|
|
1130
|
-
}
|
|
1131
|
-
var dataMeta = parseDataMeta(data, config);
|
|
1132
|
-
var isOutputTypeSingle = dataMeta.outputType === OutputType.SINGLE;
|
|
1133
|
-
var dataSet = dataPreprocess(data, { dimensions: dataMeta.dimensions });
|
|
1134
|
-
var clusterAssment = zeros(dataSet.length, 2);
|
|
1135
|
-
var outputSingleData;
|
|
1136
|
-
var setClusterIndex;
|
|
1137
|
-
var getClusterIndex;
|
|
1138
|
-
function setDistance(dataIndex, dist2) {
|
|
1139
|
-
clusterAssment[dataIndex][1] = dist2;
|
|
1140
|
-
}
|
|
1141
|
-
function getDistance(dataIndex) {
|
|
1142
|
-
return clusterAssment[dataIndex][1];
|
|
1143
|
-
}
|
|
1144
|
-
if (isOutputTypeSingle) {
|
|
1145
|
-
outputSingleData = [];
|
|
1146
|
-
var outputClusterIndexDimension = dataMeta.outputClusterIndexDimension;
|
|
1147
|
-
setClusterIndex = function(dataIndex, clusterIndex) {
|
|
1148
|
-
outputSingleData[dataIndex][outputClusterIndexDimension] = clusterIndex;
|
|
1149
|
-
};
|
|
1150
|
-
getClusterIndex = function(dataIndex) {
|
|
1151
|
-
return outputSingleData[dataIndex][outputClusterIndexDimension];
|
|
1152
|
-
};
|
|
1153
|
-
for (var i = 0; i < dataSet.length; i++) {
|
|
1154
|
-
outputSingleData.push(dataSet[i].slice());
|
|
1155
|
-
setDistance(i, 0);
|
|
1156
|
-
setClusterIndex(i, 0);
|
|
1157
|
-
}
|
|
1158
|
-
} else {
|
|
1159
|
-
setClusterIndex = function(dataIndex, clusterIndex) {
|
|
1160
|
-
clusterAssment[dataIndex][0] = clusterIndex;
|
|
1161
|
-
};
|
|
1162
|
-
getClusterIndex = function(dataIndex) {
|
|
1163
|
-
return clusterAssment[dataIndex][0];
|
|
1164
|
-
};
|
|
1165
|
-
}
|
|
1166
|
-
var centroid0 = meanInColumns(dataSet, dataMeta);
|
|
1167
|
-
var centList = [centroid0];
|
|
1168
|
-
for (var i = 0; i < dataSet.length; i++) {
|
|
1169
|
-
var dist = distEuclid(dataSet[i], centroid0, dataMeta);
|
|
1170
|
-
setDistance(i, dist);
|
|
1171
|
-
}
|
|
1172
|
-
var lowestSSE;
|
|
1173
|
-
var ptsInClust;
|
|
1174
|
-
var ptsNotClust;
|
|
1175
|
-
var clusterInfo;
|
|
1176
|
-
var sseSplit;
|
|
1177
|
-
var sseNotSplit;
|
|
1178
|
-
var index2 = 1;
|
|
1179
|
-
var result = {
|
|
1180
|
-
data: outputSingleData,
|
|
1181
|
-
centroids: centList,
|
|
1182
|
-
isEnd: false
|
|
1183
|
-
};
|
|
1184
|
-
if (!isOutputTypeSingle) {
|
|
1185
|
-
result.clusterAssment = clusterAssment;
|
|
1186
|
-
}
|
|
1187
|
-
function oneStep() {
|
|
1188
|
-
if (index2 < k2) {
|
|
1189
|
-
lowestSSE = Infinity;
|
|
1190
|
-
var centSplit;
|
|
1191
|
-
var newCentroid;
|
|
1192
|
-
var newClusterAss;
|
|
1193
|
-
for (var j = 0; j < centList.length; j++) {
|
|
1194
|
-
ptsInClust = [];
|
|
1195
|
-
ptsNotClust = [];
|
|
1196
|
-
for (var i2 = 0; i2 < dataSet.length; i2++) {
|
|
1197
|
-
if (getClusterIndex(i2) === j) {
|
|
1198
|
-
ptsInClust.push(dataSet[i2]);
|
|
1199
|
-
} else {
|
|
1200
|
-
ptsNotClust.push(getDistance(i2));
|
|
1201
|
-
}
|
|
1202
|
-
}
|
|
1203
|
-
clusterInfo = kMeans(ptsInClust, 2, dataMeta);
|
|
1204
|
-
sseSplit = sumOfColumn(clusterInfo.clusterAssigned, 1);
|
|
1205
|
-
sseNotSplit = arraySum(ptsNotClust);
|
|
1206
|
-
if (sseSplit + sseNotSplit < lowestSSE) {
|
|
1207
|
-
lowestSSE = sseNotSplit + sseSplit;
|
|
1208
|
-
centSplit = j;
|
|
1209
|
-
newCentroid = clusterInfo.centroids;
|
|
1210
|
-
newClusterAss = clusterInfo.clusterAssigned;
|
|
1211
|
-
}
|
|
1212
|
-
}
|
|
1213
|
-
for (var i2 = 0; i2 < newClusterAss.length; i2++) {
|
|
1214
|
-
if (newClusterAss[i2][0] === 0) {
|
|
1215
|
-
newClusterAss[i2][0] = centSplit;
|
|
1216
|
-
} else if (newClusterAss[i2][0] === 1) {
|
|
1217
|
-
newClusterAss[i2][0] = centList.length;
|
|
1218
|
-
}
|
|
1219
|
-
}
|
|
1220
|
-
centList[centSplit] = newCentroid[0];
|
|
1221
|
-
centList.push(newCentroid[1]);
|
|
1222
|
-
for (var i2 = 0, j = 0; i2 < dataSet.length && j < newClusterAss.length; i2++) {
|
|
1223
|
-
if (getClusterIndex(i2) === centSplit) {
|
|
1224
|
-
setClusterIndex(i2, newClusterAss[j][0]);
|
|
1225
|
-
setDistance(i2, newClusterAss[j++][1]);
|
|
1226
|
-
}
|
|
1227
|
-
}
|
|
1228
|
-
var pointInClust = [];
|
|
1229
|
-
if (!isOutputTypeSingle) {
|
|
1230
|
-
for (var i2 = 0; i2 < centList.length; i2++) {
|
|
1231
|
-
pointInClust[i2] = [];
|
|
1232
|
-
for (var j = 0; j < dataSet.length; j++) {
|
|
1233
|
-
if (getClusterIndex(j) === i2) {
|
|
1234
|
-
pointInClust[i2].push(dataSet[j]);
|
|
1235
|
-
}
|
|
1236
|
-
}
|
|
1237
|
-
}
|
|
1238
|
-
result.pointsInCluster = pointInClust;
|
|
1239
|
-
}
|
|
1240
|
-
index2++;
|
|
1241
|
-
} else {
|
|
1242
|
-
result.isEnd = true;
|
|
1243
|
-
}
|
|
1244
|
-
}
|
|
1245
|
-
if (!config.stepByStep) {
|
|
1246
|
-
while (oneStep(), !result.isEnd)
|
|
1247
|
-
;
|
|
1248
|
-
} else {
|
|
1249
|
-
result.next = function() {
|
|
1250
|
-
oneStep();
|
|
1251
|
-
setCentroidToResultData(result, dataMeta);
|
|
1252
|
-
return result;
|
|
1253
|
-
};
|
|
1254
|
-
}
|
|
1255
|
-
setCentroidToResultData(result, dataMeta);
|
|
1256
|
-
return result;
|
|
1257
|
-
}
|
|
1258
|
-
function setCentroidToResultData(result, dataMeta) {
|
|
1259
|
-
var outputCentroidDimensions = dataMeta.outputCentroidDimensions;
|
|
1260
|
-
if (dataMeta.outputType !== OutputType.SINGLE || outputCentroidDimensions == null) {
|
|
1261
|
-
return;
|
|
1262
|
-
}
|
|
1263
|
-
var outputSingleData = result.data;
|
|
1264
|
-
var centroids = result.centroids;
|
|
1265
|
-
for (var i = 0; i < outputSingleData.length; i++) {
|
|
1266
|
-
var line = outputSingleData[i];
|
|
1267
|
-
var clusterIndex = line[dataMeta.outputClusterIndexDimension];
|
|
1268
|
-
var centroid = centroids[clusterIndex];
|
|
1269
|
-
var dimLen = Math.min(centroid.length, outputCentroidDimensions.length);
|
|
1270
|
-
for (var j = 0; j < dimLen; j++) {
|
|
1271
|
-
line[outputCentroidDimensions[j]] = centroid[j];
|
|
1272
|
-
}
|
|
1273
|
-
}
|
|
1274
|
-
}
|
|
1275
|
-
function createRandCent(k2, extents) {
|
|
1276
|
-
var centroids = zeros(k2, extents.length);
|
|
1277
|
-
for (var j = 0; j < extents.length; j++) {
|
|
1278
|
-
var extentItem = extents[j];
|
|
1279
|
-
for (var i = 0; i < k2; i++) {
|
|
1280
|
-
centroids[i][j] = extentItem.min + extentItem.span * Math.random();
|
|
1281
|
-
}
|
|
1282
|
-
}
|
|
1283
|
-
return centroids;
|
|
1284
|
-
}
|
|
1285
|
-
function distEuclid(dataItem, centroid, dataMeta) {
|
|
1286
|
-
var powerSum = 0;
|
|
1287
|
-
var dimensions = dataMeta.dimensions;
|
|
1288
|
-
var extents = dataMeta.rawExtents;
|
|
1289
|
-
for (var i = 0; i < dimensions.length; i++) {
|
|
1290
|
-
var span = extents[i].span;
|
|
1291
|
-
if (span) {
|
|
1292
|
-
var dimIdx = dimensions[i];
|
|
1293
|
-
var dist = (dataItem[dimIdx] - centroid[i]) / span;
|
|
1294
|
-
powerSum += mathPow(dist, 2);
|
|
1295
|
-
}
|
|
1296
|
-
}
|
|
1297
|
-
return powerSum;
|
|
1298
|
-
}
|
|
1299
|
-
function parseDataMeta(dataSet, config) {
|
|
1300
|
-
var size = arraySize(dataSet);
|
|
1301
|
-
if (size.length < 1) {
|
|
1302
|
-
throw new Error("The input data of clustering should be two-dimension array.");
|
|
1303
|
-
}
|
|
1304
|
-
var colCount = size[1];
|
|
1305
|
-
var defaultDimensions = [];
|
|
1306
|
-
for (var i = 0; i < colCount; i++) {
|
|
1307
|
-
defaultDimensions.push(i);
|
|
1308
|
-
}
|
|
1309
|
-
var dimensions = normalizeDimensions(config.dimensions, defaultDimensions);
|
|
1310
|
-
var outputType = config.outputType || OutputType.MULTIPLE;
|
|
1311
|
-
var outputClusterIndexDimension = config.outputClusterIndexDimension;
|
|
1312
|
-
if (outputType === OutputType.SINGLE && !numberUtil.isNumber(outputClusterIndexDimension)) {
|
|
1313
|
-
throw new Error("outputClusterIndexDimension is required as a number.");
|
|
1314
|
-
}
|
|
1315
|
-
var extents = calcExtents(dataSet, dimensions);
|
|
1316
|
-
return {
|
|
1317
|
-
dimensions,
|
|
1318
|
-
rawExtents: extents,
|
|
1319
|
-
outputType,
|
|
1320
|
-
outputClusterIndexDimension,
|
|
1321
|
-
outputCentroidDimensions: config.outputCentroidDimensions
|
|
1322
|
-
};
|
|
1323
|
-
}
|
|
1324
|
-
function calcExtents(dataSet, dimensions) {
|
|
1325
|
-
var extents = [];
|
|
1326
|
-
var dimLen = dimensions.length;
|
|
1327
|
-
for (var i = 0; i < dimLen; i++) {
|
|
1328
|
-
extents.push({ min: Infinity, max: -Infinity });
|
|
1329
|
-
}
|
|
1330
|
-
for (var i = 0; i < dataSet.length; i++) {
|
|
1331
|
-
var line = dataSet[i];
|
|
1332
|
-
for (var j = 0; j < dimLen; j++) {
|
|
1333
|
-
var extentItem = extents[j];
|
|
1334
|
-
var val = line[dimensions[j]];
|
|
1335
|
-
extentItem.min > val && (extentItem.min = val);
|
|
1336
|
-
extentItem.max < val && (extentItem.max = val);
|
|
1337
|
-
}
|
|
1338
|
-
}
|
|
1339
|
-
for (var i = 0; i < dimLen; i++) {
|
|
1340
|
-
extents[i].span = extents[i].max - extents[i].min;
|
|
1341
|
-
}
|
|
1342
|
-
return extents;
|
|
1343
|
-
}
|
|
1344
|
-
return {
|
|
1345
|
-
OutputType,
|
|
1346
|
-
hierarchicalKMeans
|
|
1347
|
-
};
|
|
1348
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1349
|
-
},
|
|
1350
|
-
function(module2, exports2, __webpack_require__) {
|
|
1351
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1352
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1353
|
-
var array = __webpack_require__(3);
|
|
1354
|
-
var isArray = array.isArray;
|
|
1355
|
-
var size = array.size;
|
|
1356
|
-
var number2 = __webpack_require__(4);
|
|
1357
|
-
var isNumber = number2.isNumber;
|
|
1358
|
-
function normalizeDimensions(dimensions, defaultDimensions) {
|
|
1359
|
-
return typeof dimensions === "number" ? [dimensions] : dimensions == null ? defaultDimensions : dimensions;
|
|
1360
|
-
}
|
|
1361
|
-
function dataPreprocess(data, opt) {
|
|
1362
|
-
opt = opt || {};
|
|
1363
|
-
var dimensions = opt.dimensions;
|
|
1364
|
-
var numberDimensionMap = {};
|
|
1365
|
-
if (dimensions != null) {
|
|
1366
|
-
for (var i = 0; i < dimensions.length; i++) {
|
|
1367
|
-
numberDimensionMap[dimensions[i]] = true;
|
|
1368
|
-
}
|
|
1369
|
-
}
|
|
1370
|
-
var targetOneDim = opt.toOneDimensionArray ? dimensions ? dimensions[0] : 0 : null;
|
|
1371
|
-
function shouldBeNumberDimension(dimIdx) {
|
|
1372
|
-
return !dimensions || numberDimensionMap.hasOwnProperty(dimIdx);
|
|
1373
|
-
}
|
|
1374
|
-
if (!isArray(data)) {
|
|
1375
|
-
throw new Error("Invalid data type, you should input an array");
|
|
1376
|
-
}
|
|
1377
|
-
var predata = [];
|
|
1378
|
-
var arraySize = size(data);
|
|
1379
|
-
if (arraySize.length === 1) {
|
|
1380
|
-
for (var i = 0; i < arraySize[0]; i++) {
|
|
1381
|
-
var item = data[i];
|
|
1382
|
-
if (isNumber(item)) {
|
|
1383
|
-
predata.push(item);
|
|
1384
|
-
}
|
|
1385
|
-
}
|
|
1386
|
-
} else if (arraySize.length === 2) {
|
|
1387
|
-
for (var i = 0; i < arraySize[0]; i++) {
|
|
1388
|
-
var isCorrect = true;
|
|
1389
|
-
var item = data[i];
|
|
1390
|
-
for (var j = 0; j < arraySize[1]; j++) {
|
|
1391
|
-
if (shouldBeNumberDimension(j) && !isNumber(item[j])) {
|
|
1392
|
-
isCorrect = false;
|
|
1393
|
-
}
|
|
1394
|
-
}
|
|
1395
|
-
if (isCorrect) {
|
|
1396
|
-
predata.push(targetOneDim != null ? item[targetOneDim] : item);
|
|
1397
|
-
}
|
|
1398
|
-
}
|
|
1399
|
-
}
|
|
1400
|
-
return predata;
|
|
1401
|
-
}
|
|
1402
|
-
function getPrecision(val) {
|
|
1403
|
-
var str = val.toString();
|
|
1404
|
-
var dotIndex = str.indexOf(".");
|
|
1405
|
-
return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;
|
|
1406
|
-
}
|
|
1407
|
-
return {
|
|
1408
|
-
normalizeDimensions,
|
|
1409
|
-
dataPreprocess,
|
|
1410
|
-
getPrecision
|
|
1411
|
-
};
|
|
1412
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1413
|
-
},
|
|
1414
|
-
function(module2, exports2, __webpack_require__) {
|
|
1415
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1416
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1417
|
-
var objToString = Object.prototype.toString;
|
|
1418
|
-
var arrayProto = Array.prototype;
|
|
1419
|
-
var nativeMap = arrayProto.map;
|
|
1420
|
-
function size(data) {
|
|
1421
|
-
var s = [];
|
|
1422
|
-
while (isArray(data)) {
|
|
1423
|
-
s.push(data.length);
|
|
1424
|
-
data = data[0];
|
|
1425
|
-
}
|
|
1426
|
-
return s;
|
|
1427
|
-
}
|
|
1428
|
-
function isArray(value) {
|
|
1429
|
-
return objToString.call(value) === "[object Array]";
|
|
1430
|
-
}
|
|
1431
|
-
function zeros(m2, n2) {
|
|
1432
|
-
var zeroArray = [];
|
|
1433
|
-
for (var i = 0; i < m2; i++) {
|
|
1434
|
-
zeroArray[i] = [];
|
|
1435
|
-
for (var j = 0; j < n2; j++) {
|
|
1436
|
-
zeroArray[i][j] = 0;
|
|
1437
|
-
}
|
|
1438
|
-
}
|
|
1439
|
-
return zeroArray;
|
|
1440
|
-
}
|
|
1441
|
-
function sum(vector) {
|
|
1442
|
-
var sum2 = 0;
|
|
1443
|
-
for (var i = 0; i < vector.length; i++) {
|
|
1444
|
-
sum2 += vector[i];
|
|
1445
|
-
}
|
|
1446
|
-
return sum2;
|
|
1447
|
-
}
|
|
1448
|
-
function sumOfColumn(dataList, n2) {
|
|
1449
|
-
var sum2 = 0;
|
|
1450
|
-
for (var i = 0; i < dataList.length; i++) {
|
|
1451
|
-
sum2 += dataList[i][n2];
|
|
1452
|
-
}
|
|
1453
|
-
return sum2;
|
|
1454
|
-
}
|
|
1455
|
-
function ascending(a, b) {
|
|
1456
|
-
return a > b ? 1 : a < b ? -1 : a === b ? 0 : NaN;
|
|
1457
|
-
}
|
|
1458
|
-
function bisect(array, value, start, end) {
|
|
1459
|
-
if (start == null) {
|
|
1460
|
-
start = 0;
|
|
1461
|
-
}
|
|
1462
|
-
if (end == null) {
|
|
1463
|
-
end = array.length;
|
|
1464
|
-
}
|
|
1465
|
-
while (start < end) {
|
|
1466
|
-
var mid = Math.floor((start + end) / 2);
|
|
1467
|
-
var compare = ascending(array[mid], value);
|
|
1468
|
-
if (compare > 0) {
|
|
1469
|
-
end = mid;
|
|
1470
|
-
} else if (compare < 0) {
|
|
1471
|
-
start = mid + 1;
|
|
1472
|
-
} else {
|
|
1473
|
-
return mid + 1;
|
|
1474
|
-
}
|
|
1475
|
-
}
|
|
1476
|
-
return start;
|
|
1477
|
-
}
|
|
1478
|
-
function map(obj, cb, context) {
|
|
1479
|
-
if (!(obj && cb)) {
|
|
1480
|
-
return;
|
|
1481
|
-
}
|
|
1482
|
-
if (obj.map && obj.map === nativeMap) {
|
|
1483
|
-
return obj.map(cb, context);
|
|
1484
|
-
} else {
|
|
1485
|
-
var result = [];
|
|
1486
|
-
for (var i = 0, len = obj.length; i < len; i++) {
|
|
1487
|
-
result.push(cb.call(context, obj[i], i, obj));
|
|
1488
|
-
}
|
|
1489
|
-
return result;
|
|
1490
|
-
}
|
|
1491
|
-
}
|
|
1492
|
-
return {
|
|
1493
|
-
size,
|
|
1494
|
-
isArray,
|
|
1495
|
-
zeros,
|
|
1496
|
-
sum,
|
|
1497
|
-
sumOfColumn,
|
|
1498
|
-
ascending,
|
|
1499
|
-
bisect,
|
|
1500
|
-
map
|
|
1501
|
-
};
|
|
1502
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1503
|
-
},
|
|
1504
|
-
function(module2, exports2, __webpack_require__) {
|
|
1505
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1506
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1507
|
-
function isNumber(value) {
|
|
1508
|
-
value = value === null ? NaN : +value;
|
|
1509
|
-
return typeof value === "number" && !isNaN(value);
|
|
1510
|
-
}
|
|
1511
|
-
function isInteger(value) {
|
|
1512
|
-
return isFinite(value) && value === Math.round(value);
|
|
1513
|
-
}
|
|
1514
|
-
function quantityExponent(val) {
|
|
1515
|
-
if (val === 0) {
|
|
1516
|
-
return 0;
|
|
1517
|
-
}
|
|
1518
|
-
var exp = Math.floor(Math.log(val) / Math.LN10);
|
|
1519
|
-
if (val / Math.pow(10, exp) >= 10) {
|
|
1520
|
-
exp++;
|
|
1521
|
-
}
|
|
1522
|
-
return exp;
|
|
1523
|
-
}
|
|
1524
|
-
return {
|
|
1525
|
-
isNumber,
|
|
1526
|
-
isInteger,
|
|
1527
|
-
quantityExponent
|
|
1528
|
-
};
|
|
1529
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1530
|
-
},
|
|
1531
|
-
function(module2, exports2, __webpack_require__) {
|
|
1532
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1533
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1534
|
-
var dataProcess = __webpack_require__(2);
|
|
1535
|
-
var dataPreprocess = dataProcess.dataPreprocess;
|
|
1536
|
-
var normalizeDimensions = dataProcess.normalizeDimensions;
|
|
1537
|
-
var regreMethods = {
|
|
1538
|
-
linear: function(predata, opt) {
|
|
1539
|
-
var xDimIdx = opt.dimensions[0];
|
|
1540
|
-
var yDimIdx = opt.dimensions[1];
|
|
1541
|
-
var sumX = 0;
|
|
1542
|
-
var sumY = 0;
|
|
1543
|
-
var sumXY = 0;
|
|
1544
|
-
var sumXX = 0;
|
|
1545
|
-
var len = predata.length;
|
|
1546
|
-
for (var i = 0; i < len; i++) {
|
|
1547
|
-
var rawItem = predata[i];
|
|
1548
|
-
sumX += rawItem[xDimIdx];
|
|
1549
|
-
sumY += rawItem[yDimIdx];
|
|
1550
|
-
sumXY += rawItem[xDimIdx] * rawItem[yDimIdx];
|
|
1551
|
-
sumXX += rawItem[xDimIdx] * rawItem[xDimIdx];
|
|
1552
|
-
}
|
|
1553
|
-
var gradient = (len * sumXY - sumX * sumY) / (len * sumXX - sumX * sumX);
|
|
1554
|
-
var intercept = sumY / len - gradient * sumX / len;
|
|
1555
|
-
var result = [];
|
|
1556
|
-
for (var j = 0; j < predata.length; j++) {
|
|
1557
|
-
var rawItem = predata[j];
|
|
1558
|
-
var resultItem = rawItem.slice();
|
|
1559
|
-
resultItem[xDimIdx] = rawItem[xDimIdx];
|
|
1560
|
-
resultItem[yDimIdx] = gradient * rawItem[xDimIdx] + intercept;
|
|
1561
|
-
result.push(resultItem);
|
|
1562
|
-
}
|
|
1563
|
-
var expression = "y = " + Math.round(gradient * 100) / 100 + "x + " + Math.round(intercept * 100) / 100;
|
|
1564
|
-
return {
|
|
1565
|
-
points: result,
|
|
1566
|
-
parameter: {
|
|
1567
|
-
gradient,
|
|
1568
|
-
intercept
|
|
1569
|
-
},
|
|
1570
|
-
expression
|
|
1571
|
-
};
|
|
1572
|
-
},
|
|
1573
|
-
linearThroughOrigin: function(predata, opt) {
|
|
1574
|
-
var xDimIdx = opt.dimensions[0];
|
|
1575
|
-
var yDimIdx = opt.dimensions[1];
|
|
1576
|
-
var sumXX = 0;
|
|
1577
|
-
var sumXY = 0;
|
|
1578
|
-
for (var i = 0; i < predata.length; i++) {
|
|
1579
|
-
var rawItem = predata[i];
|
|
1580
|
-
sumXX += rawItem[xDimIdx] * rawItem[xDimIdx];
|
|
1581
|
-
sumXY += rawItem[xDimIdx] * rawItem[yDimIdx];
|
|
1582
|
-
}
|
|
1583
|
-
var gradient = sumXY / sumXX;
|
|
1584
|
-
var result = [];
|
|
1585
|
-
for (var j = 0; j < predata.length; j++) {
|
|
1586
|
-
var rawItem = predata[j];
|
|
1587
|
-
var resultItem = rawItem.slice();
|
|
1588
|
-
resultItem[xDimIdx] = rawItem[xDimIdx];
|
|
1589
|
-
resultItem[yDimIdx] = rawItem[xDimIdx] * gradient;
|
|
1590
|
-
result.push(resultItem);
|
|
1591
|
-
}
|
|
1592
|
-
var expression = "y = " + Math.round(gradient * 100) / 100 + "x";
|
|
1593
|
-
return {
|
|
1594
|
-
points: result,
|
|
1595
|
-
parameter: {
|
|
1596
|
-
gradient
|
|
1597
|
-
},
|
|
1598
|
-
expression
|
|
1599
|
-
};
|
|
1600
|
-
},
|
|
1601
|
-
exponential: function(predata, opt) {
|
|
1602
|
-
var xDimIdx = opt.dimensions[0];
|
|
1603
|
-
var yDimIdx = opt.dimensions[1];
|
|
1604
|
-
var sumX = 0;
|
|
1605
|
-
var sumY = 0;
|
|
1606
|
-
var sumXXY = 0;
|
|
1607
|
-
var sumYlny = 0;
|
|
1608
|
-
var sumXYlny = 0;
|
|
1609
|
-
var sumXY = 0;
|
|
1610
|
-
for (var i = 0; i < predata.length; i++) {
|
|
1611
|
-
var rawItem = predata[i];
|
|
1612
|
-
sumX += rawItem[xDimIdx];
|
|
1613
|
-
sumY += rawItem[yDimIdx];
|
|
1614
|
-
sumXY += rawItem[xDimIdx] * rawItem[yDimIdx];
|
|
1615
|
-
sumXXY += rawItem[xDimIdx] * rawItem[xDimIdx] * rawItem[yDimIdx];
|
|
1616
|
-
sumYlny += rawItem[yDimIdx] * Math.log(rawItem[yDimIdx]);
|
|
1617
|
-
sumXYlny += rawItem[xDimIdx] * rawItem[yDimIdx] * Math.log(rawItem[yDimIdx]);
|
|
1618
|
-
}
|
|
1619
|
-
var denominator = sumY * sumXXY - sumXY * sumXY;
|
|
1620
|
-
var coefficient = Math.pow(Math.E, (sumXXY * sumYlny - sumXY * sumXYlny) / denominator);
|
|
1621
|
-
var index2 = (sumY * sumXYlny - sumXY * sumYlny) / denominator;
|
|
1622
|
-
var result = [];
|
|
1623
|
-
for (var j = 0; j < predata.length; j++) {
|
|
1624
|
-
var rawItem = predata[j];
|
|
1625
|
-
var resultItem = rawItem.slice();
|
|
1626
|
-
resultItem[xDimIdx] = rawItem[xDimIdx];
|
|
1627
|
-
resultItem[yDimIdx] = coefficient * Math.pow(Math.E, index2 * rawItem[xDimIdx]);
|
|
1628
|
-
result.push(resultItem);
|
|
1629
|
-
}
|
|
1630
|
-
var expression = "y = " + Math.round(coefficient * 100) / 100 + "e^(" + Math.round(index2 * 100) / 100 + "x)";
|
|
1631
|
-
return {
|
|
1632
|
-
points: result,
|
|
1633
|
-
parameter: {
|
|
1634
|
-
coefficient,
|
|
1635
|
-
index: index2
|
|
1636
|
-
},
|
|
1637
|
-
expression
|
|
1638
|
-
};
|
|
1639
|
-
},
|
|
1640
|
-
logarithmic: function(predata, opt) {
|
|
1641
|
-
var xDimIdx = opt.dimensions[0];
|
|
1642
|
-
var yDimIdx = opt.dimensions[1];
|
|
1643
|
-
var sumlnx = 0;
|
|
1644
|
-
var sumYlnx = 0;
|
|
1645
|
-
var sumY = 0;
|
|
1646
|
-
var sumlnxlnx = 0;
|
|
1647
|
-
for (var i = 0; i < predata.length; i++) {
|
|
1648
|
-
var rawItem = predata[i];
|
|
1649
|
-
sumlnx += Math.log(rawItem[xDimIdx]);
|
|
1650
|
-
sumYlnx += rawItem[yDimIdx] * Math.log(rawItem[xDimIdx]);
|
|
1651
|
-
sumY += rawItem[yDimIdx];
|
|
1652
|
-
sumlnxlnx += Math.pow(Math.log(rawItem[xDimIdx]), 2);
|
|
1653
|
-
}
|
|
1654
|
-
var gradient = (i * sumYlnx - sumY * sumlnx) / (i * sumlnxlnx - sumlnx * sumlnx);
|
|
1655
|
-
var intercept = (sumY - gradient * sumlnx) / i;
|
|
1656
|
-
var result = [];
|
|
1657
|
-
for (var j = 0; j < predata.length; j++) {
|
|
1658
|
-
var rawItem = predata[j];
|
|
1659
|
-
var resultItem = rawItem.slice();
|
|
1660
|
-
resultItem[xDimIdx] = rawItem[xDimIdx];
|
|
1661
|
-
resultItem[yDimIdx] = gradient * Math.log(rawItem[xDimIdx]) + intercept;
|
|
1662
|
-
result.push(resultItem);
|
|
1663
|
-
}
|
|
1664
|
-
var expression = "y = " + Math.round(intercept * 100) / 100 + " + " + Math.round(gradient * 100) / 100 + "ln(x)";
|
|
1665
|
-
return {
|
|
1666
|
-
points: result,
|
|
1667
|
-
parameter: {
|
|
1668
|
-
gradient,
|
|
1669
|
-
intercept
|
|
1670
|
-
},
|
|
1671
|
-
expression
|
|
1672
|
-
};
|
|
1673
|
-
},
|
|
1674
|
-
polynomial: function(predata, opt) {
|
|
1675
|
-
var xDimIdx = opt.dimensions[0];
|
|
1676
|
-
var yDimIdx = opt.dimensions[1];
|
|
1677
|
-
var order = opt.order;
|
|
1678
|
-
if (order == null) {
|
|
1679
|
-
order = 2;
|
|
1680
|
-
}
|
|
1681
|
-
var coeMatrix = [];
|
|
1682
|
-
var lhs = [];
|
|
1683
|
-
var k2 = order + 1;
|
|
1684
|
-
for (var i = 0; i < k2; i++) {
|
|
1685
|
-
var sumA = 0;
|
|
1686
|
-
for (var n2 = 0; n2 < predata.length; n2++) {
|
|
1687
|
-
var rawItem = predata[n2];
|
|
1688
|
-
sumA += rawItem[yDimIdx] * Math.pow(rawItem[xDimIdx], i);
|
|
1689
|
-
}
|
|
1690
|
-
lhs.push(sumA);
|
|
1691
|
-
var temp = [];
|
|
1692
|
-
for (var j = 0; j < k2; j++) {
|
|
1693
|
-
var sumB = 0;
|
|
1694
|
-
for (var m2 = 0; m2 < predata.length; m2++) {
|
|
1695
|
-
sumB += Math.pow(predata[m2][xDimIdx], i + j);
|
|
1696
|
-
}
|
|
1697
|
-
temp.push(sumB);
|
|
1698
|
-
}
|
|
1699
|
-
coeMatrix.push(temp);
|
|
1700
|
-
}
|
|
1701
|
-
coeMatrix.push(lhs);
|
|
1702
|
-
var coeArray = gaussianElimination(coeMatrix, k2);
|
|
1703
|
-
var result = [];
|
|
1704
|
-
for (var i = 0; i < predata.length; i++) {
|
|
1705
|
-
var value = 0;
|
|
1706
|
-
var rawItem = predata[i];
|
|
1707
|
-
for (var n2 = 0; n2 < coeArray.length; n2++) {
|
|
1708
|
-
value += coeArray[n2] * Math.pow(rawItem[xDimIdx], n2);
|
|
1709
|
-
}
|
|
1710
|
-
var resultItem = rawItem.slice();
|
|
1711
|
-
resultItem[xDimIdx] = rawItem[xDimIdx];
|
|
1712
|
-
resultItem[yDimIdx] = value;
|
|
1713
|
-
result.push(resultItem);
|
|
1714
|
-
}
|
|
1715
|
-
var expression = "y = ";
|
|
1716
|
-
for (var i = coeArray.length - 1; i >= 0; i--) {
|
|
1717
|
-
if (i > 1) {
|
|
1718
|
-
expression += Math.round(coeArray[i] * Math.pow(10, i + 1)) / Math.pow(10, i + 1) + "x^" + i + " + ";
|
|
1719
|
-
} else if (i === 1) {
|
|
1720
|
-
expression += Math.round(coeArray[i] * 100) / 100 + "x + ";
|
|
1721
|
-
} else {
|
|
1722
|
-
expression += Math.round(coeArray[i] * 100) / 100;
|
|
1723
|
-
}
|
|
1724
|
-
}
|
|
1725
|
-
return {
|
|
1726
|
-
points: result,
|
|
1727
|
-
parameter: coeArray,
|
|
1728
|
-
expression
|
|
1729
|
-
};
|
|
1730
|
-
}
|
|
1731
|
-
};
|
|
1732
|
-
function gaussianElimination(matrix, number2) {
|
|
1733
|
-
for (var i = 0; i < matrix.length - 1; i++) {
|
|
1734
|
-
var maxColumn = i;
|
|
1735
|
-
for (var j = i + 1; j < matrix.length - 1; j++) {
|
|
1736
|
-
if (Math.abs(matrix[i][j]) > Math.abs(matrix[i][maxColumn])) {
|
|
1737
|
-
maxColumn = j;
|
|
1738
|
-
}
|
|
1739
|
-
}
|
|
1740
|
-
for (var k2 = i; k2 < matrix.length; k2++) {
|
|
1741
|
-
var temp = matrix[k2][i];
|
|
1742
|
-
matrix[k2][i] = matrix[k2][maxColumn];
|
|
1743
|
-
matrix[k2][maxColumn] = temp;
|
|
1744
|
-
}
|
|
1745
|
-
for (var n2 = i + 1; n2 < matrix.length - 1; n2++) {
|
|
1746
|
-
for (var m2 = matrix.length - 1; m2 >= i; m2--) {
|
|
1747
|
-
matrix[m2][n2] -= matrix[m2][i] / matrix[i][i] * matrix[i][n2];
|
|
1748
|
-
}
|
|
1749
|
-
}
|
|
1750
|
-
}
|
|
1751
|
-
var data = new Array(number2);
|
|
1752
|
-
var len = matrix.length - 1;
|
|
1753
|
-
for (var j = matrix.length - 2; j >= 0; j--) {
|
|
1754
|
-
var temp = 0;
|
|
1755
|
-
for (var i = j + 1; i < matrix.length - 1; i++) {
|
|
1756
|
-
temp += matrix[i][j] * data[i];
|
|
1757
|
-
}
|
|
1758
|
-
data[j] = (matrix[len][j] - temp) / matrix[j][j];
|
|
1759
|
-
}
|
|
1760
|
-
return data;
|
|
1761
|
-
}
|
|
1762
|
-
var regression = function(regreMethod, data, optOrOrder) {
|
|
1763
|
-
var opt = typeof optOrOrder === "number" ? { order: optOrOrder } : optOrOrder || {};
|
|
1764
|
-
var dimensions = normalizeDimensions(opt.dimensions, [0, 1]);
|
|
1765
|
-
var predata = dataPreprocess(data, { dimensions });
|
|
1766
|
-
var result = regreMethods[regreMethod](predata, {
|
|
1767
|
-
order: opt.order,
|
|
1768
|
-
dimensions
|
|
1769
|
-
});
|
|
1770
|
-
var xDimIdx = dimensions[0];
|
|
1771
|
-
result.points.sort(function(itemA, itemB) {
|
|
1772
|
-
return itemA[xDimIdx] - itemB[xDimIdx];
|
|
1773
|
-
});
|
|
1774
|
-
return result;
|
|
1775
|
-
};
|
|
1776
|
-
return regression;
|
|
1777
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1778
|
-
},
|
|
1779
|
-
function(module2, exports2, __webpack_require__) {
|
|
1780
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1781
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1782
|
-
var statistics = {};
|
|
1783
|
-
statistics.max = __webpack_require__(7);
|
|
1784
|
-
statistics.deviation = __webpack_require__(8);
|
|
1785
|
-
statistics.mean = __webpack_require__(10);
|
|
1786
|
-
statistics.median = __webpack_require__(12);
|
|
1787
|
-
statistics.min = __webpack_require__(14);
|
|
1788
|
-
statistics.quantile = __webpack_require__(13);
|
|
1789
|
-
statistics.sampleVariance = __webpack_require__(9);
|
|
1790
|
-
statistics.sum = __webpack_require__(11);
|
|
1791
|
-
return statistics;
|
|
1792
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1793
|
-
},
|
|
1794
|
-
function(module2, exports2, __webpack_require__) {
|
|
1795
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1796
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1797
|
-
var number2 = __webpack_require__(4);
|
|
1798
|
-
var isNumber = number2.isNumber;
|
|
1799
|
-
function max(data) {
|
|
1800
|
-
var maxData = -Infinity;
|
|
1801
|
-
for (var i = 0; i < data.length; i++) {
|
|
1802
|
-
if (isNumber(data[i]) && data[i] > maxData) {
|
|
1803
|
-
maxData = data[i];
|
|
1804
|
-
}
|
|
1805
|
-
}
|
|
1806
|
-
return maxData;
|
|
1807
|
-
}
|
|
1808
|
-
return max;
|
|
1809
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1810
|
-
},
|
|
1811
|
-
function(module2, exports2, __webpack_require__) {
|
|
1812
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1813
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1814
|
-
var variance = __webpack_require__(9);
|
|
1815
|
-
return function(data) {
|
|
1816
|
-
var squaredDeviation = variance(data);
|
|
1817
|
-
return squaredDeviation ? Math.sqrt(squaredDeviation) : squaredDeviation;
|
|
1818
|
-
};
|
|
1819
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1820
|
-
},
|
|
1821
|
-
function(module2, exports2, __webpack_require__) {
|
|
1822
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1823
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1824
|
-
var number2 = __webpack_require__(4);
|
|
1825
|
-
var isNumber = number2.isNumber;
|
|
1826
|
-
var mean = __webpack_require__(10);
|
|
1827
|
-
function sampleVariance(data) {
|
|
1828
|
-
var len = data.length;
|
|
1829
|
-
if (!len || len < 2) {
|
|
1830
|
-
return 0;
|
|
1831
|
-
}
|
|
1832
|
-
if (data.length >= 2) {
|
|
1833
|
-
var meanValue = mean(data);
|
|
1834
|
-
var sum = 0;
|
|
1835
|
-
var temple;
|
|
1836
|
-
for (var i = 0; i < data.length; i++) {
|
|
1837
|
-
if (isNumber(data[i])) {
|
|
1838
|
-
temple = data[i] - meanValue;
|
|
1839
|
-
sum += temple * temple;
|
|
1840
|
-
}
|
|
1841
|
-
}
|
|
1842
|
-
return sum / (data.length - 1);
|
|
1843
|
-
}
|
|
1844
|
-
}
|
|
1845
|
-
return sampleVariance;
|
|
1846
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1847
|
-
},
|
|
1848
|
-
function(module2, exports2, __webpack_require__) {
|
|
1849
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1850
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1851
|
-
var sum = __webpack_require__(11);
|
|
1852
|
-
function mean(data) {
|
|
1853
|
-
var len = data.length;
|
|
1854
|
-
if (!len) {
|
|
1855
|
-
return 0;
|
|
1856
|
-
}
|
|
1857
|
-
return sum(data) / data.length;
|
|
1858
|
-
}
|
|
1859
|
-
return mean;
|
|
1860
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1861
|
-
},
|
|
1862
|
-
function(module2, exports2, __webpack_require__) {
|
|
1863
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1864
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1865
|
-
var number2 = __webpack_require__(4);
|
|
1866
|
-
var isNumber = number2.isNumber;
|
|
1867
|
-
function sum(data) {
|
|
1868
|
-
var len = data.length;
|
|
1869
|
-
if (!len) {
|
|
1870
|
-
return 0;
|
|
1871
|
-
}
|
|
1872
|
-
var sumData = 0;
|
|
1873
|
-
for (var i = 0; i < len; i++) {
|
|
1874
|
-
if (isNumber(data[i])) {
|
|
1875
|
-
sumData += data[i];
|
|
1876
|
-
}
|
|
1877
|
-
}
|
|
1878
|
-
return sumData;
|
|
1879
|
-
}
|
|
1880
|
-
return sum;
|
|
1881
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1882
|
-
},
|
|
1883
|
-
function(module2, exports2, __webpack_require__) {
|
|
1884
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1885
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1886
|
-
var quantile = __webpack_require__(13);
|
|
1887
|
-
function median2(data) {
|
|
1888
|
-
return quantile(data, 0.5);
|
|
1889
|
-
}
|
|
1890
|
-
return median2;
|
|
1891
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1892
|
-
},
|
|
1893
|
-
function(module2, exports2, __webpack_require__) {
|
|
1894
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1895
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1896
|
-
return function(data, p2) {
|
|
1897
|
-
var len = data.length;
|
|
1898
|
-
if (!len) {
|
|
1899
|
-
return 0;
|
|
1900
|
-
}
|
|
1901
|
-
if (p2 <= 0 || len < 2) {
|
|
1902
|
-
return data[0];
|
|
1903
|
-
}
|
|
1904
|
-
if (p2 >= 1) {
|
|
1905
|
-
return data[len - 1];
|
|
1906
|
-
}
|
|
1907
|
-
var h = (len - 1) * p2;
|
|
1908
|
-
var i = Math.floor(h);
|
|
1909
|
-
var a = data[i];
|
|
1910
|
-
var b = data[i + 1];
|
|
1911
|
-
return a + (b - a) * (h - i);
|
|
1912
|
-
};
|
|
1913
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1914
|
-
},
|
|
1915
|
-
function(module2, exports2, __webpack_require__) {
|
|
1916
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1917
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1918
|
-
var number2 = __webpack_require__(4);
|
|
1919
|
-
var isNumber = number2.isNumber;
|
|
1920
|
-
function min(data) {
|
|
1921
|
-
var minData = Infinity;
|
|
1922
|
-
for (var i = 0; i < data.length; i++) {
|
|
1923
|
-
if (isNumber(data[i]) && data[i] < minData) {
|
|
1924
|
-
minData = data[i];
|
|
1925
|
-
}
|
|
1926
|
-
}
|
|
1927
|
-
return minData;
|
|
1928
|
-
}
|
|
1929
|
-
return min;
|
|
1930
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1931
|
-
},
|
|
1932
|
-
function(module2, exports2, __webpack_require__) {
|
|
1933
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1934
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1935
|
-
var max = __webpack_require__(7);
|
|
1936
|
-
var min = __webpack_require__(14);
|
|
1937
|
-
var quantile = __webpack_require__(13);
|
|
1938
|
-
var deviation = __webpack_require__(8);
|
|
1939
|
-
var dataProcess = __webpack_require__(2);
|
|
1940
|
-
var dataPreprocess = dataProcess.dataPreprocess;
|
|
1941
|
-
var normalizeDimensions = dataProcess.normalizeDimensions;
|
|
1942
|
-
var array = __webpack_require__(3);
|
|
1943
|
-
var ascending = array.ascending;
|
|
1944
|
-
var map = array.map;
|
|
1945
|
-
var range = __webpack_require__(16);
|
|
1946
|
-
var bisect = array.bisect;
|
|
1947
|
-
var tickStep = __webpack_require__(17);
|
|
1948
|
-
function computeBins(data, optOrMethod) {
|
|
1949
|
-
var opt = typeof optOrMethod === "string" ? { method: optOrMethod } : optOrMethod || {};
|
|
1950
|
-
var threshold = opt.method == null ? thresholdMethod.squareRoot : thresholdMethod[opt.method];
|
|
1951
|
-
var dimensions = normalizeDimensions(opt.dimensions);
|
|
1952
|
-
var values = dataPreprocess(data, {
|
|
1953
|
-
dimensions,
|
|
1954
|
-
toOneDimensionArray: true
|
|
1955
|
-
});
|
|
1956
|
-
var maxValue = max(values);
|
|
1957
|
-
var minValue = min(values);
|
|
1958
|
-
var binsNumber = threshold(values, minValue, maxValue);
|
|
1959
|
-
var tickStepResult = tickStep(minValue, maxValue, binsNumber);
|
|
1960
|
-
var step = tickStepResult.step;
|
|
1961
|
-
var toFixedPrecision = tickStepResult.toFixedPrecision;
|
|
1962
|
-
var rangeArray = range(+(Math.ceil(minValue / step) * step).toFixed(toFixedPrecision), +(Math.floor(maxValue / step) * step).toFixed(toFixedPrecision), step, toFixedPrecision);
|
|
1963
|
-
var len = rangeArray.length;
|
|
1964
|
-
var bins = new Array(len + 1);
|
|
1965
|
-
for (var i = 0; i <= len; i++) {
|
|
1966
|
-
bins[i] = {};
|
|
1967
|
-
bins[i].sample = [];
|
|
1968
|
-
bins[i].x0 = i > 0 ? rangeArray[i - 1] : rangeArray[i] - minValue === step ? minValue : rangeArray[i] - step;
|
|
1969
|
-
bins[i].x1 = i < len ? rangeArray[i] : maxValue - rangeArray[i - 1] === step ? maxValue : rangeArray[i - 1] + step;
|
|
1970
|
-
}
|
|
1971
|
-
for (var i = 0; i < values.length; i++) {
|
|
1972
|
-
if (minValue <= values[i] && values[i] <= maxValue) {
|
|
1973
|
-
bins[bisect(rangeArray, values[i], 0, len)].sample.push(values[i]);
|
|
1974
|
-
}
|
|
1975
|
-
}
|
|
1976
|
-
var data = map(bins, function(bin) {
|
|
1977
|
-
return [
|
|
1978
|
-
+((bin.x0 + bin.x1) / 2).toFixed(toFixedPrecision),
|
|
1979
|
-
bin.sample.length,
|
|
1980
|
-
bin.x0,
|
|
1981
|
-
bin.x1,
|
|
1982
|
-
bin.x0 + " - " + bin.x1
|
|
1983
|
-
];
|
|
1984
|
-
});
|
|
1985
|
-
var customData = map(bins, function(bin) {
|
|
1986
|
-
return [bin.x0, bin.x1, bin.sample.length];
|
|
1987
|
-
});
|
|
1988
|
-
return {
|
|
1989
|
-
bins,
|
|
1990
|
-
data,
|
|
1991
|
-
customData
|
|
1992
|
-
};
|
|
1993
|
-
}
|
|
1994
|
-
var thresholdMethod = {
|
|
1995
|
-
squareRoot: function(data) {
|
|
1996
|
-
var bins = Math.ceil(Math.sqrt(data.length));
|
|
1997
|
-
return bins > 50 ? 50 : bins;
|
|
1998
|
-
},
|
|
1999
|
-
scott: function(data, min2, max2) {
|
|
2000
|
-
return Math.ceil((max2 - min2) / (3.5 * deviation(data) * Math.pow(data.length, -1 / 3)));
|
|
2001
|
-
},
|
|
2002
|
-
freedmanDiaconis: function(data, min2, max2) {
|
|
2003
|
-
data.sort(ascending);
|
|
2004
|
-
return Math.ceil((max2 - min2) / (2 * (quantile(data, 0.75) - quantile(data, 0.25)) * Math.pow(data.length, -1 / 3)));
|
|
2005
|
-
},
|
|
2006
|
-
sturges: function(data) {
|
|
2007
|
-
return Math.ceil(Math.log(data.length) / Math.LN2) + 1;
|
|
2008
|
-
}
|
|
2009
|
-
};
|
|
2010
|
-
return computeBins;
|
|
2011
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2012
|
-
},
|
|
2013
|
-
function(module2, exports2, __webpack_require__) {
|
|
2014
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2015
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2016
|
-
var dataProcess = __webpack_require__(2);
|
|
2017
|
-
var getPrecision = dataProcess.getPrecision;
|
|
2018
|
-
return function(start, end, step, precision) {
|
|
2019
|
-
var len = arguments.length;
|
|
2020
|
-
if (len < 2) {
|
|
2021
|
-
end = start;
|
|
2022
|
-
start = 0;
|
|
2023
|
-
step = 1;
|
|
2024
|
-
} else if (len < 3) {
|
|
2025
|
-
step = 1;
|
|
2026
|
-
} else if (len < 4) {
|
|
2027
|
-
step = +step;
|
|
2028
|
-
precision = getPrecision(step);
|
|
2029
|
-
} else {
|
|
2030
|
-
precision = +precision;
|
|
2031
|
-
}
|
|
2032
|
-
var n2 = Math.ceil(((end - start) / step).toFixed(precision));
|
|
2033
|
-
var range = new Array(n2 + 1);
|
|
2034
|
-
for (var i = 0; i < n2 + 1; i++) {
|
|
2035
|
-
range[i] = +(start + i * step).toFixed(precision);
|
|
2036
|
-
}
|
|
2037
|
-
return range;
|
|
2038
|
-
};
|
|
2039
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2040
|
-
},
|
|
2041
|
-
function(module2, exports2, __webpack_require__) {
|
|
2042
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2043
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2044
|
-
var numberUtil = __webpack_require__(4);
|
|
2045
|
-
return function(start, stop, count) {
|
|
2046
|
-
var step0 = Math.abs(stop - start) / count;
|
|
2047
|
-
var precision = numberUtil.quantityExponent(step0);
|
|
2048
|
-
var step1 = Math.pow(10, precision);
|
|
2049
|
-
var error = step0 / step1;
|
|
2050
|
-
if (error >= Math.sqrt(50)) {
|
|
2051
|
-
step1 *= 10;
|
|
2052
|
-
} else if (error >= Math.sqrt(10)) {
|
|
2053
|
-
step1 *= 5;
|
|
2054
|
-
} else if (error >= Math.sqrt(2)) {
|
|
2055
|
-
step1 *= 2;
|
|
2056
|
-
}
|
|
2057
|
-
var toFixedPrecision = precision < 0 ? -precision : 0;
|
|
2058
|
-
var resultStep = +(stop >= start ? step1 : -step1).toFixed(toFixedPrecision);
|
|
2059
|
-
return {
|
|
2060
|
-
step: resultStep,
|
|
2061
|
-
toFixedPrecision
|
|
2062
|
-
};
|
|
2063
|
-
};
|
|
2064
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2065
|
-
},
|
|
2066
|
-
function(module2, exports2, __webpack_require__) {
|
|
2067
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2068
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2069
|
-
var regression = __webpack_require__(5);
|
|
2070
|
-
var transformHelper = __webpack_require__(19);
|
|
2071
|
-
var FORMULA_DIMENSION = 2;
|
|
2072
|
-
return {
|
|
2073
|
-
type: "ecStat:regression",
|
|
2074
|
-
transform: function transform(params) {
|
|
2075
|
-
var upstream = params.upstream;
|
|
2076
|
-
var config = params.config || {};
|
|
2077
|
-
var method = config.method || "linear";
|
|
2078
|
-
var result = regression(method, upstream.cloneRawData(), {
|
|
2079
|
-
order: config.order,
|
|
2080
|
-
dimensions: transformHelper.normalizeExistingDimensions(params, config.dimensions)
|
|
2081
|
-
});
|
|
2082
|
-
var points = result.points;
|
|
2083
|
-
var formulaOn = config.formulaOn;
|
|
2084
|
-
if (formulaOn == null) {
|
|
2085
|
-
formulaOn = "end";
|
|
2086
|
-
}
|
|
2087
|
-
var dimensions;
|
|
2088
|
-
if (formulaOn !== "none") {
|
|
2089
|
-
for (var i = 0; i < points.length; i++) {
|
|
2090
|
-
points[i][FORMULA_DIMENSION] = formulaOn === "start" && i === 0 || formulaOn === "all" || formulaOn === "end" && i === points.length - 1 ? result.expression : "";
|
|
2091
|
-
}
|
|
2092
|
-
dimensions = upstream.cloneAllDimensionInfo();
|
|
2093
|
-
dimensions[FORMULA_DIMENSION] = {};
|
|
2094
|
-
}
|
|
2095
|
-
return [{
|
|
2096
|
-
dimensions,
|
|
2097
|
-
data: points
|
|
2098
|
-
}];
|
|
2099
|
-
}
|
|
2100
|
-
};
|
|
2101
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2102
|
-
},
|
|
2103
|
-
function(module2, exports2, __webpack_require__) {
|
|
2104
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2105
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2106
|
-
var arrayUtil = __webpack_require__(3);
|
|
2107
|
-
var numberUtil = __webpack_require__(4);
|
|
2108
|
-
var objectUtil = __webpack_require__(20);
|
|
2109
|
-
function normalizeExistingDimensions(transformParams, dimensionsConfig) {
|
|
2110
|
-
if (dimensionsConfig == null) {
|
|
2111
|
-
return;
|
|
2112
|
-
}
|
|
2113
|
-
var upstream = transformParams.upstream;
|
|
2114
|
-
if (arrayUtil.isArray(dimensionsConfig)) {
|
|
2115
|
-
var result = [];
|
|
2116
|
-
for (var i = 0; i < dimensionsConfig.length; i++) {
|
|
2117
|
-
var dimInfo = upstream.getDimensionInfo(dimensionsConfig[i]);
|
|
2118
|
-
validateDimensionExists(dimInfo, dimensionsConfig[i]);
|
|
2119
|
-
result[i] = dimInfo.index;
|
|
2120
|
-
}
|
|
2121
|
-
return result;
|
|
2122
|
-
} else {
|
|
2123
|
-
var dimInfo = upstream.getDimensionInfo(dimensionsConfig);
|
|
2124
|
-
validateDimensionExists(dimInfo, dimensionsConfig);
|
|
2125
|
-
return dimInfo.index;
|
|
2126
|
-
}
|
|
2127
|
-
function validateDimensionExists(dimInfo2, dimConfig) {
|
|
2128
|
-
if (!dimInfo2) {
|
|
2129
|
-
throw new Error("Can not find dimension by " + dimConfig);
|
|
2130
|
-
}
|
|
2131
|
-
}
|
|
2132
|
-
}
|
|
2133
|
-
function normalizeNewDimensions(dimensionsConfig) {
|
|
2134
|
-
if (arrayUtil.isArray(dimensionsConfig)) {
|
|
2135
|
-
var names = [];
|
|
2136
|
-
var indices = [];
|
|
2137
|
-
for (var i = 0; i < dimensionsConfig.length; i++) {
|
|
2138
|
-
var item = parseDimensionNewItem(dimensionsConfig[i]);
|
|
2139
|
-
names.push(item.name);
|
|
2140
|
-
indices.push(item.index);
|
|
2141
|
-
}
|
|
2142
|
-
return { name: names, index: indices };
|
|
2143
|
-
} else if (dimensionsConfig != null) {
|
|
2144
|
-
return parseDimensionNewItem(dimensionsConfig);
|
|
2145
|
-
}
|
|
2146
|
-
function parseDimensionNewItem(dimConfig) {
|
|
2147
|
-
if (numberUtil.isNumber(dimConfig)) {
|
|
2148
|
-
return { index: dimConfig };
|
|
2149
|
-
} else if (objectUtil.isObject(dimConfig) && numberUtil.isNumber(dimConfig.index)) {
|
|
2150
|
-
return dimConfig;
|
|
2151
|
-
}
|
|
2152
|
-
throw new Error("Illegle new dimensions config. Expect `{ name: string, index: number }`.");
|
|
2153
|
-
}
|
|
2154
|
-
}
|
|
2155
|
-
return {
|
|
2156
|
-
normalizeExistingDimensions,
|
|
2157
|
-
normalizeNewDimensions
|
|
2158
|
-
};
|
|
2159
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2160
|
-
},
|
|
2161
|
-
function(module2, exports2, __webpack_require__) {
|
|
2162
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2163
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2164
|
-
function extend(target, source) {
|
|
2165
|
-
if (Object.assign) {
|
|
2166
|
-
Object.assign(target, source);
|
|
2167
|
-
} else {
|
|
2168
|
-
for (var key in source) {
|
|
2169
|
-
if (source.hasOwnProperty(key)) {
|
|
2170
|
-
target[key] = source[key];
|
|
2171
|
-
}
|
|
2172
|
-
}
|
|
2173
|
-
}
|
|
2174
|
-
return target;
|
|
2175
|
-
}
|
|
2176
|
-
function isObject(value) {
|
|
2177
|
-
const type = typeof value;
|
|
2178
|
-
return type === "function" || !!value && type === "object";
|
|
634
|
+
return data.map((d) => ({
|
|
635
|
+
name: d[label_field],
|
|
636
|
+
value: Number(d[value_field])
|
|
637
|
+
}));
|
|
638
|
+
}, [data, label_field, value_field]);
|
|
639
|
+
const max = React.useMemo(() => {
|
|
640
|
+
var _a, _b;
|
|
641
|
+
return (_b = (_a = _.maxBy(chartData, (d) => d.value)) == null ? void 0 : _a.value) != null ? _b : 1;
|
|
642
|
+
}, [chartData]);
|
|
643
|
+
const labelOption = React.useMemo(() => ({
|
|
644
|
+
series: {
|
|
645
|
+
label: {
|
|
646
|
+
formatter: ({
|
|
647
|
+
name,
|
|
648
|
+
value
|
|
649
|
+
}) => {
|
|
650
|
+
if (value / max < 0.2) {
|
|
651
|
+
return " ";
|
|
2179
652
|
}
|
|
2180
|
-
return
|
|
2181
|
-
|
|
2182
|
-
isObject
|
|
2183
|
-
};
|
|
2184
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2185
|
-
},
|
|
2186
|
-
function(module2, exports2, __webpack_require__) {
|
|
2187
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2188
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2189
|
-
var histogram = __webpack_require__(15);
|
|
2190
|
-
var transformHelper = __webpack_require__(19);
|
|
2191
|
-
return {
|
|
2192
|
-
type: "ecStat:histogram",
|
|
2193
|
-
transform: function transform(params) {
|
|
2194
|
-
var upstream = params.upstream;
|
|
2195
|
-
var config = params.config || {};
|
|
2196
|
-
var result = histogram(upstream.cloneRawData(), {
|
|
2197
|
-
method: config.method,
|
|
2198
|
-
dimensions: transformHelper.normalizeExistingDimensions(params, config.dimensions)
|
|
2199
|
-
});
|
|
2200
|
-
return [{
|
|
2201
|
-
dimensions: ["MeanOfV0V1", "VCount", "V0", "V1", "DisplayableName"],
|
|
2202
|
-
data: result.data
|
|
2203
|
-
}, {
|
|
2204
|
-
data: result.customData
|
|
2205
|
-
}];
|
|
2206
|
-
}
|
|
2207
|
-
};
|
|
2208
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2209
|
-
},
|
|
2210
|
-
function(module2, exports2, __webpack_require__) {
|
|
2211
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2212
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2213
|
-
var clustering = __webpack_require__(1);
|
|
2214
|
-
var numberUtil = __webpack_require__(4);
|
|
2215
|
-
var transformHelper = __webpack_require__(19);
|
|
2216
|
-
var isNumber = numberUtil.isNumber;
|
|
2217
|
-
return {
|
|
2218
|
-
type: "ecStat:clustering",
|
|
2219
|
-
transform: function transform(params) {
|
|
2220
|
-
var upstream = params.upstream;
|
|
2221
|
-
var config = params.config || {};
|
|
2222
|
-
var clusterCount = config.clusterCount;
|
|
2223
|
-
if (!isNumber(clusterCount) || clusterCount <= 0) {
|
|
2224
|
-
throw new Error('config param "clusterCount" need to be specified as an interger greater than 1.');
|
|
2225
|
-
}
|
|
2226
|
-
if (clusterCount === 1) {
|
|
2227
|
-
return [{}, {
|
|
2228
|
-
data: []
|
|
2229
|
-
}];
|
|
2230
|
-
}
|
|
2231
|
-
var outputClusterIndexDimension = transformHelper.normalizeNewDimensions(config.outputClusterIndexDimension);
|
|
2232
|
-
var outputCentroidDimensions = transformHelper.normalizeNewDimensions(config.outputCentroidDimensions);
|
|
2233
|
-
if (outputClusterIndexDimension == null) {
|
|
2234
|
-
throw new Error("outputClusterIndexDimension is required as a number.");
|
|
2235
|
-
}
|
|
2236
|
-
var result = clustering.hierarchicalKMeans(upstream.cloneRawData(), {
|
|
2237
|
-
clusterCount,
|
|
2238
|
-
stepByStep: false,
|
|
2239
|
-
dimensions: transformHelper.normalizeExistingDimensions(params, config.dimensions),
|
|
2240
|
-
outputType: clustering.OutputType.SINGLE,
|
|
2241
|
-
outputClusterIndexDimension: outputClusterIndexDimension.index,
|
|
2242
|
-
outputCentroidDimensions: (outputCentroidDimensions || {}).index
|
|
2243
|
-
});
|
|
2244
|
-
var sourceDimAll = upstream.cloneAllDimensionInfo();
|
|
2245
|
-
var resultDimsDef = [];
|
|
2246
|
-
for (var i = 0; i < sourceDimAll.length; i++) {
|
|
2247
|
-
var sourceDimItem = sourceDimAll[i];
|
|
2248
|
-
resultDimsDef.push(sourceDimItem.name);
|
|
2249
|
-
}
|
|
2250
|
-
resultDimsDef[outputClusterIndexDimension.index] = outputClusterIndexDimension.name;
|
|
2251
|
-
if (outputCentroidDimensions) {
|
|
2252
|
-
for (var i = 0; i < outputCentroidDimensions.index.length; i++) {
|
|
2253
|
-
if (outputCentroidDimensions.name[i] != null) {
|
|
2254
|
-
resultDimsDef[outputCentroidDimensions.index[i]] = outputCentroidDimensions.name[i];
|
|
2255
|
-
}
|
|
2256
|
-
}
|
|
2257
|
-
}
|
|
2258
|
-
return [{
|
|
2259
|
-
dimensions: resultDimsDef,
|
|
2260
|
-
data: result.data
|
|
2261
|
-
}, {
|
|
2262
|
-
data: result.centroids
|
|
2263
|
-
}];
|
|
2264
|
-
}
|
|
2265
|
-
};
|
|
2266
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
653
|
+
return name;
|
|
654
|
+
}
|
|
2267
655
|
}
|
|
2268
|
-
|
|
656
|
+
}
|
|
657
|
+
}), [max]);
|
|
658
|
+
const option = _.merge({}, defaultOption$2, labelOption, restConf, {
|
|
659
|
+
series: {
|
|
660
|
+
data: chartData
|
|
661
|
+
}
|
|
662
|
+
});
|
|
663
|
+
return /* @__PURE__ */ jsx(ReactEChartsCore, {
|
|
664
|
+
echarts,
|
|
665
|
+
option,
|
|
666
|
+
style: {
|
|
667
|
+
width,
|
|
668
|
+
height
|
|
669
|
+
}
|
|
2269
670
|
});
|
|
2270
|
-
}
|
|
2271
|
-
var echartsStat = ecStat.exports;
|
|
671
|
+
}
|
|
2272
672
|
function getRegressionConfs({ regressions = [] }, data) {
|
|
2273
673
|
const regressionDataSets = [];
|
|
2274
674
|
const regressionSeries = [];
|
|
@@ -2276,7 +676,7 @@ function getRegressionConfs({ regressions = [] }, data) {
|
|
|
2276
676
|
if (data.length === 0) {
|
|
2277
677
|
return { regressionDataSets, regressionSeries, regressionXAxes };
|
|
2278
678
|
}
|
|
2279
|
-
regressions.forEach(({ transform, plot, name, y_axis_data_key }) => {
|
|
679
|
+
regressions.forEach(({ transform: transform2, plot, name, y_axis_data_key }) => {
|
|
2280
680
|
const xAxisId = `x-axis-for-${name}`;
|
|
2281
681
|
const rawDatasetId = `dataset-for-${name}--raw`;
|
|
2282
682
|
const regDatasetId = `dataset-for-${name}--transformed`;
|
|
@@ -2285,11 +685,12 @@ function getRegressionConfs({ regressions = [] }, data) {
|
|
|
2285
685
|
source: data.map((d, i) => [i, d[y_axis_data_key]])
|
|
2286
686
|
});
|
|
2287
687
|
regressionDataSets.push({
|
|
2288
|
-
transform,
|
|
688
|
+
transform: transform2,
|
|
2289
689
|
id: regDatasetId,
|
|
2290
690
|
fromDatasetId: rawDatasetId
|
|
2291
691
|
});
|
|
2292
|
-
regressionSeries.push(
|
|
692
|
+
regressionSeries.push({
|
|
693
|
+
...plot,
|
|
2293
694
|
name,
|
|
2294
695
|
datasetId: regDatasetId,
|
|
2295
696
|
xAxisId,
|
|
@@ -2297,7 +698,7 @@ function getRegressionConfs({ regressions = [] }, data) {
|
|
|
2297
698
|
tooltip: {
|
|
2298
699
|
show: false
|
|
2299
700
|
}
|
|
2300
|
-
})
|
|
701
|
+
});
|
|
2301
702
|
regressionXAxes.push({
|
|
2302
703
|
type: "category",
|
|
2303
704
|
id: xAxisId,
|
|
@@ -2333,7 +734,7 @@ const defaultOption$1 = {
|
|
|
2333
734
|
}
|
|
2334
735
|
};
|
|
2335
736
|
function getOption(conf, data) {
|
|
2336
|
-
var
|
|
737
|
+
var _a;
|
|
2337
738
|
const labelFormatters = conf.y_axes.reduce((ret, { label_formatter }, index2) => {
|
|
2338
739
|
ret[index2] = function formatter(payload) {
|
|
2339
740
|
const value = typeof payload === "object" ? payload.value : payload;
|
|
@@ -2355,9 +756,8 @@ function getOption(conf, data) {
|
|
|
2355
756
|
ret[name] = yAxisIndex;
|
|
2356
757
|
return ret;
|
|
2357
758
|
}, {});
|
|
2358
|
-
const series = conf.series.map((
|
|
2359
|
-
|
|
2360
|
-
const ret = __spreadValues({
|
|
759
|
+
const series = conf.series.map(({ y_axis_data_key, yAxisIndex, label_position, name, ...rest }) => {
|
|
760
|
+
const ret = {
|
|
2361
761
|
data: data.map((d) => d[y_axis_data_key]),
|
|
2362
762
|
label: {
|
|
2363
763
|
show: !!label_position,
|
|
@@ -2366,8 +766,9 @@ function getOption(conf, data) {
|
|
|
2366
766
|
},
|
|
2367
767
|
name,
|
|
2368
768
|
xAxisId: "main-x-axis",
|
|
2369
|
-
yAxisIndex
|
|
2370
|
-
|
|
769
|
+
yAxisIndex,
|
|
770
|
+
...rest
|
|
771
|
+
};
|
|
2371
772
|
return ret;
|
|
2372
773
|
});
|
|
2373
774
|
const { regressionDataSets, regressionSeries, regressionXAxes } = getRegressionConfs(conf, data);
|
|
@@ -2375,20 +776,20 @@ function getOption(conf, data) {
|
|
|
2375
776
|
xAxis: [
|
|
2376
777
|
{
|
|
2377
778
|
data: data.map((d) => d[conf.x_axis_data_key]),
|
|
2378
|
-
name: (
|
|
779
|
+
name: (_a = conf.x_axis_name) != null ? _a : "",
|
|
2379
780
|
id: "main-x-axis"
|
|
2380
781
|
},
|
|
2381
782
|
...regressionXAxes
|
|
2382
783
|
],
|
|
2383
|
-
yAxis: conf.y_axes.map((
|
|
2384
|
-
var
|
|
2385
|
-
|
|
2386
|
-
|
|
784
|
+
yAxis: conf.y_axes.map(({ label_formatter, ...rest }, index2) => {
|
|
785
|
+
var _a2;
|
|
786
|
+
return {
|
|
787
|
+
...rest,
|
|
2387
788
|
axisLabel: {
|
|
2388
789
|
show: true,
|
|
2389
|
-
formatter: (
|
|
790
|
+
formatter: (_a2 = labelFormatters[index2]) != null ? _a2 : labelFormatters.default
|
|
2390
791
|
}
|
|
2391
|
-
}
|
|
792
|
+
};
|
|
2392
793
|
}),
|
|
2393
794
|
dataset: [
|
|
2394
795
|
...regressionDataSets
|
|
@@ -2404,12 +805,12 @@ function getOption(conf, data) {
|
|
|
2404
805
|
return "";
|
|
2405
806
|
}
|
|
2406
807
|
const lines = arr.map(({ seriesName, value }) => {
|
|
2407
|
-
var
|
|
808
|
+
var _a2;
|
|
2408
809
|
if (!seriesName) {
|
|
2409
810
|
return value;
|
|
2410
811
|
}
|
|
2411
812
|
const yAxisIndex = yAxisIndexMap[seriesName];
|
|
2412
|
-
const formatter = (
|
|
813
|
+
const formatter = (_a2 = labelFormatters[yAxisIndex]) != null ? _a2 : labelFormatters.default;
|
|
2413
814
|
return `${seriesName}: ${formatter({ value })}`;
|
|
2414
815
|
});
|
|
2415
816
|
lines.unshift(`<strong>${arr[0].name}</strong>`);
|
|
@@ -2902,7 +1303,7 @@ function templateToJSX(template, variables, data) {
|
|
|
2902
1303
|
});
|
|
2903
1304
|
}
|
|
2904
1305
|
echarts.use([BarChart, LineChart, ScatterChart, GridComponent, LegendComponent, TooltipComponent, CanvasRenderer]);
|
|
2905
|
-
echarts.registerTransform(
|
|
1306
|
+
echarts.registerTransform(transform.regression);
|
|
2906
1307
|
function templateNotEmpty(str) {
|
|
2907
1308
|
return str.trim().length > 0;
|
|
2908
1309
|
}
|
|
@@ -3050,15 +1451,12 @@ function VizTable({
|
|
|
3050
1451
|
width,
|
|
3051
1452
|
height
|
|
3052
1453
|
}) {
|
|
3053
|
-
const
|
|
1454
|
+
const {
|
|
3054
1455
|
id_field,
|
|
3055
1456
|
use_raw_columns,
|
|
3056
|
-
columns
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
"use_raw_columns",
|
|
3060
|
-
"columns"
|
|
3061
|
-
]);
|
|
1457
|
+
columns,
|
|
1458
|
+
...rest
|
|
1459
|
+
} = conf;
|
|
3062
1460
|
const labels = React.useMemo(() => {
|
|
3063
1461
|
if (use_raw_columns) {
|
|
3064
1462
|
return Object.keys(data == null ? void 0 : data[0]);
|
|
@@ -3075,11 +1473,11 @@ function VizTable({
|
|
|
3075
1473
|
}
|
|
3076
1474
|
return columns;
|
|
3077
1475
|
}, [use_raw_columns, columns, data]);
|
|
3078
|
-
return /* @__PURE__ */ jsxs(Table,
|
|
1476
|
+
return /* @__PURE__ */ jsxs(Table, {
|
|
3079
1477
|
sx: {
|
|
3080
1478
|
maxHeight: height
|
|
3081
|
-
}
|
|
3082
|
-
|
|
1479
|
+
},
|
|
1480
|
+
...rest,
|
|
3083
1481
|
children: [/* @__PURE__ */ jsx("thead", {
|
|
3084
1482
|
children: /* @__PURE__ */ jsx("tr", {
|
|
3085
1483
|
children: labels.map((label) => /* @__PURE__ */ jsx("th", {
|
|
@@ -3118,12 +1516,13 @@ function VizTable({
|
|
|
3118
1516
|
})
|
|
3119
1517
|
})
|
|
3120
1518
|
})]
|
|
3121
|
-
})
|
|
1519
|
+
});
|
|
3122
1520
|
}
|
|
3123
1521
|
function interpolateString(template, params = {}) {
|
|
3124
|
-
const extendedParams =
|
|
1522
|
+
const extendedParams = {
|
|
1523
|
+
...params,
|
|
3125
1524
|
numbro
|
|
3126
|
-
}
|
|
1525
|
+
};
|
|
3127
1526
|
const names = Object.keys(extendedParams);
|
|
3128
1527
|
const vals = Object.values(extendedParams);
|
|
3129
1528
|
try {
|
|
@@ -3139,21 +1538,17 @@ function VizText({
|
|
|
3139
1538
|
data
|
|
3140
1539
|
}) {
|
|
3141
1540
|
return /* @__PURE__ */ jsx(Fragment, {
|
|
3142
|
-
children: paragraphs.map((
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
},
|
|
3154
|
-
children: interpolateString(template, data[0])
|
|
3155
|
-
}), `${template}---${index2}`);
|
|
3156
|
-
})
|
|
1541
|
+
children: paragraphs.map(({
|
|
1542
|
+
template,
|
|
1543
|
+
size,
|
|
1544
|
+
...rest
|
|
1545
|
+
}, index2) => /* @__PURE__ */ jsx(Text, {
|
|
1546
|
+
...rest,
|
|
1547
|
+
sx: {
|
|
1548
|
+
fontSize: size
|
|
1549
|
+
},
|
|
1550
|
+
children: interpolateString(template, data[0])
|
|
1551
|
+
}, `${template}---${index2}`))
|
|
3157
1552
|
});
|
|
3158
1553
|
}
|
|
3159
1554
|
echarts.use([GridComponent, VisualMapComponent, LegendComponent, TooltipComponent, CanvasRenderer]);
|
|
@@ -3163,22 +1558,19 @@ function VizBar3D({
|
|
|
3163
1558
|
width,
|
|
3164
1559
|
height
|
|
3165
1560
|
}) {
|
|
3166
|
-
const
|
|
1561
|
+
const {
|
|
3167
1562
|
x_axis_data_key,
|
|
3168
1563
|
y_axis_data_key,
|
|
3169
|
-
z_axis_data_key
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
"y_axis_data_key",
|
|
3173
|
-
"z_axis_data_key"
|
|
3174
|
-
]);
|
|
1564
|
+
z_axis_data_key,
|
|
1565
|
+
...restConf
|
|
1566
|
+
} = conf;
|
|
3175
1567
|
const min = React.useMemo(() => {
|
|
3176
1568
|
return _.minBy(data, (d) => d[z_axis_data_key])[z_axis_data_key];
|
|
3177
1569
|
}, [data, z_axis_data_key]);
|
|
3178
1570
|
const max = React.useMemo(() => {
|
|
3179
1571
|
return _.maxBy(data, (d) => d[z_axis_data_key])[z_axis_data_key];
|
|
3180
1572
|
}, [data, z_axis_data_key]);
|
|
3181
|
-
const option =
|
|
1573
|
+
const option = {
|
|
3182
1574
|
tooltip: {},
|
|
3183
1575
|
backgroundColor: "#fff",
|
|
3184
1576
|
visualMap: {
|
|
@@ -3211,14 +1603,14 @@ function VizBar3D({
|
|
|
3211
1603
|
intensity: 1.5
|
|
3212
1604
|
}
|
|
3213
1605
|
}
|
|
3214
|
-
}
|
|
3215
|
-
|
|
1606
|
+
},
|
|
1607
|
+
...restConf,
|
|
3216
1608
|
series: [{
|
|
3217
1609
|
type: "bar3D",
|
|
3218
1610
|
wireframe: {},
|
|
3219
1611
|
data: data.map((d) => [d[x_axis_data_key], d[y_axis_data_key], d[z_axis_data_key]])
|
|
3220
1612
|
}]
|
|
3221
|
-
}
|
|
1613
|
+
};
|
|
3222
1614
|
return /* @__PURE__ */ jsx(ReactEChartsCore, {
|
|
3223
1615
|
echarts,
|
|
3224
1616
|
option,
|
|
@@ -3269,13 +1661,11 @@ function VizPie({
|
|
|
3269
1661
|
width,
|
|
3270
1662
|
height
|
|
3271
1663
|
}) {
|
|
3272
|
-
const
|
|
1664
|
+
const {
|
|
3273
1665
|
label_field = "name",
|
|
3274
|
-
value_field = "value"
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
"value_field"
|
|
3278
|
-
]);
|
|
1666
|
+
value_field = "value",
|
|
1667
|
+
...restConf
|
|
1668
|
+
} = conf;
|
|
3279
1669
|
const chartData = React.useMemo(() => {
|
|
3280
1670
|
return data.map((d) => ({
|
|
3281
1671
|
name: d[label_field],
|
|
@@ -3352,21 +1742,37 @@ function renderViz(width, height, data, viz) {
|
|
|
3352
1742
|
};
|
|
3353
1743
|
switch (viz.type) {
|
|
3354
1744
|
case "sunburst":
|
|
3355
|
-
return /* @__PURE__ */ jsx(Sunbrust,
|
|
1745
|
+
return /* @__PURE__ */ jsx(Sunbrust, {
|
|
1746
|
+
...props
|
|
1747
|
+
});
|
|
3356
1748
|
case "cartesian":
|
|
3357
|
-
return /* @__PURE__ */ jsx(VizCartesianChart,
|
|
1749
|
+
return /* @__PURE__ */ jsx(VizCartesianChart, {
|
|
1750
|
+
...props
|
|
1751
|
+
});
|
|
3358
1752
|
case "table":
|
|
3359
|
-
return /* @__PURE__ */ jsx(VizTable,
|
|
1753
|
+
return /* @__PURE__ */ jsx(VizTable, {
|
|
1754
|
+
...props
|
|
1755
|
+
});
|
|
3360
1756
|
case "text":
|
|
3361
|
-
return /* @__PURE__ */ jsx(VizText,
|
|
1757
|
+
return /* @__PURE__ */ jsx(VizText, {
|
|
1758
|
+
...props
|
|
1759
|
+
});
|
|
3362
1760
|
case "stats":
|
|
3363
|
-
return /* @__PURE__ */ jsx(VizStats,
|
|
1761
|
+
return /* @__PURE__ */ jsx(VizStats, {
|
|
1762
|
+
...props
|
|
1763
|
+
});
|
|
3364
1764
|
case "rich-text":
|
|
3365
|
-
return /* @__PURE__ */ jsx(VizRichText,
|
|
1765
|
+
return /* @__PURE__ */ jsx(VizRichText, {
|
|
1766
|
+
...props
|
|
1767
|
+
});
|
|
3366
1768
|
case "bar-3d":
|
|
3367
|
-
return /* @__PURE__ */ jsx(VizBar3D,
|
|
1769
|
+
return /* @__PURE__ */ jsx(VizBar3D, {
|
|
1770
|
+
...props
|
|
1771
|
+
});
|
|
3368
1772
|
case "pie":
|
|
3369
|
-
return /* @__PURE__ */ jsx(VizPie,
|
|
1773
|
+
return /* @__PURE__ */ jsx(VizPie, {
|
|
1774
|
+
...props
|
|
1775
|
+
});
|
|
3370
1776
|
default:
|
|
3371
1777
|
return null;
|
|
3372
1778
|
}
|
|
@@ -3507,23 +1913,25 @@ function VizBar3DPanel({
|
|
|
3507
1913
|
control,
|
|
3508
1914
|
render: ({
|
|
3509
1915
|
field
|
|
3510
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
1916
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
3511
1917
|
label: "Data Field",
|
|
3512
1918
|
required: true,
|
|
3513
|
-
data
|
|
3514
|
-
|
|
1919
|
+
data,
|
|
1920
|
+
...field
|
|
1921
|
+
})
|
|
3515
1922
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3516
1923
|
name: "xAxis3D.name",
|
|
3517
1924
|
control,
|
|
3518
1925
|
render: ({
|
|
3519
1926
|
field
|
|
3520
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
1927
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3521
1928
|
sx: {
|
|
3522
1929
|
flexGrow: 1
|
|
3523
1930
|
},
|
|
3524
1931
|
size: "md",
|
|
3525
|
-
label: "Name"
|
|
3526
|
-
|
|
1932
|
+
label: "Name",
|
|
1933
|
+
...field
|
|
1934
|
+
})
|
|
3527
1935
|
})]
|
|
3528
1936
|
}), /* @__PURE__ */ jsx(Text, {
|
|
3529
1937
|
mt: "lg",
|
|
@@ -3541,23 +1949,25 @@ function VizBar3DPanel({
|
|
|
3541
1949
|
control,
|
|
3542
1950
|
render: ({
|
|
3543
1951
|
field
|
|
3544
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
1952
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
3545
1953
|
label: "Data Field",
|
|
3546
1954
|
required: true,
|
|
3547
|
-
data
|
|
3548
|
-
|
|
1955
|
+
data,
|
|
1956
|
+
...field
|
|
1957
|
+
})
|
|
3549
1958
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3550
1959
|
name: "yAxis3D.name",
|
|
3551
1960
|
control,
|
|
3552
1961
|
render: ({
|
|
3553
1962
|
field
|
|
3554
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
1963
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3555
1964
|
sx: {
|
|
3556
1965
|
flexGrow: 1
|
|
3557
1966
|
},
|
|
3558
1967
|
size: "md",
|
|
3559
|
-
label: "Name"
|
|
3560
|
-
|
|
1968
|
+
label: "Name",
|
|
1969
|
+
...field
|
|
1970
|
+
})
|
|
3561
1971
|
})]
|
|
3562
1972
|
}), /* @__PURE__ */ jsx(Text, {
|
|
3563
1973
|
mt: "lg",
|
|
@@ -3575,23 +1985,25 @@ function VizBar3DPanel({
|
|
|
3575
1985
|
control,
|
|
3576
1986
|
render: ({
|
|
3577
1987
|
field
|
|
3578
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
1988
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
3579
1989
|
label: "Data Field",
|
|
3580
1990
|
required: true,
|
|
3581
|
-
data
|
|
3582
|
-
|
|
1991
|
+
data,
|
|
1992
|
+
...field
|
|
1993
|
+
})
|
|
3583
1994
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3584
1995
|
name: "zAxis3D.name",
|
|
3585
1996
|
control,
|
|
3586
1997
|
render: ({
|
|
3587
1998
|
field
|
|
3588
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
1999
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3589
2000
|
sx: {
|
|
3590
2001
|
flexGrow: 1
|
|
3591
2002
|
},
|
|
3592
2003
|
size: "md",
|
|
3593
|
-
label: "Name"
|
|
3594
|
-
|
|
2004
|
+
label: "Name",
|
|
2005
|
+
...field
|
|
2006
|
+
})
|
|
3595
2007
|
})]
|
|
3596
2008
|
}), /* @__PURE__ */ jsx(Group, {
|
|
3597
2009
|
position: "center",
|
|
@@ -3681,24 +2093,26 @@ function BarFields({
|
|
|
3681
2093
|
control,
|
|
3682
2094
|
render: ({
|
|
3683
2095
|
field
|
|
3684
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
2096
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3685
2097
|
label: "Stack",
|
|
3686
2098
|
placeholder: "Stack bars by this ID",
|
|
3687
2099
|
sx: {
|
|
3688
2100
|
flexGrow: 1
|
|
3689
|
-
}
|
|
3690
|
-
|
|
2101
|
+
},
|
|
2102
|
+
...field
|
|
2103
|
+
})
|
|
3691
2104
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3692
2105
|
name: `series.${index2}.barWidth`,
|
|
3693
2106
|
control,
|
|
3694
2107
|
render: ({
|
|
3695
2108
|
field
|
|
3696
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
2109
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3697
2110
|
label: "Bar Width",
|
|
3698
2111
|
sx: {
|
|
3699
2112
|
flexGrow: 1
|
|
3700
|
-
}
|
|
3701
|
-
|
|
2113
|
+
},
|
|
2114
|
+
...field
|
|
2115
|
+
})
|
|
3702
2116
|
})]
|
|
3703
2117
|
});
|
|
3704
2118
|
}
|
|
@@ -3728,20 +2142,20 @@ function LineFields({
|
|
|
3728
2142
|
control,
|
|
3729
2143
|
render: ({
|
|
3730
2144
|
field
|
|
3731
|
-
}) => /* @__PURE__ */ jsx(Select,
|
|
2145
|
+
}) => /* @__PURE__ */ jsx(Select, {
|
|
3732
2146
|
label: "Step",
|
|
3733
2147
|
data: stepOptions,
|
|
3734
2148
|
sx: {
|
|
3735
2149
|
flexGrow: 1,
|
|
3736
2150
|
maxWidth: "48%"
|
|
3737
|
-
}
|
|
3738
|
-
|
|
2151
|
+
},
|
|
2152
|
+
...field,
|
|
3739
2153
|
value: String(field.value),
|
|
3740
2154
|
onChange: (v) => {
|
|
3741
2155
|
const step = v === "false" ? false : v;
|
|
3742
2156
|
field.onChange(step);
|
|
3743
2157
|
}
|
|
3744
|
-
})
|
|
2158
|
+
})
|
|
3745
2159
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3746
2160
|
name: `series.${index2}.smooth`,
|
|
3747
2161
|
control,
|
|
@@ -3788,15 +2202,15 @@ function ScatterFields({
|
|
|
3788
2202
|
children: [/* @__PURE__ */ jsx(Text, {
|
|
3789
2203
|
size: "sm",
|
|
3790
2204
|
children: "Size"
|
|
3791
|
-
}), /* @__PURE__ */ jsx(Slider,
|
|
2205
|
+
}), /* @__PURE__ */ jsx(Slider, {
|
|
3792
2206
|
min: 1,
|
|
3793
2207
|
max: 10,
|
|
3794
|
-
marks: symbolSizeOptions
|
|
3795
|
-
|
|
2208
|
+
marks: symbolSizeOptions,
|
|
2209
|
+
...field,
|
|
3796
2210
|
sx: {
|
|
3797
2211
|
width: "100%"
|
|
3798
2212
|
}
|
|
3799
|
-
})
|
|
2213
|
+
})]
|
|
3800
2214
|
})
|
|
3801
2215
|
})
|
|
3802
2216
|
});
|
|
@@ -3872,7 +2286,7 @@ function SeriesItemField({
|
|
|
3872
2286
|
control,
|
|
3873
2287
|
render: ({
|
|
3874
2288
|
field
|
|
3875
|
-
}) => /* @__PURE__ */ jsx(SegmentedControl,
|
|
2289
|
+
}) => /* @__PURE__ */ jsx(SegmentedControl, {
|
|
3876
2290
|
data: [{
|
|
3877
2291
|
label: "Line",
|
|
3878
2292
|
value: "line"
|
|
@@ -3886,21 +2300,23 @@ function SeriesItemField({
|
|
|
3886
2300
|
label: "Boxplot",
|
|
3887
2301
|
value: "boxplot",
|
|
3888
2302
|
disabled: true
|
|
3889
|
-
}]
|
|
3890
|
-
|
|
2303
|
+
}],
|
|
2304
|
+
...field
|
|
2305
|
+
})
|
|
3891
2306
|
})
|
|
3892
2307
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3893
2308
|
name: `series.${index2}.name`,
|
|
3894
2309
|
control,
|
|
3895
2310
|
render: ({
|
|
3896
2311
|
field
|
|
3897
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
2312
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3898
2313
|
label: "Name",
|
|
3899
2314
|
required: true,
|
|
3900
2315
|
sx: {
|
|
3901
2316
|
flex: 1
|
|
3902
|
-
}
|
|
3903
|
-
|
|
2317
|
+
},
|
|
2318
|
+
...field
|
|
2319
|
+
})
|
|
3904
2320
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
3905
2321
|
direction: "row",
|
|
3906
2322
|
grow: true,
|
|
@@ -3910,34 +2326,32 @@ function SeriesItemField({
|
|
|
3910
2326
|
control,
|
|
3911
2327
|
render: ({
|
|
3912
2328
|
field
|
|
3913
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
2329
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
3914
2330
|
label: "Value Field",
|
|
3915
2331
|
required: true,
|
|
3916
2332
|
data,
|
|
3917
2333
|
sx: {
|
|
3918
2334
|
flex: 1
|
|
3919
|
-
}
|
|
3920
|
-
|
|
2335
|
+
},
|
|
2336
|
+
...field
|
|
2337
|
+
})
|
|
3921
2338
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3922
2339
|
name: `series.${index2}.yAxisIndex`,
|
|
3923
2340
|
control,
|
|
3924
|
-
render: (
|
|
3925
|
-
|
|
3926
|
-
field: _b
|
|
3927
|
-
} = _a, _c = _b, {
|
|
2341
|
+
render: ({
|
|
2342
|
+
field: {
|
|
3928
2343
|
value,
|
|
3929
|
-
onChange
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
return /* @__PURE__ */ jsx(Select, __spreadProps(__spreadValues({
|
|
2344
|
+
onChange,
|
|
2345
|
+
...rest
|
|
2346
|
+
}
|
|
2347
|
+
}) => {
|
|
2348
|
+
var _a;
|
|
2349
|
+
return /* @__PURE__ */ jsx(Select, {
|
|
3936
2350
|
label: "Y Axis",
|
|
3937
2351
|
data: yAxisOptions,
|
|
3938
|
-
disabled: yAxisOptions.length === 0
|
|
3939
|
-
|
|
3940
|
-
value: (
|
|
2352
|
+
disabled: yAxisOptions.length === 0,
|
|
2353
|
+
...rest,
|
|
2354
|
+
value: (_a = value == null ? void 0 : value.toString()) != null ? _a : "",
|
|
3941
2355
|
onChange: (value2) => {
|
|
3942
2356
|
if (!value2) {
|
|
3943
2357
|
onChange(0);
|
|
@@ -3948,7 +2362,7 @@ function SeriesItemField({
|
|
|
3948
2362
|
sx: {
|
|
3949
2363
|
flex: 1
|
|
3950
2364
|
}
|
|
3951
|
-
})
|
|
2365
|
+
});
|
|
3952
2366
|
}
|
|
3953
2367
|
})]
|
|
3954
2368
|
}), type === "line" && /* @__PURE__ */ jsx(LineFields, {
|
|
@@ -3965,10 +2379,11 @@ function SeriesItemField({
|
|
|
3965
2379
|
control,
|
|
3966
2380
|
render: ({
|
|
3967
2381
|
field
|
|
3968
|
-
}) => /* @__PURE__ */ jsx(Select,
|
|
2382
|
+
}) => /* @__PURE__ */ jsx(Select, {
|
|
3969
2383
|
label: "Label Position",
|
|
3970
|
-
data: labelPositions
|
|
3971
|
-
|
|
2384
|
+
data: labelPositions,
|
|
2385
|
+
...field
|
|
2386
|
+
})
|
|
3972
2387
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
3973
2388
|
direction: "column",
|
|
3974
2389
|
grow: true,
|
|
@@ -3981,7 +2396,9 @@ function SeriesItemField({
|
|
|
3981
2396
|
control,
|
|
3982
2397
|
render: ({
|
|
3983
2398
|
field
|
|
3984
|
-
}) => /* @__PURE__ */ jsx(MantineColorSelector,
|
|
2399
|
+
}) => /* @__PURE__ */ jsx(MantineColorSelector, {
|
|
2400
|
+
...field
|
|
2401
|
+
})
|
|
3985
2402
|
})]
|
|
3986
2403
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
3987
2404
|
color: "red",
|
|
@@ -4014,7 +2431,10 @@ function SeriesField({
|
|
|
4014
2431
|
});
|
|
4015
2432
|
const watchFieldArray = watch("series");
|
|
4016
2433
|
const controlledFields = fields.map((field, index2) => {
|
|
4017
|
-
return
|
|
2434
|
+
return {
|
|
2435
|
+
...field,
|
|
2436
|
+
...watchFieldArray[index2]
|
|
2437
|
+
};
|
|
4018
2438
|
});
|
|
4019
2439
|
const addSeries = () => append({
|
|
4020
2440
|
type: "bar",
|
|
@@ -4066,21 +2486,24 @@ function _NumbroFormatSelector({
|
|
|
4066
2486
|
onChange
|
|
4067
2487
|
}, ref) {
|
|
4068
2488
|
const changeOutput = (output) => {
|
|
4069
|
-
onChange(
|
|
2489
|
+
onChange({
|
|
2490
|
+
...value,
|
|
4070
2491
|
output
|
|
4071
|
-
})
|
|
2492
|
+
});
|
|
4072
2493
|
};
|
|
4073
2494
|
const changeMantissa = (mantissa) => {
|
|
4074
2495
|
const trimMantissa = mantissa === 0 ? false : value.trimMantissa;
|
|
4075
|
-
onChange(
|
|
2496
|
+
onChange({
|
|
2497
|
+
...value,
|
|
4076
2498
|
mantissa,
|
|
4077
2499
|
trimMantissa
|
|
4078
|
-
})
|
|
2500
|
+
});
|
|
4079
2501
|
};
|
|
4080
2502
|
const changeTrimMantissa = (event) => {
|
|
4081
|
-
onChange(
|
|
2503
|
+
onChange({
|
|
2504
|
+
...value,
|
|
4082
2505
|
trimMantissa: event.currentTarget.checked
|
|
4083
|
-
})
|
|
2506
|
+
});
|
|
4084
2507
|
};
|
|
4085
2508
|
return /* @__PURE__ */ jsx(Group, {
|
|
4086
2509
|
direction: "column",
|
|
@@ -4143,13 +2566,14 @@ function YAxisField({
|
|
|
4143
2566
|
control,
|
|
4144
2567
|
render: ({
|
|
4145
2568
|
field
|
|
4146
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
2569
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
4147
2570
|
label: "Name",
|
|
4148
2571
|
required: true,
|
|
4149
2572
|
sx: {
|
|
4150
2573
|
flex: 1
|
|
4151
|
-
}
|
|
4152
|
-
|
|
2574
|
+
},
|
|
2575
|
+
...field
|
|
2576
|
+
})
|
|
4153
2577
|
})
|
|
4154
2578
|
}), /* @__PURE__ */ jsx(Group, {
|
|
4155
2579
|
direction: "column",
|
|
@@ -4160,7 +2584,9 @@ function YAxisField({
|
|
|
4160
2584
|
control,
|
|
4161
2585
|
render: ({
|
|
4162
2586
|
field
|
|
4163
|
-
}) => /* @__PURE__ */ jsx(NumbroFormatSelector,
|
|
2587
|
+
}) => /* @__PURE__ */ jsx(NumbroFormatSelector, {
|
|
2588
|
+
...field
|
|
2589
|
+
})
|
|
4164
2590
|
})
|
|
4165
2591
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
4166
2592
|
color: "red",
|
|
@@ -4192,7 +2618,10 @@ function YAxesField({
|
|
|
4192
2618
|
});
|
|
4193
2619
|
const watchFieldArray = watch("y_axes");
|
|
4194
2620
|
const controlledFields = fields.map((field, index2) => {
|
|
4195
|
-
return
|
|
2621
|
+
return {
|
|
2622
|
+
...field,
|
|
2623
|
+
...watchFieldArray[index2]
|
|
2624
|
+
};
|
|
4196
2625
|
});
|
|
4197
2626
|
const addYAxis = () => append({
|
|
4198
2627
|
name: "",
|
|
@@ -4252,13 +2681,14 @@ function RegressionField({
|
|
|
4252
2681
|
control,
|
|
4253
2682
|
render: ({
|
|
4254
2683
|
field
|
|
4255
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
2684
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
4256
2685
|
label: "Name",
|
|
4257
2686
|
required: true,
|
|
4258
2687
|
sx: {
|
|
4259
2688
|
flex: 1
|
|
4260
|
-
}
|
|
4261
|
-
|
|
2689
|
+
},
|
|
2690
|
+
...field
|
|
2691
|
+
})
|
|
4262
2692
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
4263
2693
|
direction: "row",
|
|
4264
2694
|
grow: true,
|
|
@@ -4268,34 +2698,32 @@ function RegressionField({
|
|
|
4268
2698
|
control,
|
|
4269
2699
|
render: ({
|
|
4270
2700
|
field
|
|
4271
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
2701
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
4272
2702
|
label: "Value Field",
|
|
4273
2703
|
required: true,
|
|
4274
2704
|
data,
|
|
4275
2705
|
sx: {
|
|
4276
2706
|
flex: 1
|
|
4277
|
-
}
|
|
4278
|
-
|
|
2707
|
+
},
|
|
2708
|
+
...field
|
|
2709
|
+
})
|
|
4279
2710
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
4280
2711
|
name: `regressions.${index2}.plot.yAxisIndex`,
|
|
4281
2712
|
control,
|
|
4282
|
-
render: (
|
|
4283
|
-
|
|
4284
|
-
field: _b
|
|
4285
|
-
} = _a, _c = _b, {
|
|
2713
|
+
render: ({
|
|
2714
|
+
field: {
|
|
4286
2715
|
value,
|
|
4287
|
-
onChange
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
return /* @__PURE__ */ jsx(Select, __spreadProps(__spreadValues({
|
|
2716
|
+
onChange,
|
|
2717
|
+
...rest
|
|
2718
|
+
}
|
|
2719
|
+
}) => {
|
|
2720
|
+
var _a;
|
|
2721
|
+
return /* @__PURE__ */ jsx(Select, {
|
|
4294
2722
|
label: "Y Axis",
|
|
4295
2723
|
data: yAxisOptions,
|
|
4296
|
-
disabled: yAxisOptions.length === 0
|
|
4297
|
-
|
|
4298
|
-
value: (
|
|
2724
|
+
disabled: yAxisOptions.length === 0,
|
|
2725
|
+
...rest,
|
|
2726
|
+
value: (_a = value == null ? void 0 : value.toString()) != null ? _a : "",
|
|
4299
2727
|
onChange: (value2) => {
|
|
4300
2728
|
if (!value2) {
|
|
4301
2729
|
onChange(0);
|
|
@@ -4306,7 +2734,7 @@ function RegressionField({
|
|
|
4306
2734
|
sx: {
|
|
4307
2735
|
flex: 1
|
|
4308
2736
|
}
|
|
4309
|
-
})
|
|
2737
|
+
});
|
|
4310
2738
|
}
|
|
4311
2739
|
})]
|
|
4312
2740
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
@@ -4318,24 +2746,26 @@ function RegressionField({
|
|
|
4318
2746
|
control,
|
|
4319
2747
|
render: ({
|
|
4320
2748
|
field
|
|
4321
|
-
}) => /* @__PURE__ */ jsx(Select,
|
|
2749
|
+
}) => /* @__PURE__ */ jsx(Select, {
|
|
4322
2750
|
label: "Method",
|
|
4323
2751
|
data: regressionOptions,
|
|
4324
2752
|
sx: {
|
|
4325
2753
|
flex: 1
|
|
4326
|
-
}
|
|
4327
|
-
|
|
2754
|
+
},
|
|
2755
|
+
...field
|
|
2756
|
+
})
|
|
4328
2757
|
}), method === "polynomial" && /* @__PURE__ */ jsx(Controller, {
|
|
4329
2758
|
name: `regressions.${index2}.transform.config.order`,
|
|
4330
2759
|
control,
|
|
4331
2760
|
render: ({
|
|
4332
2761
|
field
|
|
4333
|
-
}) => /* @__PURE__ */ jsx(NumberInput,
|
|
2762
|
+
}) => /* @__PURE__ */ jsx(NumberInput, {
|
|
4334
2763
|
label: "Order",
|
|
4335
2764
|
sx: {
|
|
4336
2765
|
flex: 1
|
|
4337
|
-
}
|
|
4338
|
-
|
|
2766
|
+
},
|
|
2767
|
+
...field
|
|
2768
|
+
})
|
|
4339
2769
|
})]
|
|
4340
2770
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
4341
2771
|
direction: "column",
|
|
@@ -4349,7 +2779,9 @@ function RegressionField({
|
|
|
4349
2779
|
control,
|
|
4350
2780
|
render: ({
|
|
4351
2781
|
field
|
|
4352
|
-
}) => /* @__PURE__ */ jsx(MantineColorSelector,
|
|
2782
|
+
}) => /* @__PURE__ */ jsx(MantineColorSelector, {
|
|
2783
|
+
...field
|
|
2784
|
+
})
|
|
4353
2785
|
})]
|
|
4354
2786
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
4355
2787
|
color: "red",
|
|
@@ -4382,7 +2814,10 @@ function RegressionsField({
|
|
|
4382
2814
|
});
|
|
4383
2815
|
const watchFieldArray = watch("regressions");
|
|
4384
2816
|
const controlledFields = fields.map((field, index2) => {
|
|
4385
|
-
return
|
|
2817
|
+
return {
|
|
2818
|
+
...field,
|
|
2819
|
+
...watchFieldArray[index2]
|
|
2820
|
+
};
|
|
4386
2821
|
});
|
|
4387
2822
|
const yAxisOptions = React.useMemo(() => {
|
|
4388
2823
|
return getValues().y_axes.map(({
|
|
@@ -4671,19 +3106,17 @@ function getANewVariable() {
|
|
|
4671
3106
|
}
|
|
4672
3107
|
};
|
|
4673
3108
|
}
|
|
4674
|
-
const TemplateInput = React.forwardRef(function TemplateInput2(
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
|
|
4680
|
-
"onChange"
|
|
4681
|
-
]);
|
|
4682
|
-
return /* @__PURE__ */ jsx(TextInput, __spreadValues({
|
|
3109
|
+
const TemplateInput = React.forwardRef(function TemplateInput2({
|
|
3110
|
+
value,
|
|
3111
|
+
onChange,
|
|
3112
|
+
...rest
|
|
3113
|
+
}, ref) {
|
|
3114
|
+
return /* @__PURE__ */ jsx(TextInput, {
|
|
4683
3115
|
ref,
|
|
4684
3116
|
value,
|
|
4685
|
-
onChange
|
|
4686
|
-
|
|
3117
|
+
onChange,
|
|
3118
|
+
...rest
|
|
3119
|
+
});
|
|
4687
3120
|
});
|
|
4688
3121
|
function TemplateVariableField({
|
|
4689
3122
|
value,
|
|
@@ -4817,9 +3250,10 @@ function VariableField$1({
|
|
|
4817
3250
|
control,
|
|
4818
3251
|
render: ({
|
|
4819
3252
|
field
|
|
4820
|
-
}) => /* @__PURE__ */ jsx(TemplateVariableField,
|
|
4821
|
-
data
|
|
4822
|
-
|
|
3253
|
+
}) => /* @__PURE__ */ jsx(TemplateVariableField, {
|
|
3254
|
+
data,
|
|
3255
|
+
...field
|
|
3256
|
+
})
|
|
4823
3257
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
4824
3258
|
color: "red",
|
|
4825
3259
|
variant: "hover",
|
|
@@ -4851,7 +3285,10 @@ function StatsField({
|
|
|
4851
3285
|
watch("stats.templates");
|
|
4852
3286
|
const watchFieldArray = watch("stats.variables");
|
|
4853
3287
|
const controlledFields = fields.map((field, index2) => {
|
|
4854
|
-
return
|
|
3288
|
+
return {
|
|
3289
|
+
...field,
|
|
3290
|
+
...watchFieldArray[index2]
|
|
3291
|
+
};
|
|
4855
3292
|
});
|
|
4856
3293
|
const add = () => append(getANewVariable());
|
|
4857
3294
|
return /* @__PURE__ */ jsxs(Group, {
|
|
@@ -4867,25 +3304,27 @@ function StatsField({
|
|
|
4867
3304
|
control,
|
|
4868
3305
|
render: ({
|
|
4869
3306
|
field
|
|
4870
|
-
}) => /* @__PURE__ */ jsx(TemplateInput,
|
|
3307
|
+
}) => /* @__PURE__ */ jsx(TemplateInput, {
|
|
4871
3308
|
label: "Template for stats above the chart",
|
|
4872
3309
|
py: "md",
|
|
4873
3310
|
sx: {
|
|
4874
3311
|
flexGrow: 1
|
|
4875
|
-
}
|
|
4876
|
-
|
|
3312
|
+
},
|
|
3313
|
+
...field
|
|
3314
|
+
})
|
|
4877
3315
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
4878
3316
|
name: "stats.templates.bottom",
|
|
4879
3317
|
control,
|
|
4880
3318
|
render: ({
|
|
4881
3319
|
field
|
|
4882
|
-
}) => /* @__PURE__ */ jsx(TemplateInput,
|
|
3320
|
+
}) => /* @__PURE__ */ jsx(TemplateInput, {
|
|
4883
3321
|
label: "Template for stats under the chart",
|
|
4884
3322
|
py: "md",
|
|
4885
3323
|
sx: {
|
|
4886
3324
|
flexGrow: 1
|
|
4887
|
-
}
|
|
4888
|
-
|
|
3325
|
+
},
|
|
3326
|
+
...field
|
|
3327
|
+
})
|
|
4889
3328
|
})]
|
|
4890
3329
|
}), controlledFields.map((_variableItem, index2) => /* @__PURE__ */ jsx(VariableField$1, {
|
|
4891
3330
|
control,
|
|
@@ -4951,30 +3390,27 @@ function VizCartesianChartPanel({
|
|
|
4951
3390
|
setConf,
|
|
4952
3391
|
data
|
|
4953
3392
|
}) {
|
|
4954
|
-
const
|
|
3393
|
+
const {
|
|
4955
3394
|
series,
|
|
4956
|
-
y_axes
|
|
4957
|
-
|
|
4958
|
-
|
|
4959
|
-
"y_axes"
|
|
4960
|
-
]);
|
|
3395
|
+
y_axes,
|
|
3396
|
+
...restConf
|
|
3397
|
+
} = conf;
|
|
4961
3398
|
const defaultValues = React.useMemo(() => {
|
|
4962
|
-
const
|
|
3399
|
+
const {
|
|
4963
3400
|
x_axis_name = "",
|
|
4964
|
-
stats
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
|
|
4968
|
-
]);
|
|
4969
|
-
return __spreadValues({
|
|
3401
|
+
stats,
|
|
3402
|
+
...rest
|
|
3403
|
+
} = restConf;
|
|
3404
|
+
return {
|
|
4970
3405
|
series: withDefaults(series != null ? series : []),
|
|
4971
3406
|
x_axis_name,
|
|
4972
3407
|
y_axes: y_axes != null ? y_axes : [{
|
|
4973
3408
|
name: "Y Axis",
|
|
4974
3409
|
label_formatter: defaultNumbroFormat
|
|
4975
3410
|
}],
|
|
4976
|
-
stats: normalizeStats(stats)
|
|
4977
|
-
|
|
3411
|
+
stats: normalizeStats(stats),
|
|
3412
|
+
...rest
|
|
3413
|
+
};
|
|
4978
3414
|
}, [series, restConf]);
|
|
4979
3415
|
React.useEffect(() => {
|
|
4980
3416
|
const configMalformed = !_.isEqual(conf, defaultValues);
|
|
@@ -5040,25 +3476,27 @@ function VizCartesianChartPanel({
|
|
|
5040
3476
|
control,
|
|
5041
3477
|
render: ({
|
|
5042
3478
|
field
|
|
5043
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
3479
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5044
3480
|
label: "X Axis Data Field",
|
|
5045
3481
|
required: true,
|
|
5046
3482
|
data,
|
|
5047
3483
|
sx: {
|
|
5048
3484
|
flex: 1
|
|
5049
|
-
}
|
|
5050
|
-
|
|
3485
|
+
},
|
|
3486
|
+
...field
|
|
3487
|
+
})
|
|
5051
3488
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
5052
3489
|
name: "x_axis_name",
|
|
5053
3490
|
control,
|
|
5054
3491
|
render: ({
|
|
5055
3492
|
field
|
|
5056
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
3493
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
5057
3494
|
label: "X Axis Name",
|
|
5058
3495
|
sx: {
|
|
5059
3496
|
flex: 1
|
|
5060
|
-
}
|
|
5061
|
-
|
|
3497
|
+
},
|
|
3498
|
+
...field
|
|
3499
|
+
})
|
|
5062
3500
|
})]
|
|
5063
3501
|
})
|
|
5064
3502
|
}), /* @__PURE__ */ jsx(Accordion.Item, {
|
|
@@ -5144,15 +3582,17 @@ function VizPiePanel({
|
|
|
5144
3582
|
border: "1px solid #eee",
|
|
5145
3583
|
borderRadius: "5px"
|
|
5146
3584
|
},
|
|
5147
|
-
children: [/* @__PURE__ */ jsx(DataFieldSelector,
|
|
3585
|
+
children: [/* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5148
3586
|
label: "Label Field",
|
|
5149
3587
|
required: true,
|
|
5150
|
-
data
|
|
5151
|
-
|
|
3588
|
+
data,
|
|
3589
|
+
...form.getInputProps("label_field")
|
|
3590
|
+
}), /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5152
3591
|
label: "Value Field",
|
|
5153
3592
|
required: true,
|
|
5154
|
-
data
|
|
5155
|
-
|
|
3593
|
+
data,
|
|
3594
|
+
...form.getInputProps("value_field")
|
|
3595
|
+
})]
|
|
5156
3596
|
})]
|
|
5157
3597
|
})
|
|
5158
3598
|
});
|
|
@@ -5220,11 +3660,12 @@ function VizRichTextPanel({
|
|
|
5220
3660
|
control,
|
|
5221
3661
|
render: ({
|
|
5222
3662
|
field
|
|
5223
|
-
}) => /* @__PURE__ */ jsx(RichTextEditor,
|
|
3663
|
+
}) => /* @__PURE__ */ jsx(RichTextEditor, {
|
|
5224
3664
|
sx: {
|
|
5225
3665
|
flex: 1
|
|
5226
|
-
}
|
|
5227
|
-
|
|
3666
|
+
},
|
|
3667
|
+
...field
|
|
3668
|
+
})
|
|
5228
3669
|
})]
|
|
5229
3670
|
})
|
|
5230
3671
|
});
|
|
@@ -5286,9 +3727,10 @@ function VariableField({
|
|
|
5286
3727
|
control,
|
|
5287
3728
|
render: ({
|
|
5288
3729
|
field
|
|
5289
|
-
}) => /* @__PURE__ */ jsx(TemplateVariableField,
|
|
5290
|
-
data
|
|
5291
|
-
|
|
3730
|
+
}) => /* @__PURE__ */ jsx(TemplateVariableField, {
|
|
3731
|
+
data,
|
|
3732
|
+
...field
|
|
3733
|
+
})
|
|
5292
3734
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
5293
3735
|
color: "red",
|
|
5294
3736
|
variant: "hover",
|
|
@@ -5319,7 +3761,10 @@ function VariablesField({
|
|
|
5319
3761
|
});
|
|
5320
3762
|
const watchFieldArray = watch("variables");
|
|
5321
3763
|
const controlledFields = fields.map((field, index2) => {
|
|
5322
|
-
return
|
|
3764
|
+
return {
|
|
3765
|
+
...field,
|
|
3766
|
+
...watchFieldArray[index2]
|
|
3767
|
+
};
|
|
5323
3768
|
});
|
|
5324
3769
|
const add = () => append(getANewVariable());
|
|
5325
3770
|
return /* @__PURE__ */ jsxs(Group, {
|
|
@@ -5434,13 +3879,14 @@ function VizStatsPanel({
|
|
|
5434
3879
|
control,
|
|
5435
3880
|
render: ({
|
|
5436
3881
|
field
|
|
5437
|
-
}) => /* @__PURE__ */ jsx(TemplateInput,
|
|
3882
|
+
}) => /* @__PURE__ */ jsx(TemplateInput, {
|
|
5438
3883
|
label: "Template",
|
|
5439
3884
|
py: "md",
|
|
5440
3885
|
sx: {
|
|
5441
3886
|
flexGrow: 1
|
|
5442
|
-
}
|
|
5443
|
-
|
|
3887
|
+
},
|
|
3888
|
+
...field
|
|
3889
|
+
})
|
|
5444
3890
|
}), /* @__PURE__ */ jsx(Text, {
|
|
5445
3891
|
pb: "sm",
|
|
5446
3892
|
pt: "md",
|
|
@@ -5503,15 +3949,17 @@ function SunburstPanel({
|
|
|
5503
3949
|
border: "1px solid #eee",
|
|
5504
3950
|
borderRadius: "5px"
|
|
5505
3951
|
},
|
|
5506
|
-
children: [/* @__PURE__ */ jsx(DataFieldSelector,
|
|
3952
|
+
children: [/* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5507
3953
|
label: "Label Field",
|
|
5508
3954
|
required: true,
|
|
5509
|
-
data
|
|
5510
|
-
|
|
3955
|
+
data,
|
|
3956
|
+
...form.getInputProps("label_field")
|
|
3957
|
+
}), /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5511
3958
|
label: "Value Field",
|
|
5512
3959
|
required: true,
|
|
5513
|
-
data
|
|
5514
|
-
|
|
3960
|
+
data,
|
|
3961
|
+
...form.getInputProps("value_field")
|
|
3962
|
+
})]
|
|
5515
3963
|
})]
|
|
5516
3964
|
})
|
|
5517
3965
|
});
|
|
@@ -5534,19 +3982,16 @@ function ValueTypeSelector({
|
|
|
5534
3982
|
sx
|
|
5535
3983
|
});
|
|
5536
3984
|
}
|
|
5537
|
-
function VizTablePanel(
|
|
5538
|
-
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5543
|
-
|
|
5544
|
-
|
|
5545
|
-
setConf,
|
|
5546
|
-
data
|
|
5547
|
-
} = _d;
|
|
3985
|
+
function VizTablePanel({
|
|
3986
|
+
conf: {
|
|
3987
|
+
columns,
|
|
3988
|
+
...restConf
|
|
3989
|
+
},
|
|
3990
|
+
setConf,
|
|
3991
|
+
data
|
|
3992
|
+
}) {
|
|
5548
3993
|
const form = useForm$1({
|
|
5549
|
-
initialValues:
|
|
3994
|
+
initialValues: {
|
|
5550
3995
|
id_field: "id",
|
|
5551
3996
|
use_raw_columns: true,
|
|
5552
3997
|
columns: formList(columns != null ? columns : []),
|
|
@@ -5554,8 +3999,9 @@ function VizTablePanel(_c) {
|
|
|
5554
3999
|
horizontalSpacing: "sm",
|
|
5555
4000
|
verticalSpacing: "sm",
|
|
5556
4001
|
striped: false,
|
|
5557
|
-
highlightOnHover: false
|
|
5558
|
-
|
|
4002
|
+
highlightOnHover: false,
|
|
4003
|
+
...restConf
|
|
4004
|
+
}
|
|
5559
4005
|
});
|
|
5560
4006
|
const addColumn = () => form.addListItem("columns", {
|
|
5561
4007
|
label: randomId(),
|
|
@@ -5597,11 +4043,12 @@ function VizTablePanel(_c) {
|
|
|
5597
4043
|
border: "1px solid #eee",
|
|
5598
4044
|
borderRadius: "5px"
|
|
5599
4045
|
},
|
|
5600
|
-
children: [/* @__PURE__ */ jsx(DataFieldSelector,
|
|
4046
|
+
children: [/* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5601
4047
|
label: "ID Field",
|
|
5602
4048
|
required: true,
|
|
5603
|
-
data
|
|
5604
|
-
|
|
4049
|
+
data,
|
|
4050
|
+
...form.getInputProps("id_field")
|
|
4051
|
+
}), /* @__PURE__ */ jsxs(Group, {
|
|
5605
4052
|
position: "apart",
|
|
5606
4053
|
mb: "lg",
|
|
5607
4054
|
grow: true,
|
|
@@ -5610,21 +4057,23 @@ function VizTablePanel(_c) {
|
|
|
5610
4057
|
flexGrow: 1
|
|
5611
4058
|
}
|
|
5612
4059
|
},
|
|
5613
|
-
children: [/* @__PURE__ */ jsx(TextInput,
|
|
4060
|
+
children: [/* @__PURE__ */ jsx(TextInput, {
|
|
5614
4061
|
label: "Horizontal Spacing",
|
|
5615
4062
|
placeholder: "10px, 1em, 1rem, 100%...",
|
|
5616
4063
|
required: true,
|
|
5617
4064
|
sx: {
|
|
5618
4065
|
flex: 1
|
|
5619
|
-
}
|
|
5620
|
-
|
|
4066
|
+
},
|
|
4067
|
+
...form.getInputProps("horizontalSpacing")
|
|
4068
|
+
}), /* @__PURE__ */ jsx(TextInput, {
|
|
5621
4069
|
label: "Vertical Spacing",
|
|
5622
4070
|
placeholder: "10px, 1em, 1rem, 100%...",
|
|
5623
4071
|
required: true,
|
|
5624
4072
|
sx: {
|
|
5625
4073
|
flex: 1
|
|
5626
|
-
}
|
|
5627
|
-
|
|
4074
|
+
},
|
|
4075
|
+
...form.getInputProps("verticalSpacing")
|
|
4076
|
+
})]
|
|
5628
4077
|
}), /* @__PURE__ */ jsx(Group, {
|
|
5629
4078
|
position: "apart",
|
|
5630
4079
|
mb: "lg",
|
|
@@ -5634,14 +4083,15 @@ function VizTablePanel(_c) {
|
|
|
5634
4083
|
flexGrow: 1
|
|
5635
4084
|
}
|
|
5636
4085
|
},
|
|
5637
|
-
children: /* @__PURE__ */ jsx(TextInput,
|
|
4086
|
+
children: /* @__PURE__ */ jsx(TextInput, {
|
|
5638
4087
|
label: "Font Size",
|
|
5639
4088
|
placeholder: "10px, 1em, 1rem, 100%...",
|
|
5640
4089
|
required: true,
|
|
5641
4090
|
sx: {
|
|
5642
4091
|
flex: 1
|
|
5643
|
-
}
|
|
5644
|
-
|
|
4092
|
+
},
|
|
4093
|
+
...form.getInputProps("fontSize")
|
|
4094
|
+
})
|
|
5645
4095
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
5646
4096
|
direction: "column",
|
|
5647
4097
|
grow: true,
|
|
@@ -5650,15 +4100,17 @@ function VizTablePanel(_c) {
|
|
|
5650
4100
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
5651
4101
|
position: "apart",
|
|
5652
4102
|
grow: true,
|
|
5653
|
-
children: [/* @__PURE__ */ jsx(Switch,
|
|
5654
|
-
label: "Striped"
|
|
5655
|
-
|
|
5656
|
-
|
|
5657
|
-
|
|
5658
|
-
|
|
5659
|
-
|
|
5660
|
-
|
|
5661
|
-
|
|
4103
|
+
children: [/* @__PURE__ */ jsx(Switch, {
|
|
4104
|
+
label: "Striped",
|
|
4105
|
+
...form.getInputProps("striped", {
|
|
4106
|
+
type: "checkbox"
|
|
4107
|
+
})
|
|
4108
|
+
}), /* @__PURE__ */ jsx(Switch, {
|
|
4109
|
+
label: "Highlight on hover",
|
|
4110
|
+
...form.getInputProps("highlightOnHover", {
|
|
4111
|
+
type: "checkbox"
|
|
4112
|
+
})
|
|
4113
|
+
})]
|
|
5662
4114
|
})]
|
|
5663
4115
|
})]
|
|
5664
4116
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
@@ -5672,11 +4124,12 @@ function VizTablePanel(_c) {
|
|
|
5672
4124
|
border: "1px solid #eee",
|
|
5673
4125
|
borderRadius: "5px"
|
|
5674
4126
|
},
|
|
5675
|
-
children: [/* @__PURE__ */ jsx(Switch,
|
|
5676
|
-
label: "Use Original Data Columns"
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
|
|
4127
|
+
children: [/* @__PURE__ */ jsx(Switch, {
|
|
4128
|
+
label: "Use Original Data Columns",
|
|
4129
|
+
...form.getInputProps("use_raw_columns", {
|
|
4130
|
+
type: "checkbox"
|
|
4131
|
+
})
|
|
4132
|
+
}), !form.values.use_raw_columns && /* @__PURE__ */ jsxs(Group, {
|
|
5680
4133
|
direction: "column",
|
|
5681
4134
|
grow: true,
|
|
5682
4135
|
children: [/* @__PURE__ */ jsx(Text, {
|
|
@@ -5696,22 +4149,25 @@ function VizTablePanel(_c) {
|
|
|
5696
4149
|
children: [/* @__PURE__ */ jsxs(Group, {
|
|
5697
4150
|
position: "apart",
|
|
5698
4151
|
grow: true,
|
|
5699
|
-
children: [/* @__PURE__ */ jsx(TextInput,
|
|
4152
|
+
children: [/* @__PURE__ */ jsx(TextInput, {
|
|
5700
4153
|
label: "Label",
|
|
5701
4154
|
required: true,
|
|
5702
4155
|
sx: {
|
|
5703
4156
|
flex: 1
|
|
5704
|
-
}
|
|
5705
|
-
|
|
4157
|
+
},
|
|
4158
|
+
...form.getListInputProps("columns", index2, "label")
|
|
4159
|
+
}), /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5706
4160
|
label: "Value Field",
|
|
5707
4161
|
required: true,
|
|
5708
|
-
data
|
|
5709
|
-
|
|
4162
|
+
data,
|
|
4163
|
+
...form.getListInputProps("columns", index2, "value_field")
|
|
4164
|
+
}), /* @__PURE__ */ jsx(ValueTypeSelector, {
|
|
5710
4165
|
label: "Value Type",
|
|
5711
4166
|
sx: {
|
|
5712
4167
|
flex: 1
|
|
5713
|
-
}
|
|
5714
|
-
|
|
4168
|
+
},
|
|
4169
|
+
...form.getListInputProps("columns", index2, "value_type")
|
|
4170
|
+
})]
|
|
5715
4171
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
5716
4172
|
color: "red",
|
|
5717
4173
|
variant: "hover",
|
|
@@ -5770,9 +4226,10 @@ function VizTextPanel({
|
|
|
5770
4226
|
paragraphs: formList((_a = conf.paragraphs) != null ? _a : sampleParagraphs)
|
|
5771
4227
|
}
|
|
5772
4228
|
});
|
|
5773
|
-
const addParagraph = () => form.addListItem("paragraphs",
|
|
4229
|
+
const addParagraph = () => form.addListItem("paragraphs", {
|
|
4230
|
+
...sampleParagraphs[0],
|
|
5774
4231
|
template: randomId()
|
|
5775
|
-
})
|
|
4232
|
+
});
|
|
5776
4233
|
return /* @__PURE__ */ jsx(Group, {
|
|
5777
4234
|
direction: "column",
|
|
5778
4235
|
mt: "md",
|
|
@@ -5813,29 +4270,33 @@ function VizTextPanel({
|
|
|
5813
4270
|
border: "1px solid #eee",
|
|
5814
4271
|
position: "relative"
|
|
5815
4272
|
},
|
|
5816
|
-
children: [/* @__PURE__ */ jsx(TextInput,
|
|
4273
|
+
children: [/* @__PURE__ */ jsx(TextInput, {
|
|
5817
4274
|
placeholder: "Time: ${new Date().toISOString()}",
|
|
5818
4275
|
label: "Content Template",
|
|
5819
4276
|
required: true,
|
|
5820
4277
|
sx: {
|
|
5821
4278
|
flex: 1
|
|
5822
|
-
}
|
|
5823
|
-
|
|
4279
|
+
},
|
|
4280
|
+
...form.getListInputProps("paragraphs", index2, "template")
|
|
4281
|
+
}), /* @__PURE__ */ jsxs(Group, {
|
|
5824
4282
|
direction: "column",
|
|
5825
4283
|
grow: true,
|
|
5826
4284
|
children: [/* @__PURE__ */ jsx(Text, {
|
|
5827
4285
|
children: "Color"
|
|
5828
|
-
}), /* @__PURE__ */ jsx(MantineColorSelector,
|
|
4286
|
+
}), /* @__PURE__ */ jsx(MantineColorSelector, {
|
|
4287
|
+
...form.getListInputProps("paragraphs", index2, "color")
|
|
4288
|
+
})]
|
|
5829
4289
|
}), /* @__PURE__ */ jsx(Group, {
|
|
5830
4290
|
direction: "column",
|
|
5831
4291
|
grow: true,
|
|
5832
|
-
children: /* @__PURE__ */ jsx(TextInput,
|
|
4292
|
+
children: /* @__PURE__ */ jsx(TextInput, {
|
|
5833
4293
|
label: "Font Size",
|
|
5834
4294
|
placeholder: "10px, 1em, 1rem, 100%...",
|
|
5835
4295
|
sx: {
|
|
5836
4296
|
flex: 1
|
|
5837
|
-
}
|
|
5838
|
-
|
|
4297
|
+
},
|
|
4298
|
+
...form.getListInputProps("paragraphs", index2, "size")
|
|
4299
|
+
})
|
|
5839
4300
|
}), /* @__PURE__ */ jsx(Group, {
|
|
5840
4301
|
position: "apart",
|
|
5841
4302
|
grow: true,
|
|
@@ -5845,9 +4306,10 @@ function VizTextPanel({
|
|
|
5845
4306
|
maxWidth: "100%"
|
|
5846
4307
|
}
|
|
5847
4308
|
},
|
|
5848
|
-
children: /* @__PURE__ */ jsx(MantineFontWeightSlider,
|
|
5849
|
-
label: "Font Weight"
|
|
5850
|
-
|
|
4309
|
+
children: /* @__PURE__ */ jsx(MantineFontWeightSlider, {
|
|
4310
|
+
label: "Font Weight",
|
|
4311
|
+
...form.getListInputProps("paragraphs", index2, "weight")
|
|
4312
|
+
})
|
|
5851
4313
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
5852
4314
|
color: "red",
|
|
5853
4315
|
variant: "hover",
|
|
@@ -5927,12 +4389,14 @@ function EditVizConf() {
|
|
|
5927
4389
|
if (!changed) {
|
|
5928
4390
|
return;
|
|
5929
4391
|
}
|
|
5930
|
-
setViz((v) =>
|
|
4392
|
+
setViz((v) => ({
|
|
4393
|
+
...v,
|
|
5931
4394
|
type
|
|
5932
4395
|
}));
|
|
5933
4396
|
}, [changed, type]);
|
|
5934
4397
|
const setVizConf = (conf) => {
|
|
5935
|
-
setViz((v) =>
|
|
4398
|
+
setViz((v) => ({
|
|
4399
|
+
...v,
|
|
5936
4400
|
conf
|
|
5937
4401
|
}));
|
|
5938
4402
|
};
|
|
@@ -6247,15 +4711,14 @@ function DashboardLayout({
|
|
|
6247
4711
|
}) {
|
|
6248
4712
|
const onLayoutChange = React.useCallback((currentLayout) => {
|
|
6249
4713
|
const m2 = /* @__PURE__ */ new Map();
|
|
6250
|
-
currentLayout.forEach((
|
|
6251
|
-
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
"i"
|
|
6255
|
-
]);
|
|
4714
|
+
currentLayout.forEach(({
|
|
4715
|
+
i,
|
|
4716
|
+
...rest
|
|
4717
|
+
}) => {
|
|
6256
4718
|
m2.set(i, rest);
|
|
6257
4719
|
});
|
|
6258
|
-
const newPanels = panels.map((p2) =>
|
|
4720
|
+
const newPanels = panels.map((p2) => ({
|
|
4721
|
+
...p2,
|
|
6259
4722
|
layout: m2.get(p2.id)
|
|
6260
4723
|
}));
|
|
6261
4724
|
setPanels(newPanels);
|
|
@@ -6266,24 +4729,22 @@ function DashboardLayout({
|
|
|
6266
4729
|
rowHeight,
|
|
6267
4730
|
isDraggable,
|
|
6268
4731
|
isResizable,
|
|
6269
|
-
children: panels.map((
|
|
6270
|
-
|
|
6271
|
-
|
|
6272
|
-
|
|
6273
|
-
"id"
|
|
6274
|
-
]);
|
|
4732
|
+
children: panels.map(({
|
|
4733
|
+
id,
|
|
4734
|
+
...rest
|
|
4735
|
+
}, index2) => {
|
|
6275
4736
|
return /* @__PURE__ */ jsx("div", {
|
|
6276
4737
|
"data-grid": rest.layout,
|
|
6277
|
-
children: /* @__PURE__ */ jsx(Panel,
|
|
6278
|
-
id
|
|
6279
|
-
|
|
4738
|
+
children: /* @__PURE__ */ jsx(Panel, {
|
|
4739
|
+
id,
|
|
4740
|
+
...rest,
|
|
6280
4741
|
update: (panel) => {
|
|
6281
4742
|
setPanels((prevs) => {
|
|
6282
4743
|
prevs.splice(index2, 1, panel);
|
|
6283
4744
|
return [...prevs];
|
|
6284
4745
|
});
|
|
6285
4746
|
}
|
|
6286
|
-
})
|
|
4747
|
+
})
|
|
6287
4748
|
}, id);
|
|
6288
4749
|
})
|
|
6289
4750
|
});
|
|
@@ -6508,39 +4969,42 @@ function QueryForm({
|
|
|
6508
4969
|
pr: 40,
|
|
6509
4970
|
children: [/* @__PURE__ */ jsxs(Group, {
|
|
6510
4971
|
grow: true,
|
|
6511
|
-
children: [/* @__PURE__ */ jsx(TextInput,
|
|
4972
|
+
children: [/* @__PURE__ */ jsx(TextInput, {
|
|
6512
4973
|
placeholder: "An ID unique in this dashboard",
|
|
6513
4974
|
label: "ID",
|
|
6514
4975
|
required: true,
|
|
6515
4976
|
sx: {
|
|
6516
4977
|
flex: 1
|
|
6517
4978
|
},
|
|
6518
|
-
disabled: loading
|
|
6519
|
-
|
|
4979
|
+
disabled: loading,
|
|
4980
|
+
...form.getInputProps("id")
|
|
4981
|
+
}), /* @__PURE__ */ jsx(Select, {
|
|
6520
4982
|
label: "Data Source Type",
|
|
6521
4983
|
data: querySourceTypeOptions,
|
|
6522
4984
|
sx: {
|
|
6523
4985
|
flex: 1
|
|
6524
4986
|
},
|
|
6525
|
-
disabled: loading
|
|
6526
|
-
|
|
4987
|
+
disabled: loading,
|
|
4988
|
+
...form.getInputProps("type")
|
|
4989
|
+
}), /* @__PURE__ */ jsx(Select, {
|
|
6527
4990
|
label: "Data Source Key",
|
|
6528
4991
|
data: querySourceKeyOptions,
|
|
6529
4992
|
sx: {
|
|
6530
4993
|
flex: 1
|
|
6531
4994
|
},
|
|
6532
|
-
disabled: loading
|
|
6533
|
-
|
|
4995
|
+
disabled: loading,
|
|
4996
|
+
...form.getInputProps("key")
|
|
4997
|
+
})]
|
|
6534
4998
|
}), /* @__PURE__ */ jsxs(Tabs, {
|
|
6535
4999
|
children: [/* @__PURE__ */ jsx(Tabs.Tab, {
|
|
6536
5000
|
label: "SQL",
|
|
6537
|
-
children: /* @__PURE__ */ jsx(Textarea,
|
|
5001
|
+
children: /* @__PURE__ */ jsx(Textarea, {
|
|
6538
5002
|
autosize: true,
|
|
6539
5003
|
minRows: 12,
|
|
6540
|
-
maxRows: 24
|
|
6541
|
-
|
|
5004
|
+
maxRows: 24,
|
|
5005
|
+
...form.getInputProps("sql"),
|
|
6542
5006
|
className: "code-textarea"
|
|
6543
|
-
})
|
|
5007
|
+
})
|
|
6544
5008
|
}), /* @__PURE__ */ jsx(Tabs.Tab, {
|
|
6545
5009
|
label: "Preview",
|
|
6546
5010
|
children: /* @__PURE__ */ jsx(PreviewSQL, {
|
|
@@ -6857,16 +5321,17 @@ function SQLSnippetsEditor({}) {
|
|
|
6857
5321
|
border: "1px solid #eee",
|
|
6858
5322
|
position: "relative"
|
|
6859
5323
|
},
|
|
6860
|
-
children: [/* @__PURE__ */ jsx(TextInput,
|
|
5324
|
+
children: [/* @__PURE__ */ jsx(TextInput, {
|
|
6861
5325
|
label: "Key",
|
|
6862
|
-
required: true
|
|
6863
|
-
|
|
5326
|
+
required: true,
|
|
5327
|
+
...form.getListInputProps("snippets", index2, "key")
|
|
5328
|
+
}), /* @__PURE__ */ jsx(Textarea, {
|
|
6864
5329
|
minRows: 3,
|
|
6865
5330
|
label: "Value",
|
|
6866
|
-
required: true
|
|
6867
|
-
|
|
5331
|
+
required: true,
|
|
5332
|
+
...form.getListInputProps("snippets", index2, "value"),
|
|
6868
5333
|
className: "code-textarea"
|
|
6869
|
-
})
|
|
5334
|
+
}), /* @__PURE__ */ jsx(PreviewSnippet, {
|
|
6870
5335
|
value: form.values.snippets[index2].value
|
|
6871
5336
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
6872
5337
|
color: "red",
|
|
@@ -7176,7 +5641,9 @@ function FullScreenPanel({
|
|
|
7176
5641
|
flexGrow: 1,
|
|
7177
5642
|
flexShrink: 0
|
|
7178
5643
|
},
|
|
7179
|
-
children: /* @__PURE__ */ jsx(Panel,
|
|
5644
|
+
children: /* @__PURE__ */ jsx(Panel, {
|
|
5645
|
+
...panel
|
|
5646
|
+
})
|
|
7180
5647
|
})]
|
|
7181
5648
|
});
|
|
7182
5649
|
}
|
|
@@ -7226,13 +5693,14 @@ function Dashboard({
|
|
|
7226
5693
|
return !_.isEqual(queries, dashboard.definition.queries);
|
|
7227
5694
|
}, [dashboard, panels, sqlSnippets, queries]);
|
|
7228
5695
|
const saveDashboardChanges = async () => {
|
|
7229
|
-
const d =
|
|
5696
|
+
const d = {
|
|
5697
|
+
...dashboard,
|
|
7230
5698
|
panels,
|
|
7231
5699
|
definition: {
|
|
7232
5700
|
sqlSnippets,
|
|
7233
5701
|
queries
|
|
7234
5702
|
}
|
|
7235
|
-
}
|
|
5703
|
+
};
|
|
7236
5704
|
await update(d);
|
|
7237
5705
|
};
|
|
7238
5706
|
const revertDashboardChanges = () => {
|
|
@@ -7266,13 +5734,15 @@ function Dashboard({
|
|
|
7266
5734
|
if (!panel) {
|
|
7267
5735
|
throw new Error(`[duplicate panel] Can't find a panel by id[${id}]`);
|
|
7268
5736
|
}
|
|
7269
|
-
const newPanel =
|
|
5737
|
+
const newPanel = {
|
|
5738
|
+
...panel,
|
|
7270
5739
|
id: randomId(),
|
|
7271
|
-
layout:
|
|
5740
|
+
layout: {
|
|
5741
|
+
...panel.layout,
|
|
7272
5742
|
x: 0,
|
|
7273
5743
|
y: Infinity
|
|
7274
|
-
}
|
|
7275
|
-
}
|
|
5744
|
+
}
|
|
5745
|
+
};
|
|
7276
5746
|
setPanels((prevs) => [...prevs, newPanel]);
|
|
7277
5747
|
} catch (error) {
|
|
7278
5748
|
console.error(error);
|
|
@@ -7371,17 +5841,16 @@ function ReadOnlyDashboardLayout({
|
|
|
7371
5841
|
rowHeight,
|
|
7372
5842
|
isDraggable: false,
|
|
7373
5843
|
isResizable: false,
|
|
7374
|
-
children: panels.map((
|
|
7375
|
-
|
|
7376
|
-
|
|
7377
|
-
|
|
7378
|
-
"id"
|
|
7379
|
-
]);
|
|
5844
|
+
children: panels.map(({
|
|
5845
|
+
id,
|
|
5846
|
+
...rest
|
|
5847
|
+
}) => {
|
|
7380
5848
|
return /* @__PURE__ */ jsx("div", {
|
|
7381
5849
|
"data-grid": rest.layout,
|
|
7382
|
-
children: /* @__PURE__ */ jsx(Panel,
|
|
7383
|
-
id
|
|
7384
|
-
|
|
5850
|
+
children: /* @__PURE__ */ jsx(Panel, {
|
|
5851
|
+
id,
|
|
5852
|
+
...rest
|
|
5853
|
+
})
|
|
7385
5854
|
}, id);
|
|
7386
5855
|
})
|
|
7387
5856
|
});
|
|
@@ -7395,7 +5864,8 @@ function ReadOnlyDashboard({
|
|
|
7395
5864
|
if (APIClient.baseURL !== config.apiBaseURL) {
|
|
7396
5865
|
APIClient.baseURL = config.apiBaseURL;
|
|
7397
5866
|
}
|
|
7398
|
-
const definition = React.useMemo(() =>
|
|
5867
|
+
const definition = React.useMemo(() => ({
|
|
5868
|
+
...dashboard.definition,
|
|
7399
5869
|
setSQLSnippets: () => {
|
|
7400
5870
|
},
|
|
7401
5871
|
setQueries: () => {
|