@devtable/dashboard 9.12.0 → 9.14.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 +4104 -3986
- package/dist/dashboard.umd.js +87 -82
- package/dist/plugins/viz-components/boxplot-chart/editors/tooltip/index.d.ts +10 -0
- package/dist/plugins/viz-components/boxplot-chart/editors/tooltip/metric.d.ts +11 -0
- package/dist/plugins/viz-components/boxplot-chart/editors/tooltip/metrics.d.ts +10 -0
- package/dist/plugins/viz-components/boxplot-chart/index.d.ts +1 -1
- package/dist/plugins/viz-components/boxplot-chart/option/dataset.d.ts +2 -2
- package/dist/plugins/viz-components/boxplot-chart/option/index.d.ts +8 -2
- package/dist/plugins/viz-components/boxplot-chart/option/tooltip/boxplot.d.ts +2 -0
- package/dist/plugins/viz-components/boxplot-chart/option/tooltip/index.d.ts +16 -0
- package/dist/plugins/viz-components/boxplot-chart/option/tooltip/scatter.d.ts +2 -0
- package/dist/plugins/viz-components/boxplot-chart/type.d.ts +7 -1
- package/dist/style.css +1 -1
- package/package.json +3 -3
- package/dist/plugins/viz-components/boxplot-chart/option/tooltip.d.ts +0 -9
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Control, UseFormWatch } from 'react-hook-form';
|
|
3
|
+
import { IBoxplotChartConf } from '../../type';
|
|
4
|
+
interface ITooltipField {
|
|
5
|
+
control: Control<IBoxplotChartConf, $TSFixMe>;
|
|
6
|
+
watch: UseFormWatch<IBoxplotChartConf>;
|
|
7
|
+
data: TVizData;
|
|
8
|
+
}
|
|
9
|
+
export declare function TooltipField({ data, control, watch }: ITooltipField): JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Control } from 'react-hook-form';
|
|
3
|
+
import { IBoxplotChartConf } from '../../type';
|
|
4
|
+
interface ITooltipMetricField {
|
|
5
|
+
control: Control<IBoxplotChartConf, $TSFixMe>;
|
|
6
|
+
data: TVizData;
|
|
7
|
+
index: number;
|
|
8
|
+
remove: (index: number) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const TooltipMetricField: ({ control, data, index, remove }: ITooltipMetricField) => JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Control, UseFormWatch } from 'react-hook-form';
|
|
3
|
+
import { IBoxplotChartConf } from '../../type';
|
|
4
|
+
interface ITooltipMetricsField {
|
|
5
|
+
control: Control<IBoxplotChartConf, $TSFixMe>;
|
|
6
|
+
watch: UseFormWatch<IBoxplotChartConf>;
|
|
7
|
+
data: TVizData;
|
|
8
|
+
}
|
|
9
|
+
export declare const TooltipMetricsField: ({ control, watch, data }: ITooltipMetricsField) => JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VersionBasedMigrator } from '~/plugins/plugin-data-migrator';
|
|
2
2
|
import { VizComponent } from '~/types/plugin';
|
|
3
3
|
export declare class VizBoxplotChartMigrator extends VersionBasedMigrator {
|
|
4
|
-
readonly VERSION =
|
|
4
|
+
readonly VERSION = 7;
|
|
5
5
|
configVersions(): void;
|
|
6
6
|
}
|
|
7
7
|
export declare const BoxplotChartVizComponent: VizComponent;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { IBoxplotChartConf, IBoxplotDataItem } from '../type';
|
|
1
|
+
import { IBoxplotChartConf, IBoxplotDataItem, TOutlierDataItem } from '../type';
|
|
2
2
|
export declare function getDataset(conf: IBoxplotChartConf, data: TVizData): ({
|
|
3
3
|
source: IBoxplotDataItem[];
|
|
4
4
|
} | {
|
|
5
|
-
source: [
|
|
5
|
+
source: TOutlierDataItem[];
|
|
6
6
|
})[];
|
|
@@ -17,13 +17,19 @@ export declare function getOption({ config, data, variables }: IGetOption): {
|
|
|
17
17
|
dataset: ({
|
|
18
18
|
source: import("../type").IBoxplotDataItem[];
|
|
19
19
|
} | {
|
|
20
|
-
source: [
|
|
20
|
+
source: import("../type").TOutlierDataItem[];
|
|
21
21
|
})[];
|
|
22
22
|
legend: Record<string, any>;
|
|
23
23
|
tooltip: {
|
|
24
24
|
trigger: string;
|
|
25
25
|
confine: boolean;
|
|
26
|
-
formatter: (params:
|
|
26
|
+
formatter: (params: {
|
|
27
|
+
componentSubType: "scatter";
|
|
28
|
+
value: import("../type").TOutlierDataItem;
|
|
29
|
+
} | {
|
|
30
|
+
componentSubType: "boxplot";
|
|
31
|
+
value: import("../type").IBoxplotDataItem;
|
|
32
|
+
}) => string;
|
|
27
33
|
};
|
|
28
34
|
xAxis: {
|
|
29
35
|
type: string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IBoxplotChartConf, IBoxplotDataItem, TOutlierDataItem } from '../../type';
|
|
2
|
+
declare type TTooltipFormatterParams = {
|
|
3
|
+
componentSubType: 'scatter';
|
|
4
|
+
value: TOutlierDataItem;
|
|
5
|
+
} | {
|
|
6
|
+
componentSubType: 'boxplot';
|
|
7
|
+
value: IBoxplotDataItem;
|
|
8
|
+
};
|
|
9
|
+
export declare function getTooltip({ config }: {
|
|
10
|
+
config: IBoxplotChartConf;
|
|
11
|
+
}): {
|
|
12
|
+
trigger: string;
|
|
13
|
+
confine: boolean;
|
|
14
|
+
formatter: (params: TTooltipFormatterParams) => string;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { TNumbroFormat } from '~/panel/settings/common/numbro-format-selector';
|
|
2
2
|
import { IAxisLabelOverflow } from '~/plugins/common-echarts-fields/axis-label-overflow';
|
|
3
3
|
import { IXAxisLabelFormatter } from '../cartesian/editors/x-axis/x-axis-label-formatter/types';
|
|
4
|
+
import { IEchartsTooltipMetric } from '~/plugins/common-echarts-fields/tooltip-metric';
|
|
5
|
+
import { AnyObject } from '~/types';
|
|
4
6
|
export interface IBoxplotReferenceLine {
|
|
5
7
|
name: string;
|
|
6
8
|
template: string;
|
|
@@ -21,10 +23,14 @@ export interface IBoxplotChartConf {
|
|
|
21
23
|
data_key: string;
|
|
22
24
|
label_formatter: TNumbroFormat;
|
|
23
25
|
};
|
|
26
|
+
tooltip: {
|
|
27
|
+
metrics: IEchartsTooltipMetric[];
|
|
28
|
+
};
|
|
24
29
|
color: string;
|
|
25
30
|
reference_lines: IBoxplotReferenceLine[];
|
|
26
31
|
}
|
|
27
32
|
export declare const DEFAULT_CONFIG: IBoxplotChartConf;
|
|
33
|
+
export declare type TOutlierDataItem = [string, number, AnyObject];
|
|
28
34
|
export interface IBoxplotDataItem {
|
|
29
35
|
name: string;
|
|
30
36
|
min: number;
|
|
@@ -32,5 +38,5 @@ export interface IBoxplotDataItem {
|
|
|
32
38
|
median: number;
|
|
33
39
|
q3: number;
|
|
34
40
|
max: number;
|
|
35
|
-
outliers:
|
|
41
|
+
outliers: TOutlierDataItem[];
|
|
36
42
|
}
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.panel-root{height:100%;width:100%;max-width:100%;background:transparent;border-radius:4px;position:relative}.panel-dropdown-target{text-align:center;transition:background-color .3s ease}.panel-dropdown-target:hover{cursor:pointer;background-color:#6464640d}.viz-root{width:100%;overflow:auto;flex-grow:1;background-color:#fff}.dashboard-layout{margin:5px}.react-grid-item{padding:0}.panel-grid-item{padding:5px;min-height:38px}.remove-panel{position:absolute;right:2px;top:0;cursor:pointer}.code-textarea textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.preview-sql-in-monaco-editor{overflow:hidden}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.
|
|
1
|
+
.panel-root{height:100%;width:100%;max-width:100%;background:transparent;border-radius:4px;position:relative}.panel-dropdown-target{text-align:center;transition:background-color .3s ease}.panel-dropdown-target:hover{cursor:pointer;background-color:#6464640d}.viz-root{width:100%;overflow:auto;flex-grow:1;background-color:#fff}.dashboard-layout{margin:5px}.react-grid-item{padding:0}.panel-grid-item{padding:5px;min-height:38px}.remove-panel{position:absolute;right:2px;top:0;cursor:pointer}.code-textarea textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.preview-sql-in-monaco-editor{overflow:hidden}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:rgba(255,255,255,.5);padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__node-interaction{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 12px 6px #ff0;border-style:dashed}.dashboard-root{overflow:auto;overflow-x:hidden;padding:0;height:100%}.dashboard-view{position:relative;height:100%;overflow-y:auto;overflow-x:hidden;-ms-overflow-style:initial!important}.dashboard-sticky-area{z-index:100;background:white;margin:0;padding:0 10px}.mantine-RichTextEditor-root{overflow-y:auto!important;-ms-overflow-style:initial!important}.dashboard-root *:not(.mantine-RichTextEditor-root):not(.dashboard-view):not(.mantine-Modal-body):not([data-enable-scrollbar])::-webkit-scrollbar{width:0!important;height:0!important}.dashboard-root *:not([data-enable-scrollbar]){overflow:-moz-scrollbars-none;-ms-overflow-style:none}.function-editor{border-radius:4px;overflow:hidden;background-color:#1e1e1e}.minimal-monaco-editor{border-radius:4px;overflow:hidden;background-color:#1e1e1e;padding-top:14px}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devtable/dashboard",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.14.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"reactflow": "^11.5.3"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@emotion/babel-plugin": "11.
|
|
46
|
+
"@emotion/babel-plugin": "11.11.0",
|
|
47
47
|
"@faker-js/faker": "7.6.0",
|
|
48
48
|
"@mantine/core": "5.9.5",
|
|
49
49
|
"@mantine/dates": "5.9.5",
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"prosemirror-schema-list": "^1.2.2",
|
|
106
106
|
"react-grid-layout": "^1.3.4",
|
|
107
107
|
"react-hook-form": "^7.31.2",
|
|
108
|
-
"rollup-plugin-visualizer": "5.
|
|
108
|
+
"rollup-plugin-visualizer": "5.9.0",
|
|
109
109
|
"tabler-icons-react": "^1.48.0",
|
|
110
110
|
"typescript": "^4.6.3",
|
|
111
111
|
"vite-plugin-static-copy": "0.13.1"
|