@devtable/dashboard 1.29.0 → 1.32.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
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,240 +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
|
-
};
|
|
538
|
-
const DashboardActionContext = React.createContext(initialContext$1);
|
|
539
|
-
const initialContext = {
|
|
540
|
-
sqlSnippets: [],
|
|
541
|
-
setSQLSnippets: () => {
|
|
542
|
-
},
|
|
543
|
-
queries: [],
|
|
544
|
-
setQueries: () => {
|
|
545
|
-
}
|
|
546
|
-
};
|
|
547
|
-
const DefinitionContext = React.createContext(initialContext);
|
|
548
215
|
function DescriptionPopover({
|
|
549
216
|
position = "bottom",
|
|
550
217
|
trigger = "hover"
|
|
@@ -958,13 +625,11 @@ function Sunbrust({
|
|
|
958
625
|
width,
|
|
959
626
|
height
|
|
960
627
|
}) {
|
|
961
|
-
const
|
|
628
|
+
const {
|
|
962
629
|
label_field = "name",
|
|
963
|
-
value_field = "value"
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
"value_field"
|
|
967
|
-
]);
|
|
630
|
+
value_field = "value",
|
|
631
|
+
...restConf
|
|
632
|
+
} = conf;
|
|
968
633
|
const chartData = React.useMemo(() => {
|
|
969
634
|
return data.map((d) => ({
|
|
970
635
|
name: d[label_field],
|
|
@@ -972,8 +637,8 @@ function Sunbrust({
|
|
|
972
637
|
}));
|
|
973
638
|
}, [data, label_field, value_field]);
|
|
974
639
|
const max = React.useMemo(() => {
|
|
975
|
-
var
|
|
976
|
-
return (_b = (
|
|
640
|
+
var _a, _b;
|
|
641
|
+
return (_b = (_a = _.maxBy(chartData, (d) => d.value)) == null ? void 0 : _a.value) != null ? _b : 1;
|
|
977
642
|
}, [chartData]);
|
|
978
643
|
const labelOption = React.useMemo(() => ({
|
|
979
644
|
series: {
|
|
@@ -1004,1269 +669,6 @@ function Sunbrust({
|
|
|
1004
669
|
}
|
|
1005
670
|
});
|
|
1006
671
|
}
|
|
1007
|
-
var ecStat = { exports: {} };
|
|
1008
|
-
(function(module, exports) {
|
|
1009
|
-
(function webpackUniversalModuleDefinition(root, factory) {
|
|
1010
|
-
module.exports = factory();
|
|
1011
|
-
})(commonjsGlobal, function() {
|
|
1012
|
-
return function(modules) {
|
|
1013
|
-
var installedModules = {};
|
|
1014
|
-
function __webpack_require__(moduleId) {
|
|
1015
|
-
if (installedModules[moduleId])
|
|
1016
|
-
return installedModules[moduleId].exports;
|
|
1017
|
-
var module2 = installedModules[moduleId] = {
|
|
1018
|
-
exports: {},
|
|
1019
|
-
id: moduleId,
|
|
1020
|
-
loaded: false
|
|
1021
|
-
};
|
|
1022
|
-
modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);
|
|
1023
|
-
module2.loaded = true;
|
|
1024
|
-
return module2.exports;
|
|
1025
|
-
}
|
|
1026
|
-
__webpack_require__.m = modules;
|
|
1027
|
-
__webpack_require__.c = installedModules;
|
|
1028
|
-
__webpack_require__.p = "";
|
|
1029
|
-
return __webpack_require__(0);
|
|
1030
|
-
}([
|
|
1031
|
-
function(module2, exports2, __webpack_require__) {
|
|
1032
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1033
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1034
|
-
return {
|
|
1035
|
-
clustering: __webpack_require__(1),
|
|
1036
|
-
regression: __webpack_require__(5),
|
|
1037
|
-
statistics: __webpack_require__(6),
|
|
1038
|
-
histogram: __webpack_require__(15),
|
|
1039
|
-
transform: {
|
|
1040
|
-
regression: __webpack_require__(18),
|
|
1041
|
-
histogram: __webpack_require__(21),
|
|
1042
|
-
clustering: __webpack_require__(22)
|
|
1043
|
-
}
|
|
1044
|
-
};
|
|
1045
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1046
|
-
},
|
|
1047
|
-
function(module2, exports2, __webpack_require__) {
|
|
1048
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1049
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1050
|
-
var dataProcess = __webpack_require__(2);
|
|
1051
|
-
var dataPreprocess = dataProcess.dataPreprocess;
|
|
1052
|
-
var normalizeDimensions = dataProcess.normalizeDimensions;
|
|
1053
|
-
var arrayUtil = __webpack_require__(3);
|
|
1054
|
-
var numberUtil = __webpack_require__(4);
|
|
1055
|
-
var arraySize = arrayUtil.size;
|
|
1056
|
-
var sumOfColumn = arrayUtil.sumOfColumn;
|
|
1057
|
-
var arraySum = arrayUtil.sum;
|
|
1058
|
-
var zeros = arrayUtil.zeros;
|
|
1059
|
-
var numberUtil = __webpack_require__(4);
|
|
1060
|
-
var isNumber = numberUtil.isNumber;
|
|
1061
|
-
var mathPow = Math.pow;
|
|
1062
|
-
var OutputType = {
|
|
1063
|
-
SINGLE: "single",
|
|
1064
|
-
MULTIPLE: "multiple"
|
|
1065
|
-
};
|
|
1066
|
-
function kMeans(data, k2, dataMeta) {
|
|
1067
|
-
var clusterAssigned = zeros(data.length, 2);
|
|
1068
|
-
var centroids = createRandCent(k2, calcExtents(data, dataMeta.dimensions));
|
|
1069
|
-
var clusterChanged = true;
|
|
1070
|
-
var minDist;
|
|
1071
|
-
var minIndex;
|
|
1072
|
-
var distIJ;
|
|
1073
|
-
var ptsInClust;
|
|
1074
|
-
while (clusterChanged) {
|
|
1075
|
-
clusterChanged = false;
|
|
1076
|
-
for (var i = 0; i < data.length; i++) {
|
|
1077
|
-
minDist = Infinity;
|
|
1078
|
-
minIndex = -1;
|
|
1079
|
-
for (var j = 0; j < k2; j++) {
|
|
1080
|
-
distIJ = distEuclid(data[i], centroids[j], dataMeta);
|
|
1081
|
-
if (distIJ < minDist) {
|
|
1082
|
-
minDist = distIJ;
|
|
1083
|
-
minIndex = j;
|
|
1084
|
-
}
|
|
1085
|
-
}
|
|
1086
|
-
if (clusterAssigned[i][0] !== minIndex) {
|
|
1087
|
-
clusterChanged = true;
|
|
1088
|
-
}
|
|
1089
|
-
clusterAssigned[i][0] = minIndex;
|
|
1090
|
-
clusterAssigned[i][1] = minDist;
|
|
1091
|
-
}
|
|
1092
|
-
for (var i = 0; i < k2; i++) {
|
|
1093
|
-
ptsInClust = [];
|
|
1094
|
-
for (var j = 0; j < clusterAssigned.length; j++) {
|
|
1095
|
-
if (clusterAssigned[j][0] === i) {
|
|
1096
|
-
ptsInClust.push(data[j]);
|
|
1097
|
-
}
|
|
1098
|
-
}
|
|
1099
|
-
centroids[i] = meanInColumns(ptsInClust, dataMeta);
|
|
1100
|
-
}
|
|
1101
|
-
}
|
|
1102
|
-
var clusterWithKmeans = {
|
|
1103
|
-
centroids,
|
|
1104
|
-
clusterAssigned
|
|
1105
|
-
};
|
|
1106
|
-
return clusterWithKmeans;
|
|
1107
|
-
}
|
|
1108
|
-
function meanInColumns(dataList, dataMeta) {
|
|
1109
|
-
var meanArray = [];
|
|
1110
|
-
var sum;
|
|
1111
|
-
var mean;
|
|
1112
|
-
for (var j = 0; j < dataMeta.dimensions.length; j++) {
|
|
1113
|
-
var dimIdx = dataMeta.dimensions[j];
|
|
1114
|
-
sum = 0;
|
|
1115
|
-
for (var i = 0; i < dataList.length; i++) {
|
|
1116
|
-
sum += dataList[i][dimIdx];
|
|
1117
|
-
}
|
|
1118
|
-
mean = sum / dataList.length;
|
|
1119
|
-
meanArray.push(mean);
|
|
1120
|
-
}
|
|
1121
|
-
return meanArray;
|
|
1122
|
-
}
|
|
1123
|
-
function hierarchicalKMeans(data, clusterCountOrConfig, stepByStep) {
|
|
1124
|
-
var config = (isNumber(clusterCountOrConfig) ? { clusterCount: clusterCountOrConfig, stepByStep } : clusterCountOrConfig) || { clusterCount: 2 };
|
|
1125
|
-
var k2 = config.clusterCount;
|
|
1126
|
-
if (k2 < 2) {
|
|
1127
|
-
return;
|
|
1128
|
-
}
|
|
1129
|
-
var dataMeta = parseDataMeta(data, config);
|
|
1130
|
-
var isOutputTypeSingle = dataMeta.outputType === OutputType.SINGLE;
|
|
1131
|
-
var dataSet = dataPreprocess(data, { dimensions: dataMeta.dimensions });
|
|
1132
|
-
var clusterAssment = zeros(dataSet.length, 2);
|
|
1133
|
-
var outputSingleData;
|
|
1134
|
-
var setClusterIndex;
|
|
1135
|
-
var getClusterIndex;
|
|
1136
|
-
function setDistance(dataIndex, dist2) {
|
|
1137
|
-
clusterAssment[dataIndex][1] = dist2;
|
|
1138
|
-
}
|
|
1139
|
-
function getDistance(dataIndex) {
|
|
1140
|
-
return clusterAssment[dataIndex][1];
|
|
1141
|
-
}
|
|
1142
|
-
if (isOutputTypeSingle) {
|
|
1143
|
-
outputSingleData = [];
|
|
1144
|
-
var outputClusterIndexDimension = dataMeta.outputClusterIndexDimension;
|
|
1145
|
-
setClusterIndex = function(dataIndex, clusterIndex) {
|
|
1146
|
-
outputSingleData[dataIndex][outputClusterIndexDimension] = clusterIndex;
|
|
1147
|
-
};
|
|
1148
|
-
getClusterIndex = function(dataIndex) {
|
|
1149
|
-
return outputSingleData[dataIndex][outputClusterIndexDimension];
|
|
1150
|
-
};
|
|
1151
|
-
for (var i = 0; i < dataSet.length; i++) {
|
|
1152
|
-
outputSingleData.push(dataSet[i].slice());
|
|
1153
|
-
setDistance(i, 0);
|
|
1154
|
-
setClusterIndex(i, 0);
|
|
1155
|
-
}
|
|
1156
|
-
} else {
|
|
1157
|
-
setClusterIndex = function(dataIndex, clusterIndex) {
|
|
1158
|
-
clusterAssment[dataIndex][0] = clusterIndex;
|
|
1159
|
-
};
|
|
1160
|
-
getClusterIndex = function(dataIndex) {
|
|
1161
|
-
return clusterAssment[dataIndex][0];
|
|
1162
|
-
};
|
|
1163
|
-
}
|
|
1164
|
-
var centroid0 = meanInColumns(dataSet, dataMeta);
|
|
1165
|
-
var centList = [centroid0];
|
|
1166
|
-
for (var i = 0; i < dataSet.length; i++) {
|
|
1167
|
-
var dist = distEuclid(dataSet[i], centroid0, dataMeta);
|
|
1168
|
-
setDistance(i, dist);
|
|
1169
|
-
}
|
|
1170
|
-
var lowestSSE;
|
|
1171
|
-
var ptsInClust;
|
|
1172
|
-
var ptsNotClust;
|
|
1173
|
-
var clusterInfo;
|
|
1174
|
-
var sseSplit;
|
|
1175
|
-
var sseNotSplit;
|
|
1176
|
-
var index2 = 1;
|
|
1177
|
-
var result = {
|
|
1178
|
-
data: outputSingleData,
|
|
1179
|
-
centroids: centList,
|
|
1180
|
-
isEnd: false
|
|
1181
|
-
};
|
|
1182
|
-
if (!isOutputTypeSingle) {
|
|
1183
|
-
result.clusterAssment = clusterAssment;
|
|
1184
|
-
}
|
|
1185
|
-
function oneStep() {
|
|
1186
|
-
if (index2 < k2) {
|
|
1187
|
-
lowestSSE = Infinity;
|
|
1188
|
-
var centSplit;
|
|
1189
|
-
var newCentroid;
|
|
1190
|
-
var newClusterAss;
|
|
1191
|
-
for (var j = 0; j < centList.length; j++) {
|
|
1192
|
-
ptsInClust = [];
|
|
1193
|
-
ptsNotClust = [];
|
|
1194
|
-
for (var i2 = 0; i2 < dataSet.length; i2++) {
|
|
1195
|
-
if (getClusterIndex(i2) === j) {
|
|
1196
|
-
ptsInClust.push(dataSet[i2]);
|
|
1197
|
-
} else {
|
|
1198
|
-
ptsNotClust.push(getDistance(i2));
|
|
1199
|
-
}
|
|
1200
|
-
}
|
|
1201
|
-
clusterInfo = kMeans(ptsInClust, 2, dataMeta);
|
|
1202
|
-
sseSplit = sumOfColumn(clusterInfo.clusterAssigned, 1);
|
|
1203
|
-
sseNotSplit = arraySum(ptsNotClust);
|
|
1204
|
-
if (sseSplit + sseNotSplit < lowestSSE) {
|
|
1205
|
-
lowestSSE = sseNotSplit + sseSplit;
|
|
1206
|
-
centSplit = j;
|
|
1207
|
-
newCentroid = clusterInfo.centroids;
|
|
1208
|
-
newClusterAss = clusterInfo.clusterAssigned;
|
|
1209
|
-
}
|
|
1210
|
-
}
|
|
1211
|
-
for (var i2 = 0; i2 < newClusterAss.length; i2++) {
|
|
1212
|
-
if (newClusterAss[i2][0] === 0) {
|
|
1213
|
-
newClusterAss[i2][0] = centSplit;
|
|
1214
|
-
} else if (newClusterAss[i2][0] === 1) {
|
|
1215
|
-
newClusterAss[i2][0] = centList.length;
|
|
1216
|
-
}
|
|
1217
|
-
}
|
|
1218
|
-
centList[centSplit] = newCentroid[0];
|
|
1219
|
-
centList.push(newCentroid[1]);
|
|
1220
|
-
for (var i2 = 0, j = 0; i2 < dataSet.length && j < newClusterAss.length; i2++) {
|
|
1221
|
-
if (getClusterIndex(i2) === centSplit) {
|
|
1222
|
-
setClusterIndex(i2, newClusterAss[j][0]);
|
|
1223
|
-
setDistance(i2, newClusterAss[j++][1]);
|
|
1224
|
-
}
|
|
1225
|
-
}
|
|
1226
|
-
var pointInClust = [];
|
|
1227
|
-
if (!isOutputTypeSingle) {
|
|
1228
|
-
for (var i2 = 0; i2 < centList.length; i2++) {
|
|
1229
|
-
pointInClust[i2] = [];
|
|
1230
|
-
for (var j = 0; j < dataSet.length; j++) {
|
|
1231
|
-
if (getClusterIndex(j) === i2) {
|
|
1232
|
-
pointInClust[i2].push(dataSet[j]);
|
|
1233
|
-
}
|
|
1234
|
-
}
|
|
1235
|
-
}
|
|
1236
|
-
result.pointsInCluster = pointInClust;
|
|
1237
|
-
}
|
|
1238
|
-
index2++;
|
|
1239
|
-
} else {
|
|
1240
|
-
result.isEnd = true;
|
|
1241
|
-
}
|
|
1242
|
-
}
|
|
1243
|
-
if (!config.stepByStep) {
|
|
1244
|
-
while (oneStep(), !result.isEnd)
|
|
1245
|
-
;
|
|
1246
|
-
} else {
|
|
1247
|
-
result.next = function() {
|
|
1248
|
-
oneStep();
|
|
1249
|
-
setCentroidToResultData(result, dataMeta);
|
|
1250
|
-
return result;
|
|
1251
|
-
};
|
|
1252
|
-
}
|
|
1253
|
-
setCentroidToResultData(result, dataMeta);
|
|
1254
|
-
return result;
|
|
1255
|
-
}
|
|
1256
|
-
function setCentroidToResultData(result, dataMeta) {
|
|
1257
|
-
var outputCentroidDimensions = dataMeta.outputCentroidDimensions;
|
|
1258
|
-
if (dataMeta.outputType !== OutputType.SINGLE || outputCentroidDimensions == null) {
|
|
1259
|
-
return;
|
|
1260
|
-
}
|
|
1261
|
-
var outputSingleData = result.data;
|
|
1262
|
-
var centroids = result.centroids;
|
|
1263
|
-
for (var i = 0; i < outputSingleData.length; i++) {
|
|
1264
|
-
var line = outputSingleData[i];
|
|
1265
|
-
var clusterIndex = line[dataMeta.outputClusterIndexDimension];
|
|
1266
|
-
var centroid = centroids[clusterIndex];
|
|
1267
|
-
var dimLen = Math.min(centroid.length, outputCentroidDimensions.length);
|
|
1268
|
-
for (var j = 0; j < dimLen; j++) {
|
|
1269
|
-
line[outputCentroidDimensions[j]] = centroid[j];
|
|
1270
|
-
}
|
|
1271
|
-
}
|
|
1272
|
-
}
|
|
1273
|
-
function createRandCent(k2, extents) {
|
|
1274
|
-
var centroids = zeros(k2, extents.length);
|
|
1275
|
-
for (var j = 0; j < extents.length; j++) {
|
|
1276
|
-
var extentItem = extents[j];
|
|
1277
|
-
for (var i = 0; i < k2; i++) {
|
|
1278
|
-
centroids[i][j] = extentItem.min + extentItem.span * Math.random();
|
|
1279
|
-
}
|
|
1280
|
-
}
|
|
1281
|
-
return centroids;
|
|
1282
|
-
}
|
|
1283
|
-
function distEuclid(dataItem, centroid, dataMeta) {
|
|
1284
|
-
var powerSum = 0;
|
|
1285
|
-
var dimensions = dataMeta.dimensions;
|
|
1286
|
-
var extents = dataMeta.rawExtents;
|
|
1287
|
-
for (var i = 0; i < dimensions.length; i++) {
|
|
1288
|
-
var span = extents[i].span;
|
|
1289
|
-
if (span) {
|
|
1290
|
-
var dimIdx = dimensions[i];
|
|
1291
|
-
var dist = (dataItem[dimIdx] - centroid[i]) / span;
|
|
1292
|
-
powerSum += mathPow(dist, 2);
|
|
1293
|
-
}
|
|
1294
|
-
}
|
|
1295
|
-
return powerSum;
|
|
1296
|
-
}
|
|
1297
|
-
function parseDataMeta(dataSet, config) {
|
|
1298
|
-
var size = arraySize(dataSet);
|
|
1299
|
-
if (size.length < 1) {
|
|
1300
|
-
throw new Error("The input data of clustering should be two-dimension array.");
|
|
1301
|
-
}
|
|
1302
|
-
var colCount = size[1];
|
|
1303
|
-
var defaultDimensions = [];
|
|
1304
|
-
for (var i = 0; i < colCount; i++) {
|
|
1305
|
-
defaultDimensions.push(i);
|
|
1306
|
-
}
|
|
1307
|
-
var dimensions = normalizeDimensions(config.dimensions, defaultDimensions);
|
|
1308
|
-
var outputType = config.outputType || OutputType.MULTIPLE;
|
|
1309
|
-
var outputClusterIndexDimension = config.outputClusterIndexDimension;
|
|
1310
|
-
if (outputType === OutputType.SINGLE && !numberUtil.isNumber(outputClusterIndexDimension)) {
|
|
1311
|
-
throw new Error("outputClusterIndexDimension is required as a number.");
|
|
1312
|
-
}
|
|
1313
|
-
var extents = calcExtents(dataSet, dimensions);
|
|
1314
|
-
return {
|
|
1315
|
-
dimensions,
|
|
1316
|
-
rawExtents: extents,
|
|
1317
|
-
outputType,
|
|
1318
|
-
outputClusterIndexDimension,
|
|
1319
|
-
outputCentroidDimensions: config.outputCentroidDimensions
|
|
1320
|
-
};
|
|
1321
|
-
}
|
|
1322
|
-
function calcExtents(dataSet, dimensions) {
|
|
1323
|
-
var extents = [];
|
|
1324
|
-
var dimLen = dimensions.length;
|
|
1325
|
-
for (var i = 0; i < dimLen; i++) {
|
|
1326
|
-
extents.push({ min: Infinity, max: -Infinity });
|
|
1327
|
-
}
|
|
1328
|
-
for (var i = 0; i < dataSet.length; i++) {
|
|
1329
|
-
var line = dataSet[i];
|
|
1330
|
-
for (var j = 0; j < dimLen; j++) {
|
|
1331
|
-
var extentItem = extents[j];
|
|
1332
|
-
var val = line[dimensions[j]];
|
|
1333
|
-
extentItem.min > val && (extentItem.min = val);
|
|
1334
|
-
extentItem.max < val && (extentItem.max = val);
|
|
1335
|
-
}
|
|
1336
|
-
}
|
|
1337
|
-
for (var i = 0; i < dimLen; i++) {
|
|
1338
|
-
extents[i].span = extents[i].max - extents[i].min;
|
|
1339
|
-
}
|
|
1340
|
-
return extents;
|
|
1341
|
-
}
|
|
1342
|
-
return {
|
|
1343
|
-
OutputType,
|
|
1344
|
-
hierarchicalKMeans
|
|
1345
|
-
};
|
|
1346
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1347
|
-
},
|
|
1348
|
-
function(module2, exports2, __webpack_require__) {
|
|
1349
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1350
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1351
|
-
var array = __webpack_require__(3);
|
|
1352
|
-
var isArray = array.isArray;
|
|
1353
|
-
var size = array.size;
|
|
1354
|
-
var number2 = __webpack_require__(4);
|
|
1355
|
-
var isNumber = number2.isNumber;
|
|
1356
|
-
function normalizeDimensions(dimensions, defaultDimensions) {
|
|
1357
|
-
return typeof dimensions === "number" ? [dimensions] : dimensions == null ? defaultDimensions : dimensions;
|
|
1358
|
-
}
|
|
1359
|
-
function dataPreprocess(data, opt) {
|
|
1360
|
-
opt = opt || {};
|
|
1361
|
-
var dimensions = opt.dimensions;
|
|
1362
|
-
var numberDimensionMap = {};
|
|
1363
|
-
if (dimensions != null) {
|
|
1364
|
-
for (var i = 0; i < dimensions.length; i++) {
|
|
1365
|
-
numberDimensionMap[dimensions[i]] = true;
|
|
1366
|
-
}
|
|
1367
|
-
}
|
|
1368
|
-
var targetOneDim = opt.toOneDimensionArray ? dimensions ? dimensions[0] : 0 : null;
|
|
1369
|
-
function shouldBeNumberDimension(dimIdx) {
|
|
1370
|
-
return !dimensions || numberDimensionMap.hasOwnProperty(dimIdx);
|
|
1371
|
-
}
|
|
1372
|
-
if (!isArray(data)) {
|
|
1373
|
-
throw new Error("Invalid data type, you should input an array");
|
|
1374
|
-
}
|
|
1375
|
-
var predata = [];
|
|
1376
|
-
var arraySize = size(data);
|
|
1377
|
-
if (arraySize.length === 1) {
|
|
1378
|
-
for (var i = 0; i < arraySize[0]; i++) {
|
|
1379
|
-
var item = data[i];
|
|
1380
|
-
if (isNumber(item)) {
|
|
1381
|
-
predata.push(item);
|
|
1382
|
-
}
|
|
1383
|
-
}
|
|
1384
|
-
} else if (arraySize.length === 2) {
|
|
1385
|
-
for (var i = 0; i < arraySize[0]; i++) {
|
|
1386
|
-
var isCorrect = true;
|
|
1387
|
-
var item = data[i];
|
|
1388
|
-
for (var j = 0; j < arraySize[1]; j++) {
|
|
1389
|
-
if (shouldBeNumberDimension(j) && !isNumber(item[j])) {
|
|
1390
|
-
isCorrect = false;
|
|
1391
|
-
}
|
|
1392
|
-
}
|
|
1393
|
-
if (isCorrect) {
|
|
1394
|
-
predata.push(targetOneDim != null ? item[targetOneDim] : item);
|
|
1395
|
-
}
|
|
1396
|
-
}
|
|
1397
|
-
}
|
|
1398
|
-
return predata;
|
|
1399
|
-
}
|
|
1400
|
-
function getPrecision(val) {
|
|
1401
|
-
var str = val.toString();
|
|
1402
|
-
var dotIndex = str.indexOf(".");
|
|
1403
|
-
return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;
|
|
1404
|
-
}
|
|
1405
|
-
return {
|
|
1406
|
-
normalizeDimensions,
|
|
1407
|
-
dataPreprocess,
|
|
1408
|
-
getPrecision
|
|
1409
|
-
};
|
|
1410
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1411
|
-
},
|
|
1412
|
-
function(module2, exports2, __webpack_require__) {
|
|
1413
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1414
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1415
|
-
var objToString = Object.prototype.toString;
|
|
1416
|
-
var arrayProto = Array.prototype;
|
|
1417
|
-
var nativeMap = arrayProto.map;
|
|
1418
|
-
function size(data) {
|
|
1419
|
-
var s = [];
|
|
1420
|
-
while (isArray(data)) {
|
|
1421
|
-
s.push(data.length);
|
|
1422
|
-
data = data[0];
|
|
1423
|
-
}
|
|
1424
|
-
return s;
|
|
1425
|
-
}
|
|
1426
|
-
function isArray(value) {
|
|
1427
|
-
return objToString.call(value) === "[object Array]";
|
|
1428
|
-
}
|
|
1429
|
-
function zeros(m2, n2) {
|
|
1430
|
-
var zeroArray = [];
|
|
1431
|
-
for (var i = 0; i < m2; i++) {
|
|
1432
|
-
zeroArray[i] = [];
|
|
1433
|
-
for (var j = 0; j < n2; j++) {
|
|
1434
|
-
zeroArray[i][j] = 0;
|
|
1435
|
-
}
|
|
1436
|
-
}
|
|
1437
|
-
return zeroArray;
|
|
1438
|
-
}
|
|
1439
|
-
function sum(vector) {
|
|
1440
|
-
var sum2 = 0;
|
|
1441
|
-
for (var i = 0; i < vector.length; i++) {
|
|
1442
|
-
sum2 += vector[i];
|
|
1443
|
-
}
|
|
1444
|
-
return sum2;
|
|
1445
|
-
}
|
|
1446
|
-
function sumOfColumn(dataList, n2) {
|
|
1447
|
-
var sum2 = 0;
|
|
1448
|
-
for (var i = 0; i < dataList.length; i++) {
|
|
1449
|
-
sum2 += dataList[i][n2];
|
|
1450
|
-
}
|
|
1451
|
-
return sum2;
|
|
1452
|
-
}
|
|
1453
|
-
function ascending(a, b) {
|
|
1454
|
-
return a > b ? 1 : a < b ? -1 : a === b ? 0 : NaN;
|
|
1455
|
-
}
|
|
1456
|
-
function bisect(array, value, start, end) {
|
|
1457
|
-
if (start == null) {
|
|
1458
|
-
start = 0;
|
|
1459
|
-
}
|
|
1460
|
-
if (end == null) {
|
|
1461
|
-
end = array.length;
|
|
1462
|
-
}
|
|
1463
|
-
while (start < end) {
|
|
1464
|
-
var mid = Math.floor((start + end) / 2);
|
|
1465
|
-
var compare = ascending(array[mid], value);
|
|
1466
|
-
if (compare > 0) {
|
|
1467
|
-
end = mid;
|
|
1468
|
-
} else if (compare < 0) {
|
|
1469
|
-
start = mid + 1;
|
|
1470
|
-
} else {
|
|
1471
|
-
return mid + 1;
|
|
1472
|
-
}
|
|
1473
|
-
}
|
|
1474
|
-
return start;
|
|
1475
|
-
}
|
|
1476
|
-
function map(obj, cb, context) {
|
|
1477
|
-
if (!(obj && cb)) {
|
|
1478
|
-
return;
|
|
1479
|
-
}
|
|
1480
|
-
if (obj.map && obj.map === nativeMap) {
|
|
1481
|
-
return obj.map(cb, context);
|
|
1482
|
-
} else {
|
|
1483
|
-
var result = [];
|
|
1484
|
-
for (var i = 0, len = obj.length; i < len; i++) {
|
|
1485
|
-
result.push(cb.call(context, obj[i], i, obj));
|
|
1486
|
-
}
|
|
1487
|
-
return result;
|
|
1488
|
-
}
|
|
1489
|
-
}
|
|
1490
|
-
return {
|
|
1491
|
-
size,
|
|
1492
|
-
isArray,
|
|
1493
|
-
zeros,
|
|
1494
|
-
sum,
|
|
1495
|
-
sumOfColumn,
|
|
1496
|
-
ascending,
|
|
1497
|
-
bisect,
|
|
1498
|
-
map
|
|
1499
|
-
};
|
|
1500
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1501
|
-
},
|
|
1502
|
-
function(module2, exports2, __webpack_require__) {
|
|
1503
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1504
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1505
|
-
function isNumber(value) {
|
|
1506
|
-
value = value === null ? NaN : +value;
|
|
1507
|
-
return typeof value === "number" && !isNaN(value);
|
|
1508
|
-
}
|
|
1509
|
-
function isInteger(value) {
|
|
1510
|
-
return isFinite(value) && value === Math.round(value);
|
|
1511
|
-
}
|
|
1512
|
-
function quantityExponent(val) {
|
|
1513
|
-
if (val === 0) {
|
|
1514
|
-
return 0;
|
|
1515
|
-
}
|
|
1516
|
-
var exp = Math.floor(Math.log(val) / Math.LN10);
|
|
1517
|
-
if (val / Math.pow(10, exp) >= 10) {
|
|
1518
|
-
exp++;
|
|
1519
|
-
}
|
|
1520
|
-
return exp;
|
|
1521
|
-
}
|
|
1522
|
-
return {
|
|
1523
|
-
isNumber,
|
|
1524
|
-
isInteger,
|
|
1525
|
-
quantityExponent
|
|
1526
|
-
};
|
|
1527
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1528
|
-
},
|
|
1529
|
-
function(module2, exports2, __webpack_require__) {
|
|
1530
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1531
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1532
|
-
var dataProcess = __webpack_require__(2);
|
|
1533
|
-
var dataPreprocess = dataProcess.dataPreprocess;
|
|
1534
|
-
var normalizeDimensions = dataProcess.normalizeDimensions;
|
|
1535
|
-
var regreMethods = {
|
|
1536
|
-
linear: function(predata, opt) {
|
|
1537
|
-
var xDimIdx = opt.dimensions[0];
|
|
1538
|
-
var yDimIdx = opt.dimensions[1];
|
|
1539
|
-
var sumX = 0;
|
|
1540
|
-
var sumY = 0;
|
|
1541
|
-
var sumXY = 0;
|
|
1542
|
-
var sumXX = 0;
|
|
1543
|
-
var len = predata.length;
|
|
1544
|
-
for (var i = 0; i < len; i++) {
|
|
1545
|
-
var rawItem = predata[i];
|
|
1546
|
-
sumX += rawItem[xDimIdx];
|
|
1547
|
-
sumY += rawItem[yDimIdx];
|
|
1548
|
-
sumXY += rawItem[xDimIdx] * rawItem[yDimIdx];
|
|
1549
|
-
sumXX += rawItem[xDimIdx] * rawItem[xDimIdx];
|
|
1550
|
-
}
|
|
1551
|
-
var gradient = (len * sumXY - sumX * sumY) / (len * sumXX - sumX * sumX);
|
|
1552
|
-
var intercept = sumY / len - gradient * sumX / len;
|
|
1553
|
-
var result = [];
|
|
1554
|
-
for (var j = 0; j < predata.length; j++) {
|
|
1555
|
-
var rawItem = predata[j];
|
|
1556
|
-
var resultItem = rawItem.slice();
|
|
1557
|
-
resultItem[xDimIdx] = rawItem[xDimIdx];
|
|
1558
|
-
resultItem[yDimIdx] = gradient * rawItem[xDimIdx] + intercept;
|
|
1559
|
-
result.push(resultItem);
|
|
1560
|
-
}
|
|
1561
|
-
var expression = "y = " + Math.round(gradient * 100) / 100 + "x + " + Math.round(intercept * 100) / 100;
|
|
1562
|
-
return {
|
|
1563
|
-
points: result,
|
|
1564
|
-
parameter: {
|
|
1565
|
-
gradient,
|
|
1566
|
-
intercept
|
|
1567
|
-
},
|
|
1568
|
-
expression
|
|
1569
|
-
};
|
|
1570
|
-
},
|
|
1571
|
-
linearThroughOrigin: function(predata, opt) {
|
|
1572
|
-
var xDimIdx = opt.dimensions[0];
|
|
1573
|
-
var yDimIdx = opt.dimensions[1];
|
|
1574
|
-
var sumXX = 0;
|
|
1575
|
-
var sumXY = 0;
|
|
1576
|
-
for (var i = 0; i < predata.length; i++) {
|
|
1577
|
-
var rawItem = predata[i];
|
|
1578
|
-
sumXX += rawItem[xDimIdx] * rawItem[xDimIdx];
|
|
1579
|
-
sumXY += rawItem[xDimIdx] * rawItem[yDimIdx];
|
|
1580
|
-
}
|
|
1581
|
-
var gradient = sumXY / sumXX;
|
|
1582
|
-
var result = [];
|
|
1583
|
-
for (var j = 0; j < predata.length; j++) {
|
|
1584
|
-
var rawItem = predata[j];
|
|
1585
|
-
var resultItem = rawItem.slice();
|
|
1586
|
-
resultItem[xDimIdx] = rawItem[xDimIdx];
|
|
1587
|
-
resultItem[yDimIdx] = rawItem[xDimIdx] * gradient;
|
|
1588
|
-
result.push(resultItem);
|
|
1589
|
-
}
|
|
1590
|
-
var expression = "y = " + Math.round(gradient * 100) / 100 + "x";
|
|
1591
|
-
return {
|
|
1592
|
-
points: result,
|
|
1593
|
-
parameter: {
|
|
1594
|
-
gradient
|
|
1595
|
-
},
|
|
1596
|
-
expression
|
|
1597
|
-
};
|
|
1598
|
-
},
|
|
1599
|
-
exponential: function(predata, opt) {
|
|
1600
|
-
var xDimIdx = opt.dimensions[0];
|
|
1601
|
-
var yDimIdx = opt.dimensions[1];
|
|
1602
|
-
var sumX = 0;
|
|
1603
|
-
var sumY = 0;
|
|
1604
|
-
var sumXXY = 0;
|
|
1605
|
-
var sumYlny = 0;
|
|
1606
|
-
var sumXYlny = 0;
|
|
1607
|
-
var sumXY = 0;
|
|
1608
|
-
for (var i = 0; i < predata.length; i++) {
|
|
1609
|
-
var rawItem = predata[i];
|
|
1610
|
-
sumX += rawItem[xDimIdx];
|
|
1611
|
-
sumY += rawItem[yDimIdx];
|
|
1612
|
-
sumXY += rawItem[xDimIdx] * rawItem[yDimIdx];
|
|
1613
|
-
sumXXY += rawItem[xDimIdx] * rawItem[xDimIdx] * rawItem[yDimIdx];
|
|
1614
|
-
sumYlny += rawItem[yDimIdx] * Math.log(rawItem[yDimIdx]);
|
|
1615
|
-
sumXYlny += rawItem[xDimIdx] * rawItem[yDimIdx] * Math.log(rawItem[yDimIdx]);
|
|
1616
|
-
}
|
|
1617
|
-
var denominator = sumY * sumXXY - sumXY * sumXY;
|
|
1618
|
-
var coefficient = Math.pow(Math.E, (sumXXY * sumYlny - sumXY * sumXYlny) / denominator);
|
|
1619
|
-
var index2 = (sumY * sumXYlny - sumXY * sumYlny) / denominator;
|
|
1620
|
-
var result = [];
|
|
1621
|
-
for (var j = 0; j < predata.length; j++) {
|
|
1622
|
-
var rawItem = predata[j];
|
|
1623
|
-
var resultItem = rawItem.slice();
|
|
1624
|
-
resultItem[xDimIdx] = rawItem[xDimIdx];
|
|
1625
|
-
resultItem[yDimIdx] = coefficient * Math.pow(Math.E, index2 * rawItem[xDimIdx]);
|
|
1626
|
-
result.push(resultItem);
|
|
1627
|
-
}
|
|
1628
|
-
var expression = "y = " + Math.round(coefficient * 100) / 100 + "e^(" + Math.round(index2 * 100) / 100 + "x)";
|
|
1629
|
-
return {
|
|
1630
|
-
points: result,
|
|
1631
|
-
parameter: {
|
|
1632
|
-
coefficient,
|
|
1633
|
-
index: index2
|
|
1634
|
-
},
|
|
1635
|
-
expression
|
|
1636
|
-
};
|
|
1637
|
-
},
|
|
1638
|
-
logarithmic: function(predata, opt) {
|
|
1639
|
-
var xDimIdx = opt.dimensions[0];
|
|
1640
|
-
var yDimIdx = opt.dimensions[1];
|
|
1641
|
-
var sumlnx = 0;
|
|
1642
|
-
var sumYlnx = 0;
|
|
1643
|
-
var sumY = 0;
|
|
1644
|
-
var sumlnxlnx = 0;
|
|
1645
|
-
for (var i = 0; i < predata.length; i++) {
|
|
1646
|
-
var rawItem = predata[i];
|
|
1647
|
-
sumlnx += Math.log(rawItem[xDimIdx]);
|
|
1648
|
-
sumYlnx += rawItem[yDimIdx] * Math.log(rawItem[xDimIdx]);
|
|
1649
|
-
sumY += rawItem[yDimIdx];
|
|
1650
|
-
sumlnxlnx += Math.pow(Math.log(rawItem[xDimIdx]), 2);
|
|
1651
|
-
}
|
|
1652
|
-
var gradient = (i * sumYlnx - sumY * sumlnx) / (i * sumlnxlnx - sumlnx * sumlnx);
|
|
1653
|
-
var intercept = (sumY - gradient * sumlnx) / i;
|
|
1654
|
-
var result = [];
|
|
1655
|
-
for (var j = 0; j < predata.length; j++) {
|
|
1656
|
-
var rawItem = predata[j];
|
|
1657
|
-
var resultItem = rawItem.slice();
|
|
1658
|
-
resultItem[xDimIdx] = rawItem[xDimIdx];
|
|
1659
|
-
resultItem[yDimIdx] = gradient * Math.log(rawItem[xDimIdx]) + intercept;
|
|
1660
|
-
result.push(resultItem);
|
|
1661
|
-
}
|
|
1662
|
-
var expression = "y = " + Math.round(intercept * 100) / 100 + " + " + Math.round(gradient * 100) / 100 + "ln(x)";
|
|
1663
|
-
return {
|
|
1664
|
-
points: result,
|
|
1665
|
-
parameter: {
|
|
1666
|
-
gradient,
|
|
1667
|
-
intercept
|
|
1668
|
-
},
|
|
1669
|
-
expression
|
|
1670
|
-
};
|
|
1671
|
-
},
|
|
1672
|
-
polynomial: function(predata, opt) {
|
|
1673
|
-
var xDimIdx = opt.dimensions[0];
|
|
1674
|
-
var yDimIdx = opt.dimensions[1];
|
|
1675
|
-
var order = opt.order;
|
|
1676
|
-
if (order == null) {
|
|
1677
|
-
order = 2;
|
|
1678
|
-
}
|
|
1679
|
-
var coeMatrix = [];
|
|
1680
|
-
var lhs = [];
|
|
1681
|
-
var k2 = order + 1;
|
|
1682
|
-
for (var i = 0; i < k2; i++) {
|
|
1683
|
-
var sumA = 0;
|
|
1684
|
-
for (var n2 = 0; n2 < predata.length; n2++) {
|
|
1685
|
-
var rawItem = predata[n2];
|
|
1686
|
-
sumA += rawItem[yDimIdx] * Math.pow(rawItem[xDimIdx], i);
|
|
1687
|
-
}
|
|
1688
|
-
lhs.push(sumA);
|
|
1689
|
-
var temp = [];
|
|
1690
|
-
for (var j = 0; j < k2; j++) {
|
|
1691
|
-
var sumB = 0;
|
|
1692
|
-
for (var m2 = 0; m2 < predata.length; m2++) {
|
|
1693
|
-
sumB += Math.pow(predata[m2][xDimIdx], i + j);
|
|
1694
|
-
}
|
|
1695
|
-
temp.push(sumB);
|
|
1696
|
-
}
|
|
1697
|
-
coeMatrix.push(temp);
|
|
1698
|
-
}
|
|
1699
|
-
coeMatrix.push(lhs);
|
|
1700
|
-
var coeArray = gaussianElimination(coeMatrix, k2);
|
|
1701
|
-
var result = [];
|
|
1702
|
-
for (var i = 0; i < predata.length; i++) {
|
|
1703
|
-
var value = 0;
|
|
1704
|
-
var rawItem = predata[i];
|
|
1705
|
-
for (var n2 = 0; n2 < coeArray.length; n2++) {
|
|
1706
|
-
value += coeArray[n2] * Math.pow(rawItem[xDimIdx], n2);
|
|
1707
|
-
}
|
|
1708
|
-
var resultItem = rawItem.slice();
|
|
1709
|
-
resultItem[xDimIdx] = rawItem[xDimIdx];
|
|
1710
|
-
resultItem[yDimIdx] = value;
|
|
1711
|
-
result.push(resultItem);
|
|
1712
|
-
}
|
|
1713
|
-
var expression = "y = ";
|
|
1714
|
-
for (var i = coeArray.length - 1; i >= 0; i--) {
|
|
1715
|
-
if (i > 1) {
|
|
1716
|
-
expression += Math.round(coeArray[i] * Math.pow(10, i + 1)) / Math.pow(10, i + 1) + "x^" + i + " + ";
|
|
1717
|
-
} else if (i === 1) {
|
|
1718
|
-
expression += Math.round(coeArray[i] * 100) / 100 + "x + ";
|
|
1719
|
-
} else {
|
|
1720
|
-
expression += Math.round(coeArray[i] * 100) / 100;
|
|
1721
|
-
}
|
|
1722
|
-
}
|
|
1723
|
-
return {
|
|
1724
|
-
points: result,
|
|
1725
|
-
parameter: coeArray,
|
|
1726
|
-
expression
|
|
1727
|
-
};
|
|
1728
|
-
}
|
|
1729
|
-
};
|
|
1730
|
-
function gaussianElimination(matrix, number2) {
|
|
1731
|
-
for (var i = 0; i < matrix.length - 1; i++) {
|
|
1732
|
-
var maxColumn = i;
|
|
1733
|
-
for (var j = i + 1; j < matrix.length - 1; j++) {
|
|
1734
|
-
if (Math.abs(matrix[i][j]) > Math.abs(matrix[i][maxColumn])) {
|
|
1735
|
-
maxColumn = j;
|
|
1736
|
-
}
|
|
1737
|
-
}
|
|
1738
|
-
for (var k2 = i; k2 < matrix.length; k2++) {
|
|
1739
|
-
var temp = matrix[k2][i];
|
|
1740
|
-
matrix[k2][i] = matrix[k2][maxColumn];
|
|
1741
|
-
matrix[k2][maxColumn] = temp;
|
|
1742
|
-
}
|
|
1743
|
-
for (var n2 = i + 1; n2 < matrix.length - 1; n2++) {
|
|
1744
|
-
for (var m2 = matrix.length - 1; m2 >= i; m2--) {
|
|
1745
|
-
matrix[m2][n2] -= matrix[m2][i] / matrix[i][i] * matrix[i][n2];
|
|
1746
|
-
}
|
|
1747
|
-
}
|
|
1748
|
-
}
|
|
1749
|
-
var data = new Array(number2);
|
|
1750
|
-
var len = matrix.length - 1;
|
|
1751
|
-
for (var j = matrix.length - 2; j >= 0; j--) {
|
|
1752
|
-
var temp = 0;
|
|
1753
|
-
for (var i = j + 1; i < matrix.length - 1; i++) {
|
|
1754
|
-
temp += matrix[i][j] * data[i];
|
|
1755
|
-
}
|
|
1756
|
-
data[j] = (matrix[len][j] - temp) / matrix[j][j];
|
|
1757
|
-
}
|
|
1758
|
-
return data;
|
|
1759
|
-
}
|
|
1760
|
-
var regression = function(regreMethod, data, optOrOrder) {
|
|
1761
|
-
var opt = typeof optOrOrder === "number" ? { order: optOrOrder } : optOrOrder || {};
|
|
1762
|
-
var dimensions = normalizeDimensions(opt.dimensions, [0, 1]);
|
|
1763
|
-
var predata = dataPreprocess(data, { dimensions });
|
|
1764
|
-
var result = regreMethods[regreMethod](predata, {
|
|
1765
|
-
order: opt.order,
|
|
1766
|
-
dimensions
|
|
1767
|
-
});
|
|
1768
|
-
var xDimIdx = dimensions[0];
|
|
1769
|
-
result.points.sort(function(itemA, itemB) {
|
|
1770
|
-
return itemA[xDimIdx] - itemB[xDimIdx];
|
|
1771
|
-
});
|
|
1772
|
-
return result;
|
|
1773
|
-
};
|
|
1774
|
-
return regression;
|
|
1775
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1776
|
-
},
|
|
1777
|
-
function(module2, exports2, __webpack_require__) {
|
|
1778
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1779
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1780
|
-
var statistics = {};
|
|
1781
|
-
statistics.max = __webpack_require__(7);
|
|
1782
|
-
statistics.deviation = __webpack_require__(8);
|
|
1783
|
-
statistics.mean = __webpack_require__(10);
|
|
1784
|
-
statistics.median = __webpack_require__(12);
|
|
1785
|
-
statistics.min = __webpack_require__(14);
|
|
1786
|
-
statistics.quantile = __webpack_require__(13);
|
|
1787
|
-
statistics.sampleVariance = __webpack_require__(9);
|
|
1788
|
-
statistics.sum = __webpack_require__(11);
|
|
1789
|
-
return statistics;
|
|
1790
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1791
|
-
},
|
|
1792
|
-
function(module2, exports2, __webpack_require__) {
|
|
1793
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1794
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1795
|
-
var number2 = __webpack_require__(4);
|
|
1796
|
-
var isNumber = number2.isNumber;
|
|
1797
|
-
function max(data) {
|
|
1798
|
-
var maxData = -Infinity;
|
|
1799
|
-
for (var i = 0; i < data.length; i++) {
|
|
1800
|
-
if (isNumber(data[i]) && data[i] > maxData) {
|
|
1801
|
-
maxData = data[i];
|
|
1802
|
-
}
|
|
1803
|
-
}
|
|
1804
|
-
return maxData;
|
|
1805
|
-
}
|
|
1806
|
-
return max;
|
|
1807
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1808
|
-
},
|
|
1809
|
-
function(module2, exports2, __webpack_require__) {
|
|
1810
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1811
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1812
|
-
var variance = __webpack_require__(9);
|
|
1813
|
-
return function(data) {
|
|
1814
|
-
var squaredDeviation = variance(data);
|
|
1815
|
-
return squaredDeviation ? Math.sqrt(squaredDeviation) : squaredDeviation;
|
|
1816
|
-
};
|
|
1817
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1818
|
-
},
|
|
1819
|
-
function(module2, exports2, __webpack_require__) {
|
|
1820
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1821
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1822
|
-
var number2 = __webpack_require__(4);
|
|
1823
|
-
var isNumber = number2.isNumber;
|
|
1824
|
-
var mean = __webpack_require__(10);
|
|
1825
|
-
function sampleVariance(data) {
|
|
1826
|
-
var len = data.length;
|
|
1827
|
-
if (!len || len < 2) {
|
|
1828
|
-
return 0;
|
|
1829
|
-
}
|
|
1830
|
-
if (data.length >= 2) {
|
|
1831
|
-
var meanValue = mean(data);
|
|
1832
|
-
var sum = 0;
|
|
1833
|
-
var temple;
|
|
1834
|
-
for (var i = 0; i < data.length; i++) {
|
|
1835
|
-
if (isNumber(data[i])) {
|
|
1836
|
-
temple = data[i] - meanValue;
|
|
1837
|
-
sum += temple * temple;
|
|
1838
|
-
}
|
|
1839
|
-
}
|
|
1840
|
-
return sum / (data.length - 1);
|
|
1841
|
-
}
|
|
1842
|
-
}
|
|
1843
|
-
return sampleVariance;
|
|
1844
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1845
|
-
},
|
|
1846
|
-
function(module2, exports2, __webpack_require__) {
|
|
1847
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1848
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1849
|
-
var sum = __webpack_require__(11);
|
|
1850
|
-
function mean(data) {
|
|
1851
|
-
var len = data.length;
|
|
1852
|
-
if (!len) {
|
|
1853
|
-
return 0;
|
|
1854
|
-
}
|
|
1855
|
-
return sum(data) / data.length;
|
|
1856
|
-
}
|
|
1857
|
-
return mean;
|
|
1858
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1859
|
-
},
|
|
1860
|
-
function(module2, exports2, __webpack_require__) {
|
|
1861
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1862
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1863
|
-
var number2 = __webpack_require__(4);
|
|
1864
|
-
var isNumber = number2.isNumber;
|
|
1865
|
-
function sum(data) {
|
|
1866
|
-
var len = data.length;
|
|
1867
|
-
if (!len) {
|
|
1868
|
-
return 0;
|
|
1869
|
-
}
|
|
1870
|
-
var sumData = 0;
|
|
1871
|
-
for (var i = 0; i < len; i++) {
|
|
1872
|
-
if (isNumber(data[i])) {
|
|
1873
|
-
sumData += data[i];
|
|
1874
|
-
}
|
|
1875
|
-
}
|
|
1876
|
-
return sumData;
|
|
1877
|
-
}
|
|
1878
|
-
return sum;
|
|
1879
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1880
|
-
},
|
|
1881
|
-
function(module2, exports2, __webpack_require__) {
|
|
1882
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1883
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1884
|
-
var quantile = __webpack_require__(13);
|
|
1885
|
-
function median2(data) {
|
|
1886
|
-
return quantile(data, 0.5);
|
|
1887
|
-
}
|
|
1888
|
-
return median2;
|
|
1889
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1890
|
-
},
|
|
1891
|
-
function(module2, exports2, __webpack_require__) {
|
|
1892
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1893
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1894
|
-
return function(data, p2) {
|
|
1895
|
-
var len = data.length;
|
|
1896
|
-
if (!len) {
|
|
1897
|
-
return 0;
|
|
1898
|
-
}
|
|
1899
|
-
if (p2 <= 0 || len < 2) {
|
|
1900
|
-
return data[0];
|
|
1901
|
-
}
|
|
1902
|
-
if (p2 >= 1) {
|
|
1903
|
-
return data[len - 1];
|
|
1904
|
-
}
|
|
1905
|
-
var h = (len - 1) * p2;
|
|
1906
|
-
var i = Math.floor(h);
|
|
1907
|
-
var a = data[i];
|
|
1908
|
-
var b = data[i + 1];
|
|
1909
|
-
return a + (b - a) * (h - i);
|
|
1910
|
-
};
|
|
1911
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1912
|
-
},
|
|
1913
|
-
function(module2, exports2, __webpack_require__) {
|
|
1914
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1915
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1916
|
-
var number2 = __webpack_require__(4);
|
|
1917
|
-
var isNumber = number2.isNumber;
|
|
1918
|
-
function min(data) {
|
|
1919
|
-
var minData = Infinity;
|
|
1920
|
-
for (var i = 0; i < data.length; i++) {
|
|
1921
|
-
if (isNumber(data[i]) && data[i] < minData) {
|
|
1922
|
-
minData = data[i];
|
|
1923
|
-
}
|
|
1924
|
-
}
|
|
1925
|
-
return minData;
|
|
1926
|
-
}
|
|
1927
|
-
return min;
|
|
1928
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
1929
|
-
},
|
|
1930
|
-
function(module2, exports2, __webpack_require__) {
|
|
1931
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
1932
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
1933
|
-
var max = __webpack_require__(7);
|
|
1934
|
-
var min = __webpack_require__(14);
|
|
1935
|
-
var quantile = __webpack_require__(13);
|
|
1936
|
-
var deviation = __webpack_require__(8);
|
|
1937
|
-
var dataProcess = __webpack_require__(2);
|
|
1938
|
-
var dataPreprocess = dataProcess.dataPreprocess;
|
|
1939
|
-
var normalizeDimensions = dataProcess.normalizeDimensions;
|
|
1940
|
-
var array = __webpack_require__(3);
|
|
1941
|
-
var ascending = array.ascending;
|
|
1942
|
-
var map = array.map;
|
|
1943
|
-
var range = __webpack_require__(16);
|
|
1944
|
-
var bisect = array.bisect;
|
|
1945
|
-
var tickStep = __webpack_require__(17);
|
|
1946
|
-
function computeBins(data, optOrMethod) {
|
|
1947
|
-
var opt = typeof optOrMethod === "string" ? { method: optOrMethod } : optOrMethod || {};
|
|
1948
|
-
var threshold = opt.method == null ? thresholdMethod.squareRoot : thresholdMethod[opt.method];
|
|
1949
|
-
var dimensions = normalizeDimensions(opt.dimensions);
|
|
1950
|
-
var values = dataPreprocess(data, {
|
|
1951
|
-
dimensions,
|
|
1952
|
-
toOneDimensionArray: true
|
|
1953
|
-
});
|
|
1954
|
-
var maxValue = max(values);
|
|
1955
|
-
var minValue = min(values);
|
|
1956
|
-
var binsNumber = threshold(values, minValue, maxValue);
|
|
1957
|
-
var tickStepResult = tickStep(minValue, maxValue, binsNumber);
|
|
1958
|
-
var step = tickStepResult.step;
|
|
1959
|
-
var toFixedPrecision = tickStepResult.toFixedPrecision;
|
|
1960
|
-
var rangeArray = range(+(Math.ceil(minValue / step) * step).toFixed(toFixedPrecision), +(Math.floor(maxValue / step) * step).toFixed(toFixedPrecision), step, toFixedPrecision);
|
|
1961
|
-
var len = rangeArray.length;
|
|
1962
|
-
var bins = new Array(len + 1);
|
|
1963
|
-
for (var i = 0; i <= len; i++) {
|
|
1964
|
-
bins[i] = {};
|
|
1965
|
-
bins[i].sample = [];
|
|
1966
|
-
bins[i].x0 = i > 0 ? rangeArray[i - 1] : rangeArray[i] - minValue === step ? minValue : rangeArray[i] - step;
|
|
1967
|
-
bins[i].x1 = i < len ? rangeArray[i] : maxValue - rangeArray[i - 1] === step ? maxValue : rangeArray[i - 1] + step;
|
|
1968
|
-
}
|
|
1969
|
-
for (var i = 0; i < values.length; i++) {
|
|
1970
|
-
if (minValue <= values[i] && values[i] <= maxValue) {
|
|
1971
|
-
bins[bisect(rangeArray, values[i], 0, len)].sample.push(values[i]);
|
|
1972
|
-
}
|
|
1973
|
-
}
|
|
1974
|
-
var data = map(bins, function(bin) {
|
|
1975
|
-
return [
|
|
1976
|
-
+((bin.x0 + bin.x1) / 2).toFixed(toFixedPrecision),
|
|
1977
|
-
bin.sample.length,
|
|
1978
|
-
bin.x0,
|
|
1979
|
-
bin.x1,
|
|
1980
|
-
bin.x0 + " - " + bin.x1
|
|
1981
|
-
];
|
|
1982
|
-
});
|
|
1983
|
-
var customData = map(bins, function(bin) {
|
|
1984
|
-
return [bin.x0, bin.x1, bin.sample.length];
|
|
1985
|
-
});
|
|
1986
|
-
return {
|
|
1987
|
-
bins,
|
|
1988
|
-
data,
|
|
1989
|
-
customData
|
|
1990
|
-
};
|
|
1991
|
-
}
|
|
1992
|
-
var thresholdMethod = {
|
|
1993
|
-
squareRoot: function(data) {
|
|
1994
|
-
var bins = Math.ceil(Math.sqrt(data.length));
|
|
1995
|
-
return bins > 50 ? 50 : bins;
|
|
1996
|
-
},
|
|
1997
|
-
scott: function(data, min2, max2) {
|
|
1998
|
-
return Math.ceil((max2 - min2) / (3.5 * deviation(data) * Math.pow(data.length, -1 / 3)));
|
|
1999
|
-
},
|
|
2000
|
-
freedmanDiaconis: function(data, min2, max2) {
|
|
2001
|
-
data.sort(ascending);
|
|
2002
|
-
return Math.ceil((max2 - min2) / (2 * (quantile(data, 0.75) - quantile(data, 0.25)) * Math.pow(data.length, -1 / 3)));
|
|
2003
|
-
},
|
|
2004
|
-
sturges: function(data) {
|
|
2005
|
-
return Math.ceil(Math.log(data.length) / Math.LN2) + 1;
|
|
2006
|
-
}
|
|
2007
|
-
};
|
|
2008
|
-
return computeBins;
|
|
2009
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2010
|
-
},
|
|
2011
|
-
function(module2, exports2, __webpack_require__) {
|
|
2012
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2013
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2014
|
-
var dataProcess = __webpack_require__(2);
|
|
2015
|
-
var getPrecision = dataProcess.getPrecision;
|
|
2016
|
-
return function(start, end, step, precision) {
|
|
2017
|
-
var len = arguments.length;
|
|
2018
|
-
if (len < 2) {
|
|
2019
|
-
end = start;
|
|
2020
|
-
start = 0;
|
|
2021
|
-
step = 1;
|
|
2022
|
-
} else if (len < 3) {
|
|
2023
|
-
step = 1;
|
|
2024
|
-
} else if (len < 4) {
|
|
2025
|
-
step = +step;
|
|
2026
|
-
precision = getPrecision(step);
|
|
2027
|
-
} else {
|
|
2028
|
-
precision = +precision;
|
|
2029
|
-
}
|
|
2030
|
-
var n2 = Math.ceil(((end - start) / step).toFixed(precision));
|
|
2031
|
-
var range = new Array(n2 + 1);
|
|
2032
|
-
for (var i = 0; i < n2 + 1; i++) {
|
|
2033
|
-
range[i] = +(start + i * step).toFixed(precision);
|
|
2034
|
-
}
|
|
2035
|
-
return range;
|
|
2036
|
-
};
|
|
2037
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2038
|
-
},
|
|
2039
|
-
function(module2, exports2, __webpack_require__) {
|
|
2040
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2041
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2042
|
-
var numberUtil = __webpack_require__(4);
|
|
2043
|
-
return function(start, stop, count) {
|
|
2044
|
-
var step0 = Math.abs(stop - start) / count;
|
|
2045
|
-
var precision = numberUtil.quantityExponent(step0);
|
|
2046
|
-
var step1 = Math.pow(10, precision);
|
|
2047
|
-
var error = step0 / step1;
|
|
2048
|
-
if (error >= Math.sqrt(50)) {
|
|
2049
|
-
step1 *= 10;
|
|
2050
|
-
} else if (error >= Math.sqrt(10)) {
|
|
2051
|
-
step1 *= 5;
|
|
2052
|
-
} else if (error >= Math.sqrt(2)) {
|
|
2053
|
-
step1 *= 2;
|
|
2054
|
-
}
|
|
2055
|
-
var toFixedPrecision = precision < 0 ? -precision : 0;
|
|
2056
|
-
var resultStep = +(stop >= start ? step1 : -step1).toFixed(toFixedPrecision);
|
|
2057
|
-
return {
|
|
2058
|
-
step: resultStep,
|
|
2059
|
-
toFixedPrecision
|
|
2060
|
-
};
|
|
2061
|
-
};
|
|
2062
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2063
|
-
},
|
|
2064
|
-
function(module2, exports2, __webpack_require__) {
|
|
2065
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2066
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2067
|
-
var regression = __webpack_require__(5);
|
|
2068
|
-
var transformHelper = __webpack_require__(19);
|
|
2069
|
-
var FORMULA_DIMENSION = 2;
|
|
2070
|
-
return {
|
|
2071
|
-
type: "ecStat:regression",
|
|
2072
|
-
transform: function transform(params) {
|
|
2073
|
-
var upstream = params.upstream;
|
|
2074
|
-
var config = params.config || {};
|
|
2075
|
-
var method = config.method || "linear";
|
|
2076
|
-
var result = regression(method, upstream.cloneRawData(), {
|
|
2077
|
-
order: config.order,
|
|
2078
|
-
dimensions: transformHelper.normalizeExistingDimensions(params, config.dimensions)
|
|
2079
|
-
});
|
|
2080
|
-
var points = result.points;
|
|
2081
|
-
var formulaOn = config.formulaOn;
|
|
2082
|
-
if (formulaOn == null) {
|
|
2083
|
-
formulaOn = "end";
|
|
2084
|
-
}
|
|
2085
|
-
var dimensions;
|
|
2086
|
-
if (formulaOn !== "none") {
|
|
2087
|
-
for (var i = 0; i < points.length; i++) {
|
|
2088
|
-
points[i][FORMULA_DIMENSION] = formulaOn === "start" && i === 0 || formulaOn === "all" || formulaOn === "end" && i === points.length - 1 ? result.expression : "";
|
|
2089
|
-
}
|
|
2090
|
-
dimensions = upstream.cloneAllDimensionInfo();
|
|
2091
|
-
dimensions[FORMULA_DIMENSION] = {};
|
|
2092
|
-
}
|
|
2093
|
-
return [{
|
|
2094
|
-
dimensions,
|
|
2095
|
-
data: points
|
|
2096
|
-
}];
|
|
2097
|
-
}
|
|
2098
|
-
};
|
|
2099
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2100
|
-
},
|
|
2101
|
-
function(module2, exports2, __webpack_require__) {
|
|
2102
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2103
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2104
|
-
var arrayUtil = __webpack_require__(3);
|
|
2105
|
-
var numberUtil = __webpack_require__(4);
|
|
2106
|
-
var objectUtil = __webpack_require__(20);
|
|
2107
|
-
function normalizeExistingDimensions(transformParams, dimensionsConfig) {
|
|
2108
|
-
if (dimensionsConfig == null) {
|
|
2109
|
-
return;
|
|
2110
|
-
}
|
|
2111
|
-
var upstream = transformParams.upstream;
|
|
2112
|
-
if (arrayUtil.isArray(dimensionsConfig)) {
|
|
2113
|
-
var result = [];
|
|
2114
|
-
for (var i = 0; i < dimensionsConfig.length; i++) {
|
|
2115
|
-
var dimInfo = upstream.getDimensionInfo(dimensionsConfig[i]);
|
|
2116
|
-
validateDimensionExists(dimInfo, dimensionsConfig[i]);
|
|
2117
|
-
result[i] = dimInfo.index;
|
|
2118
|
-
}
|
|
2119
|
-
return result;
|
|
2120
|
-
} else {
|
|
2121
|
-
var dimInfo = upstream.getDimensionInfo(dimensionsConfig);
|
|
2122
|
-
validateDimensionExists(dimInfo, dimensionsConfig);
|
|
2123
|
-
return dimInfo.index;
|
|
2124
|
-
}
|
|
2125
|
-
function validateDimensionExists(dimInfo2, dimConfig) {
|
|
2126
|
-
if (!dimInfo2) {
|
|
2127
|
-
throw new Error("Can not find dimension by " + dimConfig);
|
|
2128
|
-
}
|
|
2129
|
-
}
|
|
2130
|
-
}
|
|
2131
|
-
function normalizeNewDimensions(dimensionsConfig) {
|
|
2132
|
-
if (arrayUtil.isArray(dimensionsConfig)) {
|
|
2133
|
-
var names = [];
|
|
2134
|
-
var indices = [];
|
|
2135
|
-
for (var i = 0; i < dimensionsConfig.length; i++) {
|
|
2136
|
-
var item = parseDimensionNewItem(dimensionsConfig[i]);
|
|
2137
|
-
names.push(item.name);
|
|
2138
|
-
indices.push(item.index);
|
|
2139
|
-
}
|
|
2140
|
-
return { name: names, index: indices };
|
|
2141
|
-
} else if (dimensionsConfig != null) {
|
|
2142
|
-
return parseDimensionNewItem(dimensionsConfig);
|
|
2143
|
-
}
|
|
2144
|
-
function parseDimensionNewItem(dimConfig) {
|
|
2145
|
-
if (numberUtil.isNumber(dimConfig)) {
|
|
2146
|
-
return { index: dimConfig };
|
|
2147
|
-
} else if (objectUtil.isObject(dimConfig) && numberUtil.isNumber(dimConfig.index)) {
|
|
2148
|
-
return dimConfig;
|
|
2149
|
-
}
|
|
2150
|
-
throw new Error("Illegle new dimensions config. Expect `{ name: string, index: number }`.");
|
|
2151
|
-
}
|
|
2152
|
-
}
|
|
2153
|
-
return {
|
|
2154
|
-
normalizeExistingDimensions,
|
|
2155
|
-
normalizeNewDimensions
|
|
2156
|
-
};
|
|
2157
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2158
|
-
},
|
|
2159
|
-
function(module2, exports2, __webpack_require__) {
|
|
2160
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2161
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2162
|
-
function extend(target, source) {
|
|
2163
|
-
if (Object.assign) {
|
|
2164
|
-
Object.assign(target, source);
|
|
2165
|
-
} else {
|
|
2166
|
-
for (var key in source) {
|
|
2167
|
-
if (source.hasOwnProperty(key)) {
|
|
2168
|
-
target[key] = source[key];
|
|
2169
|
-
}
|
|
2170
|
-
}
|
|
2171
|
-
}
|
|
2172
|
-
return target;
|
|
2173
|
-
}
|
|
2174
|
-
function isObject(value) {
|
|
2175
|
-
const type = typeof value;
|
|
2176
|
-
return type === "function" || !!value && type === "object";
|
|
2177
|
-
}
|
|
2178
|
-
return {
|
|
2179
|
-
extend,
|
|
2180
|
-
isObject
|
|
2181
|
-
};
|
|
2182
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2183
|
-
},
|
|
2184
|
-
function(module2, exports2, __webpack_require__) {
|
|
2185
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2186
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2187
|
-
var histogram = __webpack_require__(15);
|
|
2188
|
-
var transformHelper = __webpack_require__(19);
|
|
2189
|
-
return {
|
|
2190
|
-
type: "ecStat:histogram",
|
|
2191
|
-
transform: function transform(params) {
|
|
2192
|
-
var upstream = params.upstream;
|
|
2193
|
-
var config = params.config || {};
|
|
2194
|
-
var result = histogram(upstream.cloneRawData(), {
|
|
2195
|
-
method: config.method,
|
|
2196
|
-
dimensions: transformHelper.normalizeExistingDimensions(params, config.dimensions)
|
|
2197
|
-
});
|
|
2198
|
-
return [{
|
|
2199
|
-
dimensions: ["MeanOfV0V1", "VCount", "V0", "V1", "DisplayableName"],
|
|
2200
|
-
data: result.data
|
|
2201
|
-
}, {
|
|
2202
|
-
data: result.customData
|
|
2203
|
-
}];
|
|
2204
|
-
}
|
|
2205
|
-
};
|
|
2206
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2207
|
-
},
|
|
2208
|
-
function(module2, exports2, __webpack_require__) {
|
|
2209
|
-
var __WEBPACK_AMD_DEFINE_RESULT__;
|
|
2210
|
-
!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require2) {
|
|
2211
|
-
var clustering = __webpack_require__(1);
|
|
2212
|
-
var numberUtil = __webpack_require__(4);
|
|
2213
|
-
var transformHelper = __webpack_require__(19);
|
|
2214
|
-
var isNumber = numberUtil.isNumber;
|
|
2215
|
-
return {
|
|
2216
|
-
type: "ecStat:clustering",
|
|
2217
|
-
transform: function transform(params) {
|
|
2218
|
-
var upstream = params.upstream;
|
|
2219
|
-
var config = params.config || {};
|
|
2220
|
-
var clusterCount = config.clusterCount;
|
|
2221
|
-
if (!isNumber(clusterCount) || clusterCount <= 0) {
|
|
2222
|
-
throw new Error('config param "clusterCount" need to be specified as an interger greater than 1.');
|
|
2223
|
-
}
|
|
2224
|
-
if (clusterCount === 1) {
|
|
2225
|
-
return [{}, {
|
|
2226
|
-
data: []
|
|
2227
|
-
}];
|
|
2228
|
-
}
|
|
2229
|
-
var outputClusterIndexDimension = transformHelper.normalizeNewDimensions(config.outputClusterIndexDimension);
|
|
2230
|
-
var outputCentroidDimensions = transformHelper.normalizeNewDimensions(config.outputCentroidDimensions);
|
|
2231
|
-
if (outputClusterIndexDimension == null) {
|
|
2232
|
-
throw new Error("outputClusterIndexDimension is required as a number.");
|
|
2233
|
-
}
|
|
2234
|
-
var result = clustering.hierarchicalKMeans(upstream.cloneRawData(), {
|
|
2235
|
-
clusterCount,
|
|
2236
|
-
stepByStep: false,
|
|
2237
|
-
dimensions: transformHelper.normalizeExistingDimensions(params, config.dimensions),
|
|
2238
|
-
outputType: clustering.OutputType.SINGLE,
|
|
2239
|
-
outputClusterIndexDimension: outputClusterIndexDimension.index,
|
|
2240
|
-
outputCentroidDimensions: (outputCentroidDimensions || {}).index
|
|
2241
|
-
});
|
|
2242
|
-
var sourceDimAll = upstream.cloneAllDimensionInfo();
|
|
2243
|
-
var resultDimsDef = [];
|
|
2244
|
-
for (var i = 0; i < sourceDimAll.length; i++) {
|
|
2245
|
-
var sourceDimItem = sourceDimAll[i];
|
|
2246
|
-
resultDimsDef.push(sourceDimItem.name);
|
|
2247
|
-
}
|
|
2248
|
-
resultDimsDef[outputClusterIndexDimension.index] = outputClusterIndexDimension.name;
|
|
2249
|
-
if (outputCentroidDimensions) {
|
|
2250
|
-
for (var i = 0; i < outputCentroidDimensions.index.length; i++) {
|
|
2251
|
-
if (outputCentroidDimensions.name[i] != null) {
|
|
2252
|
-
resultDimsDef[outputCentroidDimensions.index[i]] = outputCentroidDimensions.name[i];
|
|
2253
|
-
}
|
|
2254
|
-
}
|
|
2255
|
-
}
|
|
2256
|
-
return [{
|
|
2257
|
-
dimensions: resultDimsDef,
|
|
2258
|
-
data: result.data
|
|
2259
|
-
}, {
|
|
2260
|
-
data: result.centroids
|
|
2261
|
-
}];
|
|
2262
|
-
}
|
|
2263
|
-
};
|
|
2264
|
-
}.call(exports2, __webpack_require__, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
2265
|
-
}
|
|
2266
|
-
]);
|
|
2267
|
-
});
|
|
2268
|
-
})(ecStat);
|
|
2269
|
-
var echartsStat = ecStat.exports;
|
|
2270
672
|
function getRegressionConfs({ regressions = [] }, data) {
|
|
2271
673
|
const regressionDataSets = [];
|
|
2272
674
|
const regressionSeries = [];
|
|
@@ -2274,7 +676,7 @@ function getRegressionConfs({ regressions = [] }, data) {
|
|
|
2274
676
|
if (data.length === 0) {
|
|
2275
677
|
return { regressionDataSets, regressionSeries, regressionXAxes };
|
|
2276
678
|
}
|
|
2277
|
-
regressions.forEach(({ transform, plot, name, y_axis_data_key }) => {
|
|
679
|
+
regressions.forEach(({ transform: transform2, plot, name, y_axis_data_key }) => {
|
|
2278
680
|
const xAxisId = `x-axis-for-${name}`;
|
|
2279
681
|
const rawDatasetId = `dataset-for-${name}--raw`;
|
|
2280
682
|
const regDatasetId = `dataset-for-${name}--transformed`;
|
|
@@ -2283,11 +685,12 @@ function getRegressionConfs({ regressions = [] }, data) {
|
|
|
2283
685
|
source: data.map((d, i) => [i, d[y_axis_data_key]])
|
|
2284
686
|
});
|
|
2285
687
|
regressionDataSets.push({
|
|
2286
|
-
transform,
|
|
688
|
+
transform: transform2,
|
|
2287
689
|
id: regDatasetId,
|
|
2288
690
|
fromDatasetId: rawDatasetId
|
|
2289
691
|
});
|
|
2290
|
-
regressionSeries.push(
|
|
692
|
+
regressionSeries.push({
|
|
693
|
+
...plot,
|
|
2291
694
|
name,
|
|
2292
695
|
datasetId: regDatasetId,
|
|
2293
696
|
xAxisId,
|
|
@@ -2295,7 +698,7 @@ function getRegressionConfs({ regressions = [] }, data) {
|
|
|
2295
698
|
tooltip: {
|
|
2296
699
|
show: false
|
|
2297
700
|
}
|
|
2298
|
-
})
|
|
701
|
+
});
|
|
2299
702
|
regressionXAxes.push({
|
|
2300
703
|
type: "category",
|
|
2301
704
|
id: xAxisId,
|
|
@@ -2331,7 +734,7 @@ const defaultOption$1 = {
|
|
|
2331
734
|
}
|
|
2332
735
|
};
|
|
2333
736
|
function getOption(conf, data) {
|
|
2334
|
-
var
|
|
737
|
+
var _a;
|
|
2335
738
|
const labelFormatters = conf.y_axes.reduce((ret, { label_formatter }, index2) => {
|
|
2336
739
|
ret[index2] = function formatter(payload) {
|
|
2337
740
|
const value = typeof payload === "object" ? payload.value : payload;
|
|
@@ -2353,9 +756,8 @@ function getOption(conf, data) {
|
|
|
2353
756
|
ret[name] = yAxisIndex;
|
|
2354
757
|
return ret;
|
|
2355
758
|
}, {});
|
|
2356
|
-
const series = conf.series.map((
|
|
2357
|
-
|
|
2358
|
-
const ret = __spreadValues({
|
|
759
|
+
const series = conf.series.map(({ y_axis_data_key, yAxisIndex, label_position, name, ...rest }) => {
|
|
760
|
+
const ret = {
|
|
2359
761
|
data: data.map((d) => d[y_axis_data_key]),
|
|
2360
762
|
label: {
|
|
2361
763
|
show: !!label_position,
|
|
@@ -2364,8 +766,9 @@ function getOption(conf, data) {
|
|
|
2364
766
|
},
|
|
2365
767
|
name,
|
|
2366
768
|
xAxisId: "main-x-axis",
|
|
2367
|
-
yAxisIndex
|
|
2368
|
-
|
|
769
|
+
yAxisIndex,
|
|
770
|
+
...rest
|
|
771
|
+
};
|
|
2369
772
|
return ret;
|
|
2370
773
|
});
|
|
2371
774
|
const { regressionDataSets, regressionSeries, regressionXAxes } = getRegressionConfs(conf, data);
|
|
@@ -2373,20 +776,20 @@ function getOption(conf, data) {
|
|
|
2373
776
|
xAxis: [
|
|
2374
777
|
{
|
|
2375
778
|
data: data.map((d) => d[conf.x_axis_data_key]),
|
|
2376
|
-
name: (
|
|
779
|
+
name: (_a = conf.x_axis_name) != null ? _a : "",
|
|
2377
780
|
id: "main-x-axis"
|
|
2378
781
|
},
|
|
2379
782
|
...regressionXAxes
|
|
2380
783
|
],
|
|
2381
|
-
yAxis: conf.y_axes.map((
|
|
2382
|
-
var
|
|
2383
|
-
|
|
2384
|
-
|
|
784
|
+
yAxis: conf.y_axes.map(({ label_formatter, ...rest }, index2) => {
|
|
785
|
+
var _a2;
|
|
786
|
+
return {
|
|
787
|
+
...rest,
|
|
2385
788
|
axisLabel: {
|
|
2386
789
|
show: true,
|
|
2387
|
-
formatter: (
|
|
790
|
+
formatter: (_a2 = labelFormatters[index2]) != null ? _a2 : labelFormatters.default
|
|
2388
791
|
}
|
|
2389
|
-
}
|
|
792
|
+
};
|
|
2390
793
|
}),
|
|
2391
794
|
dataset: [
|
|
2392
795
|
...regressionDataSets
|
|
@@ -2402,12 +805,12 @@ function getOption(conf, data) {
|
|
|
2402
805
|
return "";
|
|
2403
806
|
}
|
|
2404
807
|
const lines = arr.map(({ seriesName, value }) => {
|
|
2405
|
-
var
|
|
808
|
+
var _a2;
|
|
2406
809
|
if (!seriesName) {
|
|
2407
810
|
return value;
|
|
2408
811
|
}
|
|
2409
812
|
const yAxisIndex = yAxisIndexMap[seriesName];
|
|
2410
|
-
const formatter = (
|
|
813
|
+
const formatter = (_a2 = labelFormatters[yAxisIndex]) != null ? _a2 : labelFormatters.default;
|
|
2411
814
|
return `${seriesName}: ${formatter({ value })}`;
|
|
2412
815
|
});
|
|
2413
816
|
lines.unshift(`<strong>${arr[0].name}</strong>`);
|
|
@@ -2900,7 +1303,7 @@ function templateToJSX(template, variables, data) {
|
|
|
2900
1303
|
});
|
|
2901
1304
|
}
|
|
2902
1305
|
echarts.use([BarChart, LineChart, ScatterChart, GridComponent, LegendComponent, TooltipComponent, CanvasRenderer]);
|
|
2903
|
-
echarts.registerTransform(
|
|
1306
|
+
echarts.registerTransform(transform.regression);
|
|
2904
1307
|
function templateNotEmpty(str) {
|
|
2905
1308
|
return str.trim().length > 0;
|
|
2906
1309
|
}
|
|
@@ -3048,15 +1451,12 @@ function VizTable({
|
|
|
3048
1451
|
width,
|
|
3049
1452
|
height
|
|
3050
1453
|
}) {
|
|
3051
|
-
const
|
|
1454
|
+
const {
|
|
3052
1455
|
id_field,
|
|
3053
1456
|
use_raw_columns,
|
|
3054
|
-
columns
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
"use_raw_columns",
|
|
3058
|
-
"columns"
|
|
3059
|
-
]);
|
|
1457
|
+
columns,
|
|
1458
|
+
...rest
|
|
1459
|
+
} = conf;
|
|
3060
1460
|
const labels = React.useMemo(() => {
|
|
3061
1461
|
if (use_raw_columns) {
|
|
3062
1462
|
return Object.keys(data == null ? void 0 : data[0]);
|
|
@@ -3073,11 +1473,11 @@ function VizTable({
|
|
|
3073
1473
|
}
|
|
3074
1474
|
return columns;
|
|
3075
1475
|
}, [use_raw_columns, columns, data]);
|
|
3076
|
-
return /* @__PURE__ */ jsxs(Table,
|
|
1476
|
+
return /* @__PURE__ */ jsxs(Table, {
|
|
3077
1477
|
sx: {
|
|
3078
1478
|
maxHeight: height
|
|
3079
|
-
}
|
|
3080
|
-
|
|
1479
|
+
},
|
|
1480
|
+
...rest,
|
|
3081
1481
|
children: [/* @__PURE__ */ jsx("thead", {
|
|
3082
1482
|
children: /* @__PURE__ */ jsx("tr", {
|
|
3083
1483
|
children: labels.map((label) => /* @__PURE__ */ jsx("th", {
|
|
@@ -3116,12 +1516,13 @@ function VizTable({
|
|
|
3116
1516
|
})
|
|
3117
1517
|
})
|
|
3118
1518
|
})]
|
|
3119
|
-
})
|
|
1519
|
+
});
|
|
3120
1520
|
}
|
|
3121
1521
|
function interpolateString(template, params = {}) {
|
|
3122
|
-
const extendedParams =
|
|
1522
|
+
const extendedParams = {
|
|
1523
|
+
...params,
|
|
3123
1524
|
numbro
|
|
3124
|
-
}
|
|
1525
|
+
};
|
|
3125
1526
|
const names = Object.keys(extendedParams);
|
|
3126
1527
|
const vals = Object.values(extendedParams);
|
|
3127
1528
|
try {
|
|
@@ -3137,21 +1538,17 @@ function VizText({
|
|
|
3137
1538
|
data
|
|
3138
1539
|
}) {
|
|
3139
1540
|
return /* @__PURE__ */ jsx(Fragment, {
|
|
3140
|
-
children: paragraphs.map((
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
},
|
|
3152
|
-
children: interpolateString(template, data[0])
|
|
3153
|
-
}), `${template}---${index2}`);
|
|
3154
|
-
})
|
|
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}`))
|
|
3155
1552
|
});
|
|
3156
1553
|
}
|
|
3157
1554
|
echarts.use([GridComponent, VisualMapComponent, LegendComponent, TooltipComponent, CanvasRenderer]);
|
|
@@ -3161,22 +1558,19 @@ function VizBar3D({
|
|
|
3161
1558
|
width,
|
|
3162
1559
|
height
|
|
3163
1560
|
}) {
|
|
3164
|
-
const
|
|
1561
|
+
const {
|
|
3165
1562
|
x_axis_data_key,
|
|
3166
1563
|
y_axis_data_key,
|
|
3167
|
-
z_axis_data_key
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
"y_axis_data_key",
|
|
3171
|
-
"z_axis_data_key"
|
|
3172
|
-
]);
|
|
1564
|
+
z_axis_data_key,
|
|
1565
|
+
...restConf
|
|
1566
|
+
} = conf;
|
|
3173
1567
|
const min = React.useMemo(() => {
|
|
3174
1568
|
return _.minBy(data, (d) => d[z_axis_data_key])[z_axis_data_key];
|
|
3175
1569
|
}, [data, z_axis_data_key]);
|
|
3176
1570
|
const max = React.useMemo(() => {
|
|
3177
1571
|
return _.maxBy(data, (d) => d[z_axis_data_key])[z_axis_data_key];
|
|
3178
1572
|
}, [data, z_axis_data_key]);
|
|
3179
|
-
const option =
|
|
1573
|
+
const option = {
|
|
3180
1574
|
tooltip: {},
|
|
3181
1575
|
backgroundColor: "#fff",
|
|
3182
1576
|
visualMap: {
|
|
@@ -3209,14 +1603,14 @@ function VizBar3D({
|
|
|
3209
1603
|
intensity: 1.5
|
|
3210
1604
|
}
|
|
3211
1605
|
}
|
|
3212
|
-
}
|
|
3213
|
-
|
|
1606
|
+
},
|
|
1607
|
+
...restConf,
|
|
3214
1608
|
series: [{
|
|
3215
1609
|
type: "bar3D",
|
|
3216
1610
|
wireframe: {},
|
|
3217
1611
|
data: data.map((d) => [d[x_axis_data_key], d[y_axis_data_key], d[z_axis_data_key]])
|
|
3218
1612
|
}]
|
|
3219
|
-
}
|
|
1613
|
+
};
|
|
3220
1614
|
return /* @__PURE__ */ jsx(ReactEChartsCore, {
|
|
3221
1615
|
echarts,
|
|
3222
1616
|
option,
|
|
@@ -3267,13 +1661,11 @@ function VizPie({
|
|
|
3267
1661
|
width,
|
|
3268
1662
|
height
|
|
3269
1663
|
}) {
|
|
3270
|
-
const
|
|
1664
|
+
const {
|
|
3271
1665
|
label_field = "name",
|
|
3272
|
-
value_field = "value"
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
"value_field"
|
|
3276
|
-
]);
|
|
1666
|
+
value_field = "value",
|
|
1667
|
+
...restConf
|
|
1668
|
+
} = conf;
|
|
3277
1669
|
const chartData = React.useMemo(() => {
|
|
3278
1670
|
return data.map((d) => ({
|
|
3279
1671
|
name: d[label_field],
|
|
@@ -3350,21 +1742,37 @@ function renderViz(width, height, data, viz) {
|
|
|
3350
1742
|
};
|
|
3351
1743
|
switch (viz.type) {
|
|
3352
1744
|
case "sunburst":
|
|
3353
|
-
return /* @__PURE__ */ jsx(Sunbrust,
|
|
1745
|
+
return /* @__PURE__ */ jsx(Sunbrust, {
|
|
1746
|
+
...props
|
|
1747
|
+
});
|
|
3354
1748
|
case "cartesian":
|
|
3355
|
-
return /* @__PURE__ */ jsx(VizCartesianChart,
|
|
1749
|
+
return /* @__PURE__ */ jsx(VizCartesianChart, {
|
|
1750
|
+
...props
|
|
1751
|
+
});
|
|
3356
1752
|
case "table":
|
|
3357
|
-
return /* @__PURE__ */ jsx(VizTable,
|
|
1753
|
+
return /* @__PURE__ */ jsx(VizTable, {
|
|
1754
|
+
...props
|
|
1755
|
+
});
|
|
3358
1756
|
case "text":
|
|
3359
|
-
return /* @__PURE__ */ jsx(VizText,
|
|
1757
|
+
return /* @__PURE__ */ jsx(VizText, {
|
|
1758
|
+
...props
|
|
1759
|
+
});
|
|
3360
1760
|
case "stats":
|
|
3361
|
-
return /* @__PURE__ */ jsx(VizStats,
|
|
1761
|
+
return /* @__PURE__ */ jsx(VizStats, {
|
|
1762
|
+
...props
|
|
1763
|
+
});
|
|
3362
1764
|
case "rich-text":
|
|
3363
|
-
return /* @__PURE__ */ jsx(VizRichText,
|
|
1765
|
+
return /* @__PURE__ */ jsx(VizRichText, {
|
|
1766
|
+
...props
|
|
1767
|
+
});
|
|
3364
1768
|
case "bar-3d":
|
|
3365
|
-
return /* @__PURE__ */ jsx(VizBar3D,
|
|
1769
|
+
return /* @__PURE__ */ jsx(VizBar3D, {
|
|
1770
|
+
...props
|
|
1771
|
+
});
|
|
3366
1772
|
case "pie":
|
|
3367
|
-
return /* @__PURE__ */ jsx(VizPie,
|
|
1773
|
+
return /* @__PURE__ */ jsx(VizPie, {
|
|
1774
|
+
...props
|
|
1775
|
+
});
|
|
3368
1776
|
default:
|
|
3369
1777
|
return null;
|
|
3370
1778
|
}
|
|
@@ -3505,23 +1913,25 @@ function VizBar3DPanel({
|
|
|
3505
1913
|
control,
|
|
3506
1914
|
render: ({
|
|
3507
1915
|
field
|
|
3508
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
1916
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
3509
1917
|
label: "Data Field",
|
|
3510
1918
|
required: true,
|
|
3511
|
-
data
|
|
3512
|
-
|
|
1919
|
+
data,
|
|
1920
|
+
...field
|
|
1921
|
+
})
|
|
3513
1922
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3514
1923
|
name: "xAxis3D.name",
|
|
3515
1924
|
control,
|
|
3516
1925
|
render: ({
|
|
3517
1926
|
field
|
|
3518
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
1927
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3519
1928
|
sx: {
|
|
3520
1929
|
flexGrow: 1
|
|
3521
1930
|
},
|
|
3522
1931
|
size: "md",
|
|
3523
|
-
label: "Name"
|
|
3524
|
-
|
|
1932
|
+
label: "Name",
|
|
1933
|
+
...field
|
|
1934
|
+
})
|
|
3525
1935
|
})]
|
|
3526
1936
|
}), /* @__PURE__ */ jsx(Text, {
|
|
3527
1937
|
mt: "lg",
|
|
@@ -3539,23 +1949,25 @@ function VizBar3DPanel({
|
|
|
3539
1949
|
control,
|
|
3540
1950
|
render: ({
|
|
3541
1951
|
field
|
|
3542
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
1952
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
3543
1953
|
label: "Data Field",
|
|
3544
1954
|
required: true,
|
|
3545
|
-
data
|
|
3546
|
-
|
|
1955
|
+
data,
|
|
1956
|
+
...field
|
|
1957
|
+
})
|
|
3547
1958
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3548
1959
|
name: "yAxis3D.name",
|
|
3549
1960
|
control,
|
|
3550
1961
|
render: ({
|
|
3551
1962
|
field
|
|
3552
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
1963
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3553
1964
|
sx: {
|
|
3554
1965
|
flexGrow: 1
|
|
3555
1966
|
},
|
|
3556
1967
|
size: "md",
|
|
3557
|
-
label: "Name"
|
|
3558
|
-
|
|
1968
|
+
label: "Name",
|
|
1969
|
+
...field
|
|
1970
|
+
})
|
|
3559
1971
|
})]
|
|
3560
1972
|
}), /* @__PURE__ */ jsx(Text, {
|
|
3561
1973
|
mt: "lg",
|
|
@@ -3573,23 +1985,25 @@ function VizBar3DPanel({
|
|
|
3573
1985
|
control,
|
|
3574
1986
|
render: ({
|
|
3575
1987
|
field
|
|
3576
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
1988
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
3577
1989
|
label: "Data Field",
|
|
3578
1990
|
required: true,
|
|
3579
|
-
data
|
|
3580
|
-
|
|
1991
|
+
data,
|
|
1992
|
+
...field
|
|
1993
|
+
})
|
|
3581
1994
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3582
1995
|
name: "zAxis3D.name",
|
|
3583
1996
|
control,
|
|
3584
1997
|
render: ({
|
|
3585
1998
|
field
|
|
3586
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
1999
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3587
2000
|
sx: {
|
|
3588
2001
|
flexGrow: 1
|
|
3589
2002
|
},
|
|
3590
2003
|
size: "md",
|
|
3591
|
-
label: "Name"
|
|
3592
|
-
|
|
2004
|
+
label: "Name",
|
|
2005
|
+
...field
|
|
2006
|
+
})
|
|
3593
2007
|
})]
|
|
3594
2008
|
}), /* @__PURE__ */ jsx(Group, {
|
|
3595
2009
|
position: "center",
|
|
@@ -3679,24 +2093,26 @@ function BarFields({
|
|
|
3679
2093
|
control,
|
|
3680
2094
|
render: ({
|
|
3681
2095
|
field
|
|
3682
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
2096
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3683
2097
|
label: "Stack",
|
|
3684
2098
|
placeholder: "Stack bars by this ID",
|
|
3685
2099
|
sx: {
|
|
3686
2100
|
flexGrow: 1
|
|
3687
|
-
}
|
|
3688
|
-
|
|
2101
|
+
},
|
|
2102
|
+
...field
|
|
2103
|
+
})
|
|
3689
2104
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3690
2105
|
name: `series.${index2}.barWidth`,
|
|
3691
2106
|
control,
|
|
3692
2107
|
render: ({
|
|
3693
2108
|
field
|
|
3694
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
2109
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3695
2110
|
label: "Bar Width",
|
|
3696
2111
|
sx: {
|
|
3697
2112
|
flexGrow: 1
|
|
3698
|
-
}
|
|
3699
|
-
|
|
2113
|
+
},
|
|
2114
|
+
...field
|
|
2115
|
+
})
|
|
3700
2116
|
})]
|
|
3701
2117
|
});
|
|
3702
2118
|
}
|
|
@@ -3726,20 +2142,20 @@ function LineFields({
|
|
|
3726
2142
|
control,
|
|
3727
2143
|
render: ({
|
|
3728
2144
|
field
|
|
3729
|
-
}) => /* @__PURE__ */ jsx(Select,
|
|
2145
|
+
}) => /* @__PURE__ */ jsx(Select, {
|
|
3730
2146
|
label: "Step",
|
|
3731
2147
|
data: stepOptions,
|
|
3732
2148
|
sx: {
|
|
3733
2149
|
flexGrow: 1,
|
|
3734
2150
|
maxWidth: "48%"
|
|
3735
|
-
}
|
|
3736
|
-
|
|
2151
|
+
},
|
|
2152
|
+
...field,
|
|
3737
2153
|
value: String(field.value),
|
|
3738
2154
|
onChange: (v) => {
|
|
3739
2155
|
const step = v === "false" ? false : v;
|
|
3740
2156
|
field.onChange(step);
|
|
3741
2157
|
}
|
|
3742
|
-
})
|
|
2158
|
+
})
|
|
3743
2159
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3744
2160
|
name: `series.${index2}.smooth`,
|
|
3745
2161
|
control,
|
|
@@ -3786,15 +2202,15 @@ function ScatterFields({
|
|
|
3786
2202
|
children: [/* @__PURE__ */ jsx(Text, {
|
|
3787
2203
|
size: "sm",
|
|
3788
2204
|
children: "Size"
|
|
3789
|
-
}), /* @__PURE__ */ jsx(Slider,
|
|
2205
|
+
}), /* @__PURE__ */ jsx(Slider, {
|
|
3790
2206
|
min: 1,
|
|
3791
2207
|
max: 10,
|
|
3792
|
-
marks: symbolSizeOptions
|
|
3793
|
-
|
|
2208
|
+
marks: symbolSizeOptions,
|
|
2209
|
+
...field,
|
|
3794
2210
|
sx: {
|
|
3795
2211
|
width: "100%"
|
|
3796
2212
|
}
|
|
3797
|
-
})
|
|
2213
|
+
})]
|
|
3798
2214
|
})
|
|
3799
2215
|
})
|
|
3800
2216
|
});
|
|
@@ -3870,7 +2286,7 @@ function SeriesItemField({
|
|
|
3870
2286
|
control,
|
|
3871
2287
|
render: ({
|
|
3872
2288
|
field
|
|
3873
|
-
}) => /* @__PURE__ */ jsx(SegmentedControl,
|
|
2289
|
+
}) => /* @__PURE__ */ jsx(SegmentedControl, {
|
|
3874
2290
|
data: [{
|
|
3875
2291
|
label: "Line",
|
|
3876
2292
|
value: "line"
|
|
@@ -3884,21 +2300,23 @@ function SeriesItemField({
|
|
|
3884
2300
|
label: "Boxplot",
|
|
3885
2301
|
value: "boxplot",
|
|
3886
2302
|
disabled: true
|
|
3887
|
-
}]
|
|
3888
|
-
|
|
2303
|
+
}],
|
|
2304
|
+
...field
|
|
2305
|
+
})
|
|
3889
2306
|
})
|
|
3890
2307
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3891
2308
|
name: `series.${index2}.name`,
|
|
3892
2309
|
control,
|
|
3893
2310
|
render: ({
|
|
3894
2311
|
field
|
|
3895
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
2312
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
3896
2313
|
label: "Name",
|
|
3897
2314
|
required: true,
|
|
3898
2315
|
sx: {
|
|
3899
2316
|
flex: 1
|
|
3900
|
-
}
|
|
3901
|
-
|
|
2317
|
+
},
|
|
2318
|
+
...field
|
|
2319
|
+
})
|
|
3902
2320
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
3903
2321
|
direction: "row",
|
|
3904
2322
|
grow: true,
|
|
@@ -3908,34 +2326,32 @@ function SeriesItemField({
|
|
|
3908
2326
|
control,
|
|
3909
2327
|
render: ({
|
|
3910
2328
|
field
|
|
3911
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
2329
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
3912
2330
|
label: "Value Field",
|
|
3913
2331
|
required: true,
|
|
3914
2332
|
data,
|
|
3915
2333
|
sx: {
|
|
3916
2334
|
flex: 1
|
|
3917
|
-
}
|
|
3918
|
-
|
|
2335
|
+
},
|
|
2336
|
+
...field
|
|
2337
|
+
})
|
|
3919
2338
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
3920
2339
|
name: `series.${index2}.yAxisIndex`,
|
|
3921
2340
|
control,
|
|
3922
|
-
render: (
|
|
3923
|
-
|
|
3924
|
-
field: _b
|
|
3925
|
-
} = _a, _c = _b, {
|
|
2341
|
+
render: ({
|
|
2342
|
+
field: {
|
|
3926
2343
|
value,
|
|
3927
|
-
onChange
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
return /* @__PURE__ */ jsx(Select, __spreadProps(__spreadValues({
|
|
2344
|
+
onChange,
|
|
2345
|
+
...rest
|
|
2346
|
+
}
|
|
2347
|
+
}) => {
|
|
2348
|
+
var _a;
|
|
2349
|
+
return /* @__PURE__ */ jsx(Select, {
|
|
3934
2350
|
label: "Y Axis",
|
|
3935
2351
|
data: yAxisOptions,
|
|
3936
|
-
disabled: yAxisOptions.length === 0
|
|
3937
|
-
|
|
3938
|
-
value: (
|
|
2352
|
+
disabled: yAxisOptions.length === 0,
|
|
2353
|
+
...rest,
|
|
2354
|
+
value: (_a = value == null ? void 0 : value.toString()) != null ? _a : "",
|
|
3939
2355
|
onChange: (value2) => {
|
|
3940
2356
|
if (!value2) {
|
|
3941
2357
|
onChange(0);
|
|
@@ -3946,7 +2362,7 @@ function SeriesItemField({
|
|
|
3946
2362
|
sx: {
|
|
3947
2363
|
flex: 1
|
|
3948
2364
|
}
|
|
3949
|
-
})
|
|
2365
|
+
});
|
|
3950
2366
|
}
|
|
3951
2367
|
})]
|
|
3952
2368
|
}), type === "line" && /* @__PURE__ */ jsx(LineFields, {
|
|
@@ -3963,10 +2379,11 @@ function SeriesItemField({
|
|
|
3963
2379
|
control,
|
|
3964
2380
|
render: ({
|
|
3965
2381
|
field
|
|
3966
|
-
}) => /* @__PURE__ */ jsx(Select,
|
|
2382
|
+
}) => /* @__PURE__ */ jsx(Select, {
|
|
3967
2383
|
label: "Label Position",
|
|
3968
|
-
data: labelPositions
|
|
3969
|
-
|
|
2384
|
+
data: labelPositions,
|
|
2385
|
+
...field
|
|
2386
|
+
})
|
|
3970
2387
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
3971
2388
|
direction: "column",
|
|
3972
2389
|
grow: true,
|
|
@@ -3979,7 +2396,9 @@ function SeriesItemField({
|
|
|
3979
2396
|
control,
|
|
3980
2397
|
render: ({
|
|
3981
2398
|
field
|
|
3982
|
-
}) => /* @__PURE__ */ jsx(MantineColorSelector,
|
|
2399
|
+
}) => /* @__PURE__ */ jsx(MantineColorSelector, {
|
|
2400
|
+
...field
|
|
2401
|
+
})
|
|
3983
2402
|
})]
|
|
3984
2403
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
3985
2404
|
color: "red",
|
|
@@ -4012,7 +2431,10 @@ function SeriesField({
|
|
|
4012
2431
|
});
|
|
4013
2432
|
const watchFieldArray = watch("series");
|
|
4014
2433
|
const controlledFields = fields.map((field, index2) => {
|
|
4015
|
-
return
|
|
2434
|
+
return {
|
|
2435
|
+
...field,
|
|
2436
|
+
...watchFieldArray[index2]
|
|
2437
|
+
};
|
|
4016
2438
|
});
|
|
4017
2439
|
const addSeries = () => append({
|
|
4018
2440
|
type: "bar",
|
|
@@ -4064,21 +2486,24 @@ function _NumbroFormatSelector({
|
|
|
4064
2486
|
onChange
|
|
4065
2487
|
}, ref) {
|
|
4066
2488
|
const changeOutput = (output) => {
|
|
4067
|
-
onChange(
|
|
2489
|
+
onChange({
|
|
2490
|
+
...value,
|
|
4068
2491
|
output
|
|
4069
|
-
})
|
|
2492
|
+
});
|
|
4070
2493
|
};
|
|
4071
2494
|
const changeMantissa = (mantissa) => {
|
|
4072
2495
|
const trimMantissa = mantissa === 0 ? false : value.trimMantissa;
|
|
4073
|
-
onChange(
|
|
2496
|
+
onChange({
|
|
2497
|
+
...value,
|
|
4074
2498
|
mantissa,
|
|
4075
2499
|
trimMantissa
|
|
4076
|
-
})
|
|
2500
|
+
});
|
|
4077
2501
|
};
|
|
4078
2502
|
const changeTrimMantissa = (event) => {
|
|
4079
|
-
onChange(
|
|
2503
|
+
onChange({
|
|
2504
|
+
...value,
|
|
4080
2505
|
trimMantissa: event.currentTarget.checked
|
|
4081
|
-
})
|
|
2506
|
+
});
|
|
4082
2507
|
};
|
|
4083
2508
|
return /* @__PURE__ */ jsx(Group, {
|
|
4084
2509
|
direction: "column",
|
|
@@ -4141,13 +2566,14 @@ function YAxisField({
|
|
|
4141
2566
|
control,
|
|
4142
2567
|
render: ({
|
|
4143
2568
|
field
|
|
4144
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
2569
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
4145
2570
|
label: "Name",
|
|
4146
2571
|
required: true,
|
|
4147
2572
|
sx: {
|
|
4148
2573
|
flex: 1
|
|
4149
|
-
}
|
|
4150
|
-
|
|
2574
|
+
},
|
|
2575
|
+
...field
|
|
2576
|
+
})
|
|
4151
2577
|
})
|
|
4152
2578
|
}), /* @__PURE__ */ jsx(Group, {
|
|
4153
2579
|
direction: "column",
|
|
@@ -4158,7 +2584,9 @@ function YAxisField({
|
|
|
4158
2584
|
control,
|
|
4159
2585
|
render: ({
|
|
4160
2586
|
field
|
|
4161
|
-
}) => /* @__PURE__ */ jsx(NumbroFormatSelector,
|
|
2587
|
+
}) => /* @__PURE__ */ jsx(NumbroFormatSelector, {
|
|
2588
|
+
...field
|
|
2589
|
+
})
|
|
4162
2590
|
})
|
|
4163
2591
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
4164
2592
|
color: "red",
|
|
@@ -4190,7 +2618,10 @@ function YAxesField({
|
|
|
4190
2618
|
});
|
|
4191
2619
|
const watchFieldArray = watch("y_axes");
|
|
4192
2620
|
const controlledFields = fields.map((field, index2) => {
|
|
4193
|
-
return
|
|
2621
|
+
return {
|
|
2622
|
+
...field,
|
|
2623
|
+
...watchFieldArray[index2]
|
|
2624
|
+
};
|
|
4194
2625
|
});
|
|
4195
2626
|
const addYAxis = () => append({
|
|
4196
2627
|
name: "",
|
|
@@ -4250,13 +2681,14 @@ function RegressionField({
|
|
|
4250
2681
|
control,
|
|
4251
2682
|
render: ({
|
|
4252
2683
|
field
|
|
4253
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
2684
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
4254
2685
|
label: "Name",
|
|
4255
2686
|
required: true,
|
|
4256
2687
|
sx: {
|
|
4257
2688
|
flex: 1
|
|
4258
|
-
}
|
|
4259
|
-
|
|
2689
|
+
},
|
|
2690
|
+
...field
|
|
2691
|
+
})
|
|
4260
2692
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
4261
2693
|
direction: "row",
|
|
4262
2694
|
grow: true,
|
|
@@ -4266,34 +2698,32 @@ function RegressionField({
|
|
|
4266
2698
|
control,
|
|
4267
2699
|
render: ({
|
|
4268
2700
|
field
|
|
4269
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
2701
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
4270
2702
|
label: "Value Field",
|
|
4271
2703
|
required: true,
|
|
4272
2704
|
data,
|
|
4273
2705
|
sx: {
|
|
4274
2706
|
flex: 1
|
|
4275
|
-
}
|
|
4276
|
-
|
|
2707
|
+
},
|
|
2708
|
+
...field
|
|
2709
|
+
})
|
|
4277
2710
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
4278
2711
|
name: `regressions.${index2}.plot.yAxisIndex`,
|
|
4279
2712
|
control,
|
|
4280
|
-
render: (
|
|
4281
|
-
|
|
4282
|
-
field: _b
|
|
4283
|
-
} = _a, _c = _b, {
|
|
2713
|
+
render: ({
|
|
2714
|
+
field: {
|
|
4284
2715
|
value,
|
|
4285
|
-
onChange
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
return /* @__PURE__ */ jsx(Select, __spreadProps(__spreadValues({
|
|
2716
|
+
onChange,
|
|
2717
|
+
...rest
|
|
2718
|
+
}
|
|
2719
|
+
}) => {
|
|
2720
|
+
var _a;
|
|
2721
|
+
return /* @__PURE__ */ jsx(Select, {
|
|
4292
2722
|
label: "Y Axis",
|
|
4293
2723
|
data: yAxisOptions,
|
|
4294
|
-
disabled: yAxisOptions.length === 0
|
|
4295
|
-
|
|
4296
|
-
value: (
|
|
2724
|
+
disabled: yAxisOptions.length === 0,
|
|
2725
|
+
...rest,
|
|
2726
|
+
value: (_a = value == null ? void 0 : value.toString()) != null ? _a : "",
|
|
4297
2727
|
onChange: (value2) => {
|
|
4298
2728
|
if (!value2) {
|
|
4299
2729
|
onChange(0);
|
|
@@ -4304,7 +2734,7 @@ function RegressionField({
|
|
|
4304
2734
|
sx: {
|
|
4305
2735
|
flex: 1
|
|
4306
2736
|
}
|
|
4307
|
-
})
|
|
2737
|
+
});
|
|
4308
2738
|
}
|
|
4309
2739
|
})]
|
|
4310
2740
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
@@ -4316,24 +2746,26 @@ function RegressionField({
|
|
|
4316
2746
|
control,
|
|
4317
2747
|
render: ({
|
|
4318
2748
|
field
|
|
4319
|
-
}) => /* @__PURE__ */ jsx(Select,
|
|
2749
|
+
}) => /* @__PURE__ */ jsx(Select, {
|
|
4320
2750
|
label: "Method",
|
|
4321
2751
|
data: regressionOptions,
|
|
4322
2752
|
sx: {
|
|
4323
2753
|
flex: 1
|
|
4324
|
-
}
|
|
4325
|
-
|
|
2754
|
+
},
|
|
2755
|
+
...field
|
|
2756
|
+
})
|
|
4326
2757
|
}), method === "polynomial" && /* @__PURE__ */ jsx(Controller, {
|
|
4327
2758
|
name: `regressions.${index2}.transform.config.order`,
|
|
4328
2759
|
control,
|
|
4329
2760
|
render: ({
|
|
4330
2761
|
field
|
|
4331
|
-
}) => /* @__PURE__ */ jsx(NumberInput,
|
|
2762
|
+
}) => /* @__PURE__ */ jsx(NumberInput, {
|
|
4332
2763
|
label: "Order",
|
|
4333
2764
|
sx: {
|
|
4334
2765
|
flex: 1
|
|
4335
|
-
}
|
|
4336
|
-
|
|
2766
|
+
},
|
|
2767
|
+
...field
|
|
2768
|
+
})
|
|
4337
2769
|
})]
|
|
4338
2770
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
4339
2771
|
direction: "column",
|
|
@@ -4347,7 +2779,9 @@ function RegressionField({
|
|
|
4347
2779
|
control,
|
|
4348
2780
|
render: ({
|
|
4349
2781
|
field
|
|
4350
|
-
}) => /* @__PURE__ */ jsx(MantineColorSelector,
|
|
2782
|
+
}) => /* @__PURE__ */ jsx(MantineColorSelector, {
|
|
2783
|
+
...field
|
|
2784
|
+
})
|
|
4351
2785
|
})]
|
|
4352
2786
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
4353
2787
|
color: "red",
|
|
@@ -4380,7 +2814,10 @@ function RegressionsField({
|
|
|
4380
2814
|
});
|
|
4381
2815
|
const watchFieldArray = watch("regressions");
|
|
4382
2816
|
const controlledFields = fields.map((field, index2) => {
|
|
4383
|
-
return
|
|
2817
|
+
return {
|
|
2818
|
+
...field,
|
|
2819
|
+
...watchFieldArray[index2]
|
|
2820
|
+
};
|
|
4384
2821
|
});
|
|
4385
2822
|
const yAxisOptions = React.useMemo(() => {
|
|
4386
2823
|
return getValues().y_axes.map(({
|
|
@@ -4669,19 +3106,17 @@ function getANewVariable() {
|
|
|
4669
3106
|
}
|
|
4670
3107
|
};
|
|
4671
3108
|
}
|
|
4672
|
-
const TemplateInput = React.forwardRef(function TemplateInput2(
|
|
4673
|
-
|
|
4674
|
-
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
"onChange"
|
|
4679
|
-
]);
|
|
4680
|
-
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, {
|
|
4681
3115
|
ref,
|
|
4682
3116
|
value,
|
|
4683
|
-
onChange
|
|
4684
|
-
|
|
3117
|
+
onChange,
|
|
3118
|
+
...rest
|
|
3119
|
+
});
|
|
4685
3120
|
});
|
|
4686
3121
|
function TemplateVariableField({
|
|
4687
3122
|
value,
|
|
@@ -4815,9 +3250,10 @@ function VariableField$1({
|
|
|
4815
3250
|
control,
|
|
4816
3251
|
render: ({
|
|
4817
3252
|
field
|
|
4818
|
-
}) => /* @__PURE__ */ jsx(TemplateVariableField,
|
|
4819
|
-
data
|
|
4820
|
-
|
|
3253
|
+
}) => /* @__PURE__ */ jsx(TemplateVariableField, {
|
|
3254
|
+
data,
|
|
3255
|
+
...field
|
|
3256
|
+
})
|
|
4821
3257
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
4822
3258
|
color: "red",
|
|
4823
3259
|
variant: "hover",
|
|
@@ -4849,7 +3285,10 @@ function StatsField({
|
|
|
4849
3285
|
watch("stats.templates");
|
|
4850
3286
|
const watchFieldArray = watch("stats.variables");
|
|
4851
3287
|
const controlledFields = fields.map((field, index2) => {
|
|
4852
|
-
return
|
|
3288
|
+
return {
|
|
3289
|
+
...field,
|
|
3290
|
+
...watchFieldArray[index2]
|
|
3291
|
+
};
|
|
4853
3292
|
});
|
|
4854
3293
|
const add = () => append(getANewVariable());
|
|
4855
3294
|
return /* @__PURE__ */ jsxs(Group, {
|
|
@@ -4865,25 +3304,27 @@ function StatsField({
|
|
|
4865
3304
|
control,
|
|
4866
3305
|
render: ({
|
|
4867
3306
|
field
|
|
4868
|
-
}) => /* @__PURE__ */ jsx(TemplateInput,
|
|
3307
|
+
}) => /* @__PURE__ */ jsx(TemplateInput, {
|
|
4869
3308
|
label: "Template for stats above the chart",
|
|
4870
3309
|
py: "md",
|
|
4871
3310
|
sx: {
|
|
4872
3311
|
flexGrow: 1
|
|
4873
|
-
}
|
|
4874
|
-
|
|
3312
|
+
},
|
|
3313
|
+
...field
|
|
3314
|
+
})
|
|
4875
3315
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
4876
3316
|
name: "stats.templates.bottom",
|
|
4877
3317
|
control,
|
|
4878
3318
|
render: ({
|
|
4879
3319
|
field
|
|
4880
|
-
}) => /* @__PURE__ */ jsx(TemplateInput,
|
|
3320
|
+
}) => /* @__PURE__ */ jsx(TemplateInput, {
|
|
4881
3321
|
label: "Template for stats under the chart",
|
|
4882
3322
|
py: "md",
|
|
4883
3323
|
sx: {
|
|
4884
3324
|
flexGrow: 1
|
|
4885
|
-
}
|
|
4886
|
-
|
|
3325
|
+
},
|
|
3326
|
+
...field
|
|
3327
|
+
})
|
|
4887
3328
|
})]
|
|
4888
3329
|
}), controlledFields.map((_variableItem, index2) => /* @__PURE__ */ jsx(VariableField$1, {
|
|
4889
3330
|
control,
|
|
@@ -4949,30 +3390,27 @@ function VizCartesianChartPanel({
|
|
|
4949
3390
|
setConf,
|
|
4950
3391
|
data
|
|
4951
3392
|
}) {
|
|
4952
|
-
const
|
|
3393
|
+
const {
|
|
4953
3394
|
series,
|
|
4954
|
-
y_axes
|
|
4955
|
-
|
|
4956
|
-
|
|
4957
|
-
"y_axes"
|
|
4958
|
-
]);
|
|
3395
|
+
y_axes,
|
|
3396
|
+
...restConf
|
|
3397
|
+
} = conf;
|
|
4959
3398
|
const defaultValues = React.useMemo(() => {
|
|
4960
|
-
const
|
|
3399
|
+
const {
|
|
4961
3400
|
x_axis_name = "",
|
|
4962
|
-
stats
|
|
4963
|
-
|
|
4964
|
-
|
|
4965
|
-
|
|
4966
|
-
]);
|
|
4967
|
-
return __spreadValues({
|
|
3401
|
+
stats,
|
|
3402
|
+
...rest
|
|
3403
|
+
} = restConf;
|
|
3404
|
+
return {
|
|
4968
3405
|
series: withDefaults(series != null ? series : []),
|
|
4969
3406
|
x_axis_name,
|
|
4970
3407
|
y_axes: y_axes != null ? y_axes : [{
|
|
4971
3408
|
name: "Y Axis",
|
|
4972
3409
|
label_formatter: defaultNumbroFormat
|
|
4973
3410
|
}],
|
|
4974
|
-
stats: normalizeStats(stats)
|
|
4975
|
-
|
|
3411
|
+
stats: normalizeStats(stats),
|
|
3412
|
+
...rest
|
|
3413
|
+
};
|
|
4976
3414
|
}, [series, restConf]);
|
|
4977
3415
|
React.useEffect(() => {
|
|
4978
3416
|
const configMalformed = !_.isEqual(conf, defaultValues);
|
|
@@ -5038,25 +3476,27 @@ function VizCartesianChartPanel({
|
|
|
5038
3476
|
control,
|
|
5039
3477
|
render: ({
|
|
5040
3478
|
field
|
|
5041
|
-
}) => /* @__PURE__ */ jsx(DataFieldSelector,
|
|
3479
|
+
}) => /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5042
3480
|
label: "X Axis Data Field",
|
|
5043
3481
|
required: true,
|
|
5044
3482
|
data,
|
|
5045
3483
|
sx: {
|
|
5046
3484
|
flex: 1
|
|
5047
|
-
}
|
|
5048
|
-
|
|
3485
|
+
},
|
|
3486
|
+
...field
|
|
3487
|
+
})
|
|
5049
3488
|
}), /* @__PURE__ */ jsx(Controller, {
|
|
5050
3489
|
name: "x_axis_name",
|
|
5051
3490
|
control,
|
|
5052
3491
|
render: ({
|
|
5053
3492
|
field
|
|
5054
|
-
}) => /* @__PURE__ */ jsx(TextInput,
|
|
3493
|
+
}) => /* @__PURE__ */ jsx(TextInput, {
|
|
5055
3494
|
label: "X Axis Name",
|
|
5056
3495
|
sx: {
|
|
5057
3496
|
flex: 1
|
|
5058
|
-
}
|
|
5059
|
-
|
|
3497
|
+
},
|
|
3498
|
+
...field
|
|
3499
|
+
})
|
|
5060
3500
|
})]
|
|
5061
3501
|
})
|
|
5062
3502
|
}), /* @__PURE__ */ jsx(Accordion.Item, {
|
|
@@ -5142,15 +3582,17 @@ function VizPiePanel({
|
|
|
5142
3582
|
border: "1px solid #eee",
|
|
5143
3583
|
borderRadius: "5px"
|
|
5144
3584
|
},
|
|
5145
|
-
children: [/* @__PURE__ */ jsx(DataFieldSelector,
|
|
3585
|
+
children: [/* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5146
3586
|
label: "Label Field",
|
|
5147
3587
|
required: true,
|
|
5148
|
-
data
|
|
5149
|
-
|
|
3588
|
+
data,
|
|
3589
|
+
...form.getInputProps("label_field")
|
|
3590
|
+
}), /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5150
3591
|
label: "Value Field",
|
|
5151
3592
|
required: true,
|
|
5152
|
-
data
|
|
5153
|
-
|
|
3593
|
+
data,
|
|
3594
|
+
...form.getInputProps("value_field")
|
|
3595
|
+
})]
|
|
5154
3596
|
})]
|
|
5155
3597
|
})
|
|
5156
3598
|
});
|
|
@@ -5218,11 +3660,12 @@ function VizRichTextPanel({
|
|
|
5218
3660
|
control,
|
|
5219
3661
|
render: ({
|
|
5220
3662
|
field
|
|
5221
|
-
}) => /* @__PURE__ */ jsx(RichTextEditor,
|
|
3663
|
+
}) => /* @__PURE__ */ jsx(RichTextEditor, {
|
|
5222
3664
|
sx: {
|
|
5223
3665
|
flex: 1
|
|
5224
|
-
}
|
|
5225
|
-
|
|
3666
|
+
},
|
|
3667
|
+
...field
|
|
3668
|
+
})
|
|
5226
3669
|
})]
|
|
5227
3670
|
})
|
|
5228
3671
|
});
|
|
@@ -5284,9 +3727,10 @@ function VariableField({
|
|
|
5284
3727
|
control,
|
|
5285
3728
|
render: ({
|
|
5286
3729
|
field
|
|
5287
|
-
}) => /* @__PURE__ */ jsx(TemplateVariableField,
|
|
5288
|
-
data
|
|
5289
|
-
|
|
3730
|
+
}) => /* @__PURE__ */ jsx(TemplateVariableField, {
|
|
3731
|
+
data,
|
|
3732
|
+
...field
|
|
3733
|
+
})
|
|
5290
3734
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
5291
3735
|
color: "red",
|
|
5292
3736
|
variant: "hover",
|
|
@@ -5317,7 +3761,10 @@ function VariablesField({
|
|
|
5317
3761
|
});
|
|
5318
3762
|
const watchFieldArray = watch("variables");
|
|
5319
3763
|
const controlledFields = fields.map((field, index2) => {
|
|
5320
|
-
return
|
|
3764
|
+
return {
|
|
3765
|
+
...field,
|
|
3766
|
+
...watchFieldArray[index2]
|
|
3767
|
+
};
|
|
5321
3768
|
});
|
|
5322
3769
|
const add = () => append(getANewVariable());
|
|
5323
3770
|
return /* @__PURE__ */ jsxs(Group, {
|
|
@@ -5432,13 +3879,14 @@ function VizStatsPanel({
|
|
|
5432
3879
|
control,
|
|
5433
3880
|
render: ({
|
|
5434
3881
|
field
|
|
5435
|
-
}) => /* @__PURE__ */ jsx(TemplateInput,
|
|
3882
|
+
}) => /* @__PURE__ */ jsx(TemplateInput, {
|
|
5436
3883
|
label: "Template",
|
|
5437
3884
|
py: "md",
|
|
5438
3885
|
sx: {
|
|
5439
3886
|
flexGrow: 1
|
|
5440
|
-
}
|
|
5441
|
-
|
|
3887
|
+
},
|
|
3888
|
+
...field
|
|
3889
|
+
})
|
|
5442
3890
|
}), /* @__PURE__ */ jsx(Text, {
|
|
5443
3891
|
pb: "sm",
|
|
5444
3892
|
pt: "md",
|
|
@@ -5501,15 +3949,17 @@ function SunburstPanel({
|
|
|
5501
3949
|
border: "1px solid #eee",
|
|
5502
3950
|
borderRadius: "5px"
|
|
5503
3951
|
},
|
|
5504
|
-
children: [/* @__PURE__ */ jsx(DataFieldSelector,
|
|
3952
|
+
children: [/* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5505
3953
|
label: "Label Field",
|
|
5506
3954
|
required: true,
|
|
5507
|
-
data
|
|
5508
|
-
|
|
3955
|
+
data,
|
|
3956
|
+
...form.getInputProps("label_field")
|
|
3957
|
+
}), /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5509
3958
|
label: "Value Field",
|
|
5510
3959
|
required: true,
|
|
5511
|
-
data
|
|
5512
|
-
|
|
3960
|
+
data,
|
|
3961
|
+
...form.getInputProps("value_field")
|
|
3962
|
+
})]
|
|
5513
3963
|
})]
|
|
5514
3964
|
})
|
|
5515
3965
|
});
|
|
@@ -5532,19 +3982,16 @@ function ValueTypeSelector({
|
|
|
5532
3982
|
sx
|
|
5533
3983
|
});
|
|
5534
3984
|
}
|
|
5535
|
-
function VizTablePanel(
|
|
5536
|
-
|
|
5537
|
-
|
|
5538
|
-
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5543
|
-
setConf,
|
|
5544
|
-
data
|
|
5545
|
-
} = _d;
|
|
3985
|
+
function VizTablePanel({
|
|
3986
|
+
conf: {
|
|
3987
|
+
columns,
|
|
3988
|
+
...restConf
|
|
3989
|
+
},
|
|
3990
|
+
setConf,
|
|
3991
|
+
data
|
|
3992
|
+
}) {
|
|
5546
3993
|
const form = useForm$1({
|
|
5547
|
-
initialValues:
|
|
3994
|
+
initialValues: {
|
|
5548
3995
|
id_field: "id",
|
|
5549
3996
|
use_raw_columns: true,
|
|
5550
3997
|
columns: formList(columns != null ? columns : []),
|
|
@@ -5552,8 +3999,9 @@ function VizTablePanel(_c) {
|
|
|
5552
3999
|
horizontalSpacing: "sm",
|
|
5553
4000
|
verticalSpacing: "sm",
|
|
5554
4001
|
striped: false,
|
|
5555
|
-
highlightOnHover: false
|
|
5556
|
-
|
|
4002
|
+
highlightOnHover: false,
|
|
4003
|
+
...restConf
|
|
4004
|
+
}
|
|
5557
4005
|
});
|
|
5558
4006
|
const addColumn = () => form.addListItem("columns", {
|
|
5559
4007
|
label: randomId(),
|
|
@@ -5595,11 +4043,12 @@ function VizTablePanel(_c) {
|
|
|
5595
4043
|
border: "1px solid #eee",
|
|
5596
4044
|
borderRadius: "5px"
|
|
5597
4045
|
},
|
|
5598
|
-
children: [/* @__PURE__ */ jsx(DataFieldSelector,
|
|
4046
|
+
children: [/* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5599
4047
|
label: "ID Field",
|
|
5600
4048
|
required: true,
|
|
5601
|
-
data
|
|
5602
|
-
|
|
4049
|
+
data,
|
|
4050
|
+
...form.getInputProps("id_field")
|
|
4051
|
+
}), /* @__PURE__ */ jsxs(Group, {
|
|
5603
4052
|
position: "apart",
|
|
5604
4053
|
mb: "lg",
|
|
5605
4054
|
grow: true,
|
|
@@ -5608,21 +4057,23 @@ function VizTablePanel(_c) {
|
|
|
5608
4057
|
flexGrow: 1
|
|
5609
4058
|
}
|
|
5610
4059
|
},
|
|
5611
|
-
children: [/* @__PURE__ */ jsx(TextInput,
|
|
4060
|
+
children: [/* @__PURE__ */ jsx(TextInput, {
|
|
5612
4061
|
label: "Horizontal Spacing",
|
|
5613
4062
|
placeholder: "10px, 1em, 1rem, 100%...",
|
|
5614
4063
|
required: true,
|
|
5615
4064
|
sx: {
|
|
5616
4065
|
flex: 1
|
|
5617
|
-
}
|
|
5618
|
-
|
|
4066
|
+
},
|
|
4067
|
+
...form.getInputProps("horizontalSpacing")
|
|
4068
|
+
}), /* @__PURE__ */ jsx(TextInput, {
|
|
5619
4069
|
label: "Vertical Spacing",
|
|
5620
4070
|
placeholder: "10px, 1em, 1rem, 100%...",
|
|
5621
4071
|
required: true,
|
|
5622
4072
|
sx: {
|
|
5623
4073
|
flex: 1
|
|
5624
|
-
}
|
|
5625
|
-
|
|
4074
|
+
},
|
|
4075
|
+
...form.getInputProps("verticalSpacing")
|
|
4076
|
+
})]
|
|
5626
4077
|
}), /* @__PURE__ */ jsx(Group, {
|
|
5627
4078
|
position: "apart",
|
|
5628
4079
|
mb: "lg",
|
|
@@ -5632,14 +4083,15 @@ function VizTablePanel(_c) {
|
|
|
5632
4083
|
flexGrow: 1
|
|
5633
4084
|
}
|
|
5634
4085
|
},
|
|
5635
|
-
children: /* @__PURE__ */ jsx(TextInput,
|
|
4086
|
+
children: /* @__PURE__ */ jsx(TextInput, {
|
|
5636
4087
|
label: "Font Size",
|
|
5637
4088
|
placeholder: "10px, 1em, 1rem, 100%...",
|
|
5638
4089
|
required: true,
|
|
5639
4090
|
sx: {
|
|
5640
4091
|
flex: 1
|
|
5641
|
-
}
|
|
5642
|
-
|
|
4092
|
+
},
|
|
4093
|
+
...form.getInputProps("fontSize")
|
|
4094
|
+
})
|
|
5643
4095
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
5644
4096
|
direction: "column",
|
|
5645
4097
|
grow: true,
|
|
@@ -5648,15 +4100,17 @@ function VizTablePanel(_c) {
|
|
|
5648
4100
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
5649
4101
|
position: "apart",
|
|
5650
4102
|
grow: true,
|
|
5651
|
-
children: [/* @__PURE__ */ jsx(Switch,
|
|
5652
|
-
label: "Striped"
|
|
5653
|
-
|
|
5654
|
-
|
|
5655
|
-
|
|
5656
|
-
|
|
5657
|
-
|
|
5658
|
-
|
|
5659
|
-
|
|
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
|
+
})]
|
|
5660
4114
|
})]
|
|
5661
4115
|
})]
|
|
5662
4116
|
}), /* @__PURE__ */ jsxs(Group, {
|
|
@@ -5670,11 +4124,12 @@ function VizTablePanel(_c) {
|
|
|
5670
4124
|
border: "1px solid #eee",
|
|
5671
4125
|
borderRadius: "5px"
|
|
5672
4126
|
},
|
|
5673
|
-
children: [/* @__PURE__ */ jsx(Switch,
|
|
5674
|
-
label: "Use Original Data Columns"
|
|
5675
|
-
|
|
5676
|
-
|
|
5677
|
-
|
|
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, {
|
|
5678
4133
|
direction: "column",
|
|
5679
4134
|
grow: true,
|
|
5680
4135
|
children: [/* @__PURE__ */ jsx(Text, {
|
|
@@ -5694,22 +4149,25 @@ function VizTablePanel(_c) {
|
|
|
5694
4149
|
children: [/* @__PURE__ */ jsxs(Group, {
|
|
5695
4150
|
position: "apart",
|
|
5696
4151
|
grow: true,
|
|
5697
|
-
children: [/* @__PURE__ */ jsx(TextInput,
|
|
4152
|
+
children: [/* @__PURE__ */ jsx(TextInput, {
|
|
5698
4153
|
label: "Label",
|
|
5699
4154
|
required: true,
|
|
5700
4155
|
sx: {
|
|
5701
4156
|
flex: 1
|
|
5702
|
-
}
|
|
5703
|
-
|
|
4157
|
+
},
|
|
4158
|
+
...form.getListInputProps("columns", index2, "label")
|
|
4159
|
+
}), /* @__PURE__ */ jsx(DataFieldSelector, {
|
|
5704
4160
|
label: "Value Field",
|
|
5705
4161
|
required: true,
|
|
5706
|
-
data
|
|
5707
|
-
|
|
4162
|
+
data,
|
|
4163
|
+
...form.getListInputProps("columns", index2, "value_field")
|
|
4164
|
+
}), /* @__PURE__ */ jsx(ValueTypeSelector, {
|
|
5708
4165
|
label: "Value Type",
|
|
5709
4166
|
sx: {
|
|
5710
4167
|
flex: 1
|
|
5711
|
-
}
|
|
5712
|
-
|
|
4168
|
+
},
|
|
4169
|
+
...form.getListInputProps("columns", index2, "value_type")
|
|
4170
|
+
})]
|
|
5713
4171
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
5714
4172
|
color: "red",
|
|
5715
4173
|
variant: "hover",
|
|
@@ -5768,9 +4226,10 @@ function VizTextPanel({
|
|
|
5768
4226
|
paragraphs: formList((_a = conf.paragraphs) != null ? _a : sampleParagraphs)
|
|
5769
4227
|
}
|
|
5770
4228
|
});
|
|
5771
|
-
const addParagraph = () => form.addListItem("paragraphs",
|
|
4229
|
+
const addParagraph = () => form.addListItem("paragraphs", {
|
|
4230
|
+
...sampleParagraphs[0],
|
|
5772
4231
|
template: randomId()
|
|
5773
|
-
})
|
|
4232
|
+
});
|
|
5774
4233
|
return /* @__PURE__ */ jsx(Group, {
|
|
5775
4234
|
direction: "column",
|
|
5776
4235
|
mt: "md",
|
|
@@ -5811,29 +4270,33 @@ function VizTextPanel({
|
|
|
5811
4270
|
border: "1px solid #eee",
|
|
5812
4271
|
position: "relative"
|
|
5813
4272
|
},
|
|
5814
|
-
children: [/* @__PURE__ */ jsx(TextInput,
|
|
4273
|
+
children: [/* @__PURE__ */ jsx(TextInput, {
|
|
5815
4274
|
placeholder: "Time: ${new Date().toISOString()}",
|
|
5816
4275
|
label: "Content Template",
|
|
5817
4276
|
required: true,
|
|
5818
4277
|
sx: {
|
|
5819
4278
|
flex: 1
|
|
5820
|
-
}
|
|
5821
|
-
|
|
4279
|
+
},
|
|
4280
|
+
...form.getListInputProps("paragraphs", index2, "template")
|
|
4281
|
+
}), /* @__PURE__ */ jsxs(Group, {
|
|
5822
4282
|
direction: "column",
|
|
5823
4283
|
grow: true,
|
|
5824
4284
|
children: [/* @__PURE__ */ jsx(Text, {
|
|
5825
4285
|
children: "Color"
|
|
5826
|
-
}), /* @__PURE__ */ jsx(MantineColorSelector,
|
|
4286
|
+
}), /* @__PURE__ */ jsx(MantineColorSelector, {
|
|
4287
|
+
...form.getListInputProps("paragraphs", index2, "color")
|
|
4288
|
+
})]
|
|
5827
4289
|
}), /* @__PURE__ */ jsx(Group, {
|
|
5828
4290
|
direction: "column",
|
|
5829
4291
|
grow: true,
|
|
5830
|
-
children: /* @__PURE__ */ jsx(TextInput,
|
|
4292
|
+
children: /* @__PURE__ */ jsx(TextInput, {
|
|
5831
4293
|
label: "Font Size",
|
|
5832
4294
|
placeholder: "10px, 1em, 1rem, 100%...",
|
|
5833
4295
|
sx: {
|
|
5834
4296
|
flex: 1
|
|
5835
|
-
}
|
|
5836
|
-
|
|
4297
|
+
},
|
|
4298
|
+
...form.getListInputProps("paragraphs", index2, "size")
|
|
4299
|
+
})
|
|
5837
4300
|
}), /* @__PURE__ */ jsx(Group, {
|
|
5838
4301
|
position: "apart",
|
|
5839
4302
|
grow: true,
|
|
@@ -5843,9 +4306,10 @@ function VizTextPanel({
|
|
|
5843
4306
|
maxWidth: "100%"
|
|
5844
4307
|
}
|
|
5845
4308
|
},
|
|
5846
|
-
children: /* @__PURE__ */ jsx(MantineFontWeightSlider,
|
|
5847
|
-
label: "Font Weight"
|
|
5848
|
-
|
|
4309
|
+
children: /* @__PURE__ */ jsx(MantineFontWeightSlider, {
|
|
4310
|
+
label: "Font Weight",
|
|
4311
|
+
...form.getListInputProps("paragraphs", index2, "weight")
|
|
4312
|
+
})
|
|
5849
4313
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
5850
4314
|
color: "red",
|
|
5851
4315
|
variant: "hover",
|
|
@@ -5925,12 +4389,14 @@ function EditVizConf() {
|
|
|
5925
4389
|
if (!changed) {
|
|
5926
4390
|
return;
|
|
5927
4391
|
}
|
|
5928
|
-
setViz((v) =>
|
|
4392
|
+
setViz((v) => ({
|
|
4393
|
+
...v,
|
|
5929
4394
|
type
|
|
5930
4395
|
}));
|
|
5931
4396
|
}, [changed, type]);
|
|
5932
4397
|
const setVizConf = (conf) => {
|
|
5933
|
-
setViz((v) =>
|
|
4398
|
+
setViz((v) => ({
|
|
4399
|
+
...v,
|
|
5934
4400
|
conf
|
|
5935
4401
|
}));
|
|
5936
4402
|
};
|
|
@@ -6073,7 +4539,9 @@ function PanelTitleBar({}) {
|
|
|
6073
4539
|
} = React.useContext(LayoutStateContext);
|
|
6074
4540
|
const {
|
|
6075
4541
|
duplidatePanel,
|
|
6076
|
-
removePanelByID
|
|
4542
|
+
removePanelByID,
|
|
4543
|
+
viewPanelInFullScreen,
|
|
4544
|
+
inFullScreen
|
|
6077
4545
|
} = React.useContext(DashboardActionContext);
|
|
6078
4546
|
const duplicate = React.useCallback(() => {
|
|
6079
4547
|
duplidatePanel(id);
|
|
@@ -6087,6 +4555,9 @@ function PanelTitleBar({}) {
|
|
|
6087
4555
|
onCancel: () => console.log("Cancel"),
|
|
6088
4556
|
onConfirm: () => removePanelByID(id)
|
|
6089
4557
|
});
|
|
4558
|
+
const enterFullScreen = React.useCallback(() => {
|
|
4559
|
+
viewPanelInFullScreen(id);
|
|
4560
|
+
}, [id, viewPanelInFullScreen]);
|
|
6090
4561
|
return /* @__PURE__ */ jsxs(Box, {
|
|
6091
4562
|
sx: {
|
|
6092
4563
|
position: "relative"
|
|
@@ -6120,25 +4591,36 @@ function PanelTitleBar({}) {
|
|
|
6120
4591
|
size: 14
|
|
6121
4592
|
}),
|
|
6122
4593
|
children: "Refresh"
|
|
6123
|
-
}),
|
|
6124
|
-
onClick:
|
|
6125
|
-
icon: /* @__PURE__ */ jsx(
|
|
6126
|
-
size: 14
|
|
6127
|
-
}),
|
|
6128
|
-
children: "Settings"
|
|
6129
|
-
}), /* @__PURE__ */ jsx(Divider, {}), /* @__PURE__ */ jsx(Menu.Item, {
|
|
6130
|
-
onClick: duplicate,
|
|
6131
|
-
icon: /* @__PURE__ */ jsx(Copy, {
|
|
6132
|
-
size: 14
|
|
6133
|
-
}),
|
|
6134
|
-
children: "Duplicate"
|
|
6135
|
-
}), /* @__PURE__ */ jsx(Menu.Item, {
|
|
6136
|
-
color: "red",
|
|
6137
|
-
onClick: remove,
|
|
6138
|
-
icon: /* @__PURE__ */ jsx(Trash, {
|
|
4594
|
+
}), !inFullScreen && /* @__PURE__ */ jsx(Menu.Item, {
|
|
4595
|
+
onClick: enterFullScreen,
|
|
4596
|
+
icon: /* @__PURE__ */ jsx(ArrowsMaximize, {
|
|
6139
4597
|
size: 14
|
|
6140
4598
|
}),
|
|
6141
|
-
children: "
|
|
4599
|
+
children: "Full Screen"
|
|
4600
|
+
}), inEditMode && /* @__PURE__ */ jsxs(Fragment, {
|
|
4601
|
+
children: [/* @__PURE__ */ jsx(Divider, {
|
|
4602
|
+
label: "Edit",
|
|
4603
|
+
labelPosition: "center"
|
|
4604
|
+
}), /* @__PURE__ */ jsx(Menu.Item, {
|
|
4605
|
+
onClick: open,
|
|
4606
|
+
icon: /* @__PURE__ */ jsx(Settings, {
|
|
4607
|
+
size: 14
|
|
4608
|
+
}),
|
|
4609
|
+
children: "Settings"
|
|
4610
|
+
}), /* @__PURE__ */ jsx(Menu.Item, {
|
|
4611
|
+
onClick: duplicate,
|
|
4612
|
+
icon: /* @__PURE__ */ jsx(Copy, {
|
|
4613
|
+
size: 14
|
|
4614
|
+
}),
|
|
4615
|
+
children: "Duplicate"
|
|
4616
|
+
}), /* @__PURE__ */ jsx(Menu.Item, {
|
|
4617
|
+
color: "red",
|
|
4618
|
+
onClick: remove,
|
|
4619
|
+
icon: /* @__PURE__ */ jsx(Trash, {
|
|
4620
|
+
size: 14
|
|
4621
|
+
}),
|
|
4622
|
+
children: "Delete"
|
|
4623
|
+
})]
|
|
6142
4624
|
})]
|
|
6143
4625
|
})
|
|
6144
4626
|
}), inEditMode && /* @__PURE__ */ jsx(PanelSettingsModal, {
|
|
@@ -6229,15 +4711,14 @@ function DashboardLayout({
|
|
|
6229
4711
|
}) {
|
|
6230
4712
|
const onLayoutChange = React.useCallback((currentLayout) => {
|
|
6231
4713
|
const m2 = /* @__PURE__ */ new Map();
|
|
6232
|
-
currentLayout.forEach((
|
|
6233
|
-
|
|
6234
|
-
|
|
6235
|
-
|
|
6236
|
-
"i"
|
|
6237
|
-
]);
|
|
4714
|
+
currentLayout.forEach(({
|
|
4715
|
+
i,
|
|
4716
|
+
...rest
|
|
4717
|
+
}) => {
|
|
6238
4718
|
m2.set(i, rest);
|
|
6239
4719
|
});
|
|
6240
|
-
const newPanels = panels.map((p2) =>
|
|
4720
|
+
const newPanels = panels.map((p2) => ({
|
|
4721
|
+
...p2,
|
|
6241
4722
|
layout: m2.get(p2.id)
|
|
6242
4723
|
}));
|
|
6243
4724
|
setPanels(newPanels);
|
|
@@ -6248,24 +4729,22 @@ function DashboardLayout({
|
|
|
6248
4729
|
rowHeight,
|
|
6249
4730
|
isDraggable,
|
|
6250
4731
|
isResizable,
|
|
6251
|
-
children: panels.map((
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
"id"
|
|
6256
|
-
]);
|
|
4732
|
+
children: panels.map(({
|
|
4733
|
+
id,
|
|
4734
|
+
...rest
|
|
4735
|
+
}, index2) => {
|
|
6257
4736
|
return /* @__PURE__ */ jsx("div", {
|
|
6258
4737
|
"data-grid": rest.layout,
|
|
6259
|
-
children: /* @__PURE__ */ jsx(Panel,
|
|
6260
|
-
id
|
|
6261
|
-
|
|
4738
|
+
children: /* @__PURE__ */ jsx(Panel, {
|
|
4739
|
+
id,
|
|
4740
|
+
...rest,
|
|
6262
4741
|
update: (panel) => {
|
|
6263
4742
|
setPanels((prevs) => {
|
|
6264
4743
|
prevs.splice(index2, 1, panel);
|
|
6265
4744
|
return [...prevs];
|
|
6266
4745
|
});
|
|
6267
4746
|
}
|
|
6268
|
-
})
|
|
4747
|
+
})
|
|
6269
4748
|
}, id);
|
|
6270
4749
|
})
|
|
6271
4750
|
});
|
|
@@ -6490,39 +4969,42 @@ function QueryForm({
|
|
|
6490
4969
|
pr: 40,
|
|
6491
4970
|
children: [/* @__PURE__ */ jsxs(Group, {
|
|
6492
4971
|
grow: true,
|
|
6493
|
-
children: [/* @__PURE__ */ jsx(TextInput,
|
|
4972
|
+
children: [/* @__PURE__ */ jsx(TextInput, {
|
|
6494
4973
|
placeholder: "An ID unique in this dashboard",
|
|
6495
4974
|
label: "ID",
|
|
6496
4975
|
required: true,
|
|
6497
4976
|
sx: {
|
|
6498
4977
|
flex: 1
|
|
6499
4978
|
},
|
|
6500
|
-
disabled: loading
|
|
6501
|
-
|
|
4979
|
+
disabled: loading,
|
|
4980
|
+
...form.getInputProps("id")
|
|
4981
|
+
}), /* @__PURE__ */ jsx(Select, {
|
|
6502
4982
|
label: "Data Source Type",
|
|
6503
4983
|
data: querySourceTypeOptions,
|
|
6504
4984
|
sx: {
|
|
6505
4985
|
flex: 1
|
|
6506
4986
|
},
|
|
6507
|
-
disabled: loading
|
|
6508
|
-
|
|
4987
|
+
disabled: loading,
|
|
4988
|
+
...form.getInputProps("type")
|
|
4989
|
+
}), /* @__PURE__ */ jsx(Select, {
|
|
6509
4990
|
label: "Data Source Key",
|
|
6510
4991
|
data: querySourceKeyOptions,
|
|
6511
4992
|
sx: {
|
|
6512
4993
|
flex: 1
|
|
6513
4994
|
},
|
|
6514
|
-
disabled: loading
|
|
6515
|
-
|
|
4995
|
+
disabled: loading,
|
|
4996
|
+
...form.getInputProps("key")
|
|
4997
|
+
})]
|
|
6516
4998
|
}), /* @__PURE__ */ jsxs(Tabs, {
|
|
6517
4999
|
children: [/* @__PURE__ */ jsx(Tabs.Tab, {
|
|
6518
5000
|
label: "SQL",
|
|
6519
|
-
children: /* @__PURE__ */ jsx(Textarea,
|
|
5001
|
+
children: /* @__PURE__ */ jsx(Textarea, {
|
|
6520
5002
|
autosize: true,
|
|
6521
5003
|
minRows: 12,
|
|
6522
|
-
maxRows: 24
|
|
6523
|
-
|
|
5004
|
+
maxRows: 24,
|
|
5005
|
+
...form.getInputProps("sql"),
|
|
6524
5006
|
className: "code-textarea"
|
|
6525
|
-
})
|
|
5007
|
+
})
|
|
6526
5008
|
}), /* @__PURE__ */ jsx(Tabs.Tab, {
|
|
6527
5009
|
label: "Preview",
|
|
6528
5010
|
children: /* @__PURE__ */ jsx(PreviewSQL, {
|
|
@@ -6839,16 +5321,17 @@ function SQLSnippetsEditor({}) {
|
|
|
6839
5321
|
border: "1px solid #eee",
|
|
6840
5322
|
position: "relative"
|
|
6841
5323
|
},
|
|
6842
|
-
children: [/* @__PURE__ */ jsx(TextInput,
|
|
5324
|
+
children: [/* @__PURE__ */ jsx(TextInput, {
|
|
6843
5325
|
label: "Key",
|
|
6844
|
-
required: true
|
|
6845
|
-
|
|
5326
|
+
required: true,
|
|
5327
|
+
...form.getListInputProps("snippets", index2, "key")
|
|
5328
|
+
}), /* @__PURE__ */ jsx(Textarea, {
|
|
6846
5329
|
minRows: 3,
|
|
6847
5330
|
label: "Value",
|
|
6848
|
-
required: true
|
|
6849
|
-
|
|
5331
|
+
required: true,
|
|
5332
|
+
...form.getListInputProps("snippets", index2, "value"),
|
|
6850
5333
|
className: "code-textarea"
|
|
6851
|
-
})
|
|
5334
|
+
}), /* @__PURE__ */ jsx(PreviewSnippet, {
|
|
6852
5335
|
value: form.values.snippets[index2].value
|
|
6853
5336
|
}), /* @__PURE__ */ jsx(ActionIcon, {
|
|
6854
5337
|
color: "red",
|
|
@@ -7127,6 +5610,62 @@ function DashboardActions({
|
|
|
7127
5610
|
})]
|
|
7128
5611
|
});
|
|
7129
5612
|
}
|
|
5613
|
+
function FullScreenPanel({
|
|
5614
|
+
panel,
|
|
5615
|
+
exitFullScreen
|
|
5616
|
+
}) {
|
|
5617
|
+
return /* @__PURE__ */ jsxs(Group, {
|
|
5618
|
+
direction: "column",
|
|
5619
|
+
grow: true,
|
|
5620
|
+
sx: {
|
|
5621
|
+
flexGrow: 1,
|
|
5622
|
+
justifyContent: "flex-start"
|
|
5623
|
+
},
|
|
5624
|
+
children: [/* @__PURE__ */ jsx(Group, {
|
|
5625
|
+
direction: "row",
|
|
5626
|
+
sx: {
|
|
5627
|
+
flexGrow: 0
|
|
5628
|
+
},
|
|
5629
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
5630
|
+
variant: "default",
|
|
5631
|
+
size: "sm",
|
|
5632
|
+
onClick: exitFullScreen,
|
|
5633
|
+
leftIcon: /* @__PURE__ */ jsx(ArrowLeft, {
|
|
5634
|
+
size: 20
|
|
5635
|
+
}),
|
|
5636
|
+
children: "Exit fullscreen"
|
|
5637
|
+
})
|
|
5638
|
+
}), /* @__PURE__ */ jsx(Group, {
|
|
5639
|
+
grow: true,
|
|
5640
|
+
sx: {
|
|
5641
|
+
flexGrow: 1,
|
|
5642
|
+
flexShrink: 0
|
|
5643
|
+
},
|
|
5644
|
+
children: /* @__PURE__ */ jsx(Panel, {
|
|
5645
|
+
...panel
|
|
5646
|
+
})
|
|
5647
|
+
})]
|
|
5648
|
+
});
|
|
5649
|
+
}
|
|
5650
|
+
function usePanelFullScreen(panels) {
|
|
5651
|
+
const [fullScreenPanelID, setFullScreenPanelID] = React.useState(null);
|
|
5652
|
+
const viewPanelInFullScreen = React.useCallback((id) => {
|
|
5653
|
+
setFullScreenPanelID(id);
|
|
5654
|
+
}, []);
|
|
5655
|
+
const exitFullScreen = React.useCallback(() => {
|
|
5656
|
+
setFullScreenPanelID(null);
|
|
5657
|
+
}, []);
|
|
5658
|
+
const fullScreenPanel = React.useMemo(() => {
|
|
5659
|
+
return panels.find((p2) => p2.id === fullScreenPanelID);
|
|
5660
|
+
}, [fullScreenPanelID, panels]);
|
|
5661
|
+
const inFullScreen = !!fullScreenPanel;
|
|
5662
|
+
return {
|
|
5663
|
+
viewPanelInFullScreen,
|
|
5664
|
+
exitFullScreen,
|
|
5665
|
+
inFullScreen,
|
|
5666
|
+
fullScreenPanel
|
|
5667
|
+
};
|
|
5668
|
+
}
|
|
7130
5669
|
function Dashboard({
|
|
7131
5670
|
context,
|
|
7132
5671
|
dashboard,
|
|
@@ -7141,7 +5680,7 @@ function Dashboard({
|
|
|
7141
5680
|
const [panels, setPanels] = React.useState(dashboard.panels);
|
|
7142
5681
|
const [sqlSnippets, setSQLSnippets] = React.useState(dashboard.definition.sqlSnippets);
|
|
7143
5682
|
const [queries, setQueries] = React.useState(dashboard.definition.queries);
|
|
7144
|
-
const [mode, setMode] = React.useState(DashboardMode.
|
|
5683
|
+
const [mode, setMode] = React.useState(DashboardMode.Use);
|
|
7145
5684
|
const hasChanges = React.useMemo(() => {
|
|
7146
5685
|
const cleanJSON = (v) => JSON.parse(JSON.stringify(v));
|
|
7147
5686
|
const panelsEqual = _.isEqual(cleanJSON(panels), cleanJSON(dashboard.panels));
|
|
@@ -7154,13 +5693,14 @@ function Dashboard({
|
|
|
7154
5693
|
return !_.isEqual(queries, dashboard.definition.queries);
|
|
7155
5694
|
}, [dashboard, panels, sqlSnippets, queries]);
|
|
7156
5695
|
const saveDashboardChanges = async () => {
|
|
7157
|
-
const d =
|
|
5696
|
+
const d = {
|
|
5697
|
+
...dashboard,
|
|
7158
5698
|
panels,
|
|
7159
5699
|
definition: {
|
|
7160
5700
|
sqlSnippets,
|
|
7161
5701
|
queries
|
|
7162
5702
|
}
|
|
7163
|
-
}
|
|
5703
|
+
};
|
|
7164
5704
|
await update(d);
|
|
7165
5705
|
};
|
|
7166
5706
|
const revertDashboardChanges = () => {
|
|
@@ -7194,13 +5734,15 @@ function Dashboard({
|
|
|
7194
5734
|
if (!panel) {
|
|
7195
5735
|
throw new Error(`[duplicate panel] Can't find a panel by id[${id}]`);
|
|
7196
5736
|
}
|
|
7197
|
-
const newPanel =
|
|
5737
|
+
const newPanel = {
|
|
5738
|
+
...panel,
|
|
7198
5739
|
id: randomId(),
|
|
7199
|
-
layout:
|
|
5740
|
+
layout: {
|
|
5741
|
+
...panel.layout,
|
|
7200
5742
|
x: 0,
|
|
7201
5743
|
y: Infinity
|
|
7202
|
-
}
|
|
7203
|
-
}
|
|
5744
|
+
}
|
|
5745
|
+
};
|
|
7204
5746
|
setPanels((prevs) => [...prevs, newPanel]);
|
|
7205
5747
|
} catch (error) {
|
|
7206
5748
|
console.error(error);
|
|
@@ -7231,6 +5773,12 @@ function Dashboard({
|
|
|
7231
5773
|
}
|
|
7232
5774
|
};
|
|
7233
5775
|
}, [sqlSnippets, queries, panels]);
|
|
5776
|
+
const {
|
|
5777
|
+
viewPanelInFullScreen,
|
|
5778
|
+
exitFullScreen,
|
|
5779
|
+
inFullScreen,
|
|
5780
|
+
fullScreenPanel
|
|
5781
|
+
} = usePanelFullScreen(panels);
|
|
7234
5782
|
return /* @__PURE__ */ jsx(ModalsProvider, {
|
|
7235
5783
|
children: /* @__PURE__ */ jsx(ContextInfoContext.Provider, {
|
|
7236
5784
|
value: context,
|
|
@@ -7238,11 +5786,13 @@ function Dashboard({
|
|
|
7238
5786
|
value: {
|
|
7239
5787
|
addPanel,
|
|
7240
5788
|
duplidatePanel,
|
|
7241
|
-
removePanelByID
|
|
5789
|
+
removePanelByID,
|
|
5790
|
+
viewPanelInFullScreen,
|
|
5791
|
+
inFullScreen
|
|
7242
5792
|
},
|
|
7243
5793
|
children: /* @__PURE__ */ jsx(DefinitionContext.Provider, {
|
|
7244
5794
|
value: definitions,
|
|
7245
|
-
children: /* @__PURE__ */
|
|
5795
|
+
children: /* @__PURE__ */ jsxs(LayoutStateContext.Provider, {
|
|
7246
5796
|
value: {
|
|
7247
5797
|
layoutFrozen,
|
|
7248
5798
|
freezeLayout,
|
|
@@ -7251,8 +5801,15 @@ function Dashboard({
|
|
|
7251
5801
|
inLayoutMode,
|
|
7252
5802
|
inUseMode
|
|
7253
5803
|
},
|
|
7254
|
-
children: /* @__PURE__ */
|
|
5804
|
+
children: [inFullScreen && /* @__PURE__ */ jsx(FullScreenPanel, {
|
|
5805
|
+
panel: fullScreenPanel,
|
|
5806
|
+
exitFullScreen
|
|
5807
|
+
}), /* @__PURE__ */ jsxs(Box, {
|
|
7255
5808
|
className,
|
|
5809
|
+
sx: {
|
|
5810
|
+
position: "relative",
|
|
5811
|
+
display: inFullScreen ? "none" : "block"
|
|
5812
|
+
},
|
|
7256
5813
|
children: [/* @__PURE__ */ jsx(DashboardActions, {
|
|
7257
5814
|
mode,
|
|
7258
5815
|
setMode,
|
|
@@ -7266,7 +5823,7 @@ function Dashboard({
|
|
|
7266
5823
|
isDraggable: inLayoutMode,
|
|
7267
5824
|
isResizable: inLayoutMode
|
|
7268
5825
|
})]
|
|
7269
|
-
})
|
|
5826
|
+
})]
|
|
7270
5827
|
})
|
|
7271
5828
|
})
|
|
7272
5829
|
})
|
|
@@ -7284,17 +5841,16 @@ function ReadOnlyDashboardLayout({
|
|
|
7284
5841
|
rowHeight,
|
|
7285
5842
|
isDraggable: false,
|
|
7286
5843
|
isResizable: false,
|
|
7287
|
-
children: panels.map((
|
|
7288
|
-
|
|
7289
|
-
|
|
7290
|
-
|
|
7291
|
-
"id"
|
|
7292
|
-
]);
|
|
5844
|
+
children: panels.map(({
|
|
5845
|
+
id,
|
|
5846
|
+
...rest
|
|
5847
|
+
}) => {
|
|
7293
5848
|
return /* @__PURE__ */ jsx("div", {
|
|
7294
5849
|
"data-grid": rest.layout,
|
|
7295
|
-
children: /* @__PURE__ */ jsx(Panel,
|
|
7296
|
-
id
|
|
7297
|
-
|
|
5850
|
+
children: /* @__PURE__ */ jsx(Panel, {
|
|
5851
|
+
id,
|
|
5852
|
+
...rest
|
|
5853
|
+
})
|
|
7298
5854
|
}, id);
|
|
7299
5855
|
})
|
|
7300
5856
|
});
|
|
@@ -7308,20 +5864,33 @@ function ReadOnlyDashboard({
|
|
|
7308
5864
|
if (APIClient.baseURL !== config.apiBaseURL) {
|
|
7309
5865
|
APIClient.baseURL = config.apiBaseURL;
|
|
7310
5866
|
}
|
|
7311
|
-
const definition = React.useMemo(() =>
|
|
5867
|
+
const definition = React.useMemo(() => ({
|
|
5868
|
+
...dashboard.definition,
|
|
7312
5869
|
setSQLSnippets: () => {
|
|
7313
5870
|
},
|
|
7314
5871
|
setQueries: () => {
|
|
7315
5872
|
}
|
|
7316
5873
|
}), [dashboard]);
|
|
5874
|
+
const {
|
|
5875
|
+
viewPanelInFullScreen,
|
|
5876
|
+
exitFullScreen,
|
|
5877
|
+
inFullScreen,
|
|
5878
|
+
fullScreenPanel
|
|
5879
|
+
} = usePanelFullScreen(dashboard.panels);
|
|
7317
5880
|
return /* @__PURE__ */ jsx(ModalsProvider, {
|
|
7318
5881
|
children: /* @__PURE__ */ jsx(ContextInfoContext.Provider, {
|
|
7319
5882
|
value: context,
|
|
7320
|
-
children: /* @__PURE__ */ jsx(
|
|
7321
|
-
|
|
5883
|
+
children: /* @__PURE__ */ jsx(DashboardActionContext.Provider, {
|
|
5884
|
+
value: {
|
|
5885
|
+
addPanel: _.noop,
|
|
5886
|
+
duplidatePanel: _.noop,
|
|
5887
|
+
removePanelByID: _.noop,
|
|
5888
|
+
viewPanelInFullScreen,
|
|
5889
|
+
inFullScreen
|
|
5890
|
+
},
|
|
7322
5891
|
children: /* @__PURE__ */ jsx(DefinitionContext.Provider, {
|
|
7323
5892
|
value: definition,
|
|
7324
|
-
children: /* @__PURE__ */
|
|
5893
|
+
children: /* @__PURE__ */ jsxs(LayoutStateContext.Provider, {
|
|
7325
5894
|
value: {
|
|
7326
5895
|
layoutFrozen: true,
|
|
7327
5896
|
freezeLayout: () => {
|
|
@@ -7331,9 +5900,18 @@ function ReadOnlyDashboard({
|
|
|
7331
5900
|
inLayoutMode: false,
|
|
7332
5901
|
inUseMode: true
|
|
7333
5902
|
},
|
|
7334
|
-
children: /* @__PURE__ */ jsx(
|
|
7335
|
-
|
|
7336
|
-
|
|
5903
|
+
children: [inFullScreen && /* @__PURE__ */ jsx(FullScreenPanel, {
|
|
5904
|
+
panel: fullScreenPanel,
|
|
5905
|
+
exitFullScreen
|
|
5906
|
+
}), /* @__PURE__ */ jsx(Box, {
|
|
5907
|
+
className,
|
|
5908
|
+
sx: {
|
|
5909
|
+
display: inFullScreen ? "none" : "block"
|
|
5910
|
+
},
|
|
5911
|
+
children: /* @__PURE__ */ jsx(ReadOnlyDashboardLayout, {
|
|
5912
|
+
panels: dashboard.panels
|
|
5913
|
+
})
|
|
5914
|
+
})]
|
|
7337
5915
|
})
|
|
7338
5916
|
})
|
|
7339
5917
|
})
|