@dappworks/kit 0.4.66 → 0.4.68
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/{PromiseState-phP8daDG.d.ts → PromiseState-2a8c856c.d.ts} +2 -2
- package/dist/{chunk-R4SQKVDQ.mjs → chunk-6F7H4PAA.mjs} +1 -1
- package/dist/{chunk-AIZ7XDNV.mjs → chunk-6UHBBDKI.mjs} +14 -14
- package/dist/chunk-6UHBBDKI.mjs.map +1 -0
- package/dist/{chunk-XJMRAPHI.mjs → chunk-HRWHDF2F.mjs} +7 -7
- package/dist/{chunk-XJMRAPHI.mjs.map → chunk-HRWHDF2F.mjs.map} +1 -1
- package/dist/{chunk-ALOYXXRO.mjs → chunk-I5WU3NZO.mjs} +2 -2
- package/dist/{chunk-OCLML5CM.mjs → chunk-SXQEYWUP.mjs} +2 -2
- package/dist/{chunk-7FI42NGB.mjs → chunk-U7JFOBSQ.mjs} +2 -2
- package/dist/{chunk-CYQSSB26.mjs → chunk-VB62FUWK.mjs} +73 -35
- package/dist/chunk-VB62FUWK.mjs.map +1 -0
- package/dist/{chunk-QO5RPRUY.mjs → chunk-WAYJJYKN.mjs} +4 -4
- package/dist/{chunk-7FXVRBK4.mjs → chunk-ZPPKSMXO.mjs} +2 -2
- package/dist/dev.d.mts +1 -1
- package/dist/dev.mjs +3 -3
- package/dist/experimental.d.mts +3 -5
- package/dist/experimental.mjs +3 -3
- package/dist/form.d.mts +5 -5
- package/dist/form.mjs +5 -5
- package/dist/index.d.mts +9 -14
- package/dist/index.mjs +6 -6
- package/dist/inspector.d.mts +1 -1
- package/dist/inspector.mjs +1 -1
- package/dist/jsontable.d.mts +10 -15
- package/dist/jsontable.mjs +7 -7
- package/dist/metrics.d.mts +35 -9
- package/dist/metrics.mjs +110 -59
- package/dist/metrics.mjs.map +1 -1
- package/dist/plugins.d.mts +2 -2
- package/dist/plugins.mjs +6 -6
- package/dist/{root-C3lZnoCI.d.ts → root-766ae985.d.ts} +1 -1
- package/dist/ui.mjs +3 -3
- package/package.json +1 -1
- package/dist/chunk-AIZ7XDNV.mjs.map +0 -1
- package/dist/chunk-CYQSSB26.mjs.map +0 -1
- /package/dist/{PaginationState-Bmrrw0ky.d.ts → PaginationState-c19e621a.d.ts} +0 -0
- /package/dist/{chunk-R4SQKVDQ.mjs.map → chunk-6F7H4PAA.mjs.map} +0 -0
- /package/dist/{chunk-ALOYXXRO.mjs.map → chunk-I5WU3NZO.mjs.map} +0 -0
- /package/dist/{chunk-OCLML5CM.mjs.map → chunk-SXQEYWUP.mjs.map} +0 -0
- /package/dist/{chunk-7FI42NGB.mjs.map → chunk-U7JFOBSQ.mjs.map} +0 -0
- /package/dist/{chunk-QO5RPRUY.mjs.map → chunk-WAYJJYKN.mjs.map} +0 -0
- /package/dist/{chunk-7FXVRBK4.mjs.map → chunk-ZPPKSMXO.mjs.map} +0 -0
package/dist/jsontable.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { JSONTable } from './chunk-
|
|
1
|
+
export { JSONTable } from './chunk-VB62FUWK.mjs';
|
|
2
2
|
import './chunk-ONVPCAMQ.mjs';
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
3
|
+
import './chunk-WAYJJYKN.mjs';
|
|
4
|
+
import './chunk-SXQEYWUP.mjs';
|
|
5
|
+
import './chunk-HRWHDF2F.mjs';
|
|
6
|
+
import './chunk-U7JFOBSQ.mjs';
|
|
7
7
|
import './chunk-MGU3KYGC.mjs';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
8
|
+
import './chunk-6UHBBDKI.mjs';
|
|
9
|
+
import './chunk-6F7H4PAA.mjs';
|
|
10
10
|
//# sourceMappingURL=out.js.map
|
|
11
11
|
//# sourceMappingURL=jsontable.mjs.map
|
package/dist/metrics.d.mts
CHANGED
|
@@ -12,8 +12,11 @@ interface ChartBox {
|
|
|
12
12
|
gridH?: number;
|
|
13
13
|
numColSpanMd?: number;
|
|
14
14
|
className?: string;
|
|
15
|
+
headerClassName?: string;
|
|
16
|
+
contentClassName?: string;
|
|
17
|
+
chartClassName?: string;
|
|
15
18
|
}
|
|
16
|
-
declare const ChartBox: ({ title, description, error, children, className }: ChartBox) => React.JSX.Element;
|
|
19
|
+
declare const ChartBox: ({ title, description, error, children, className, headerClassName, contentClassName }: ChartBox) => React.JSX.Element;
|
|
17
20
|
|
|
18
21
|
type BarChartCard = ChartBox & {
|
|
19
22
|
type?: 'BarChartCard';
|
|
@@ -23,6 +26,7 @@ type BarChartCard = ChartBox & {
|
|
|
23
26
|
showLegend?: boolean;
|
|
24
27
|
showGridLines?: boolean;
|
|
25
28
|
stack?: boolean;
|
|
29
|
+
showAnimation?: boolean;
|
|
26
30
|
};
|
|
27
31
|
declare const BarChartCard: (props: BarChartCard) => React.JSX.Element;
|
|
28
32
|
|
|
@@ -30,10 +34,17 @@ type LineChartCard = ChartBox & {
|
|
|
30
34
|
type?: 'LineChartCard';
|
|
31
35
|
categories?: string[];
|
|
32
36
|
index?: string;
|
|
33
|
-
|
|
37
|
+
curveType?: 'linear' | 'step' | 'monotone';
|
|
38
|
+
colors?: ('slate' | 'gray' | 'zinc' | 'neutral' | 'stone' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose')[];
|
|
34
39
|
showLegend?: boolean;
|
|
35
40
|
showGridLines?: boolean;
|
|
36
|
-
|
|
41
|
+
showXAxis?: boolean;
|
|
42
|
+
showYAxis?: boolean;
|
|
43
|
+
startEndOnly?: boolean;
|
|
44
|
+
showTooltip?: boolean;
|
|
45
|
+
showAnimation?: boolean;
|
|
46
|
+
autoMinValue?: boolean;
|
|
47
|
+
valueFormatter?: ValueFormatter;
|
|
37
48
|
};
|
|
38
49
|
declare const LineChartCard: (props: LineChartCard) => React.JSX.Element;
|
|
39
50
|
|
|
@@ -41,11 +52,23 @@ type AreaChartCard = ChartBox & {
|
|
|
41
52
|
type?: 'AreaChartCard';
|
|
42
53
|
categories?: string[];
|
|
43
54
|
index?: string;
|
|
44
|
-
|
|
55
|
+
curveType?: 'linear' | 'step' | 'monotone';
|
|
56
|
+
colors?: ('slate' | 'gray' | 'zinc' | 'neutral' | 'stone' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose')[];
|
|
45
57
|
showLegend?: boolean;
|
|
46
58
|
showGridLines?: boolean;
|
|
47
59
|
stack?: boolean;
|
|
48
|
-
|
|
60
|
+
showXAxis?: boolean;
|
|
61
|
+
showYAxis?: boolean;
|
|
62
|
+
startEndOnly?: boolean;
|
|
63
|
+
showTooltip?: boolean;
|
|
64
|
+
showAnimation?: boolean;
|
|
65
|
+
autoMinValue?: boolean;
|
|
66
|
+
valueFormatter?: ValueFormatter;
|
|
67
|
+
customTooltip?: ({ payload, active, label }: {
|
|
68
|
+
payload: any;
|
|
69
|
+
active: any;
|
|
70
|
+
label: any;
|
|
71
|
+
}) => React.ReactNode;
|
|
49
72
|
};
|
|
50
73
|
declare const AreaChartCard: (props: AreaChartCard) => React.JSX.Element;
|
|
51
74
|
|
|
@@ -56,11 +79,13 @@ type DonutChartCard = ChartBox & {
|
|
|
56
79
|
valueFormatter?: ValueFormatter;
|
|
57
80
|
showLabel?: boolean;
|
|
58
81
|
variant?: 'donut' | 'pie';
|
|
82
|
+
showAnimation?: boolean;
|
|
59
83
|
};
|
|
60
84
|
declare const DonutChartCard: (props: DonutChartCard) => React.JSX.Element;
|
|
61
85
|
|
|
62
86
|
type CountCard = ChartBox & {
|
|
63
87
|
type?: 'CountCard';
|
|
88
|
+
summedColumnIndex?: string;
|
|
64
89
|
};
|
|
65
90
|
declare const CountCard: (props: CountCard) => React.JSX.Element;
|
|
66
91
|
|
|
@@ -79,11 +104,12 @@ type KPICard = ChartBox & {
|
|
|
79
104
|
type?: 'KPICard';
|
|
80
105
|
categories?: string[];
|
|
81
106
|
index?: string;
|
|
82
|
-
|
|
83
|
-
curveType?: 'linear' | '
|
|
107
|
+
chartType?: 'area' | 'line';
|
|
108
|
+
curveType?: 'linear' | 'step' | 'monotone';
|
|
84
109
|
metricTitle?: string;
|
|
85
110
|
metric?: string | number;
|
|
86
|
-
|
|
111
|
+
valueFormatter?: ValueFormatter;
|
|
112
|
+
loading?: boolean;
|
|
87
113
|
};
|
|
88
114
|
declare const KPICard: (props: KPICard) => React.JSX.Element;
|
|
89
115
|
|
|
@@ -95,4 +121,4 @@ declare const MetricsView: ({ data }: {
|
|
|
95
121
|
data: JSONMetricsViewType;
|
|
96
122
|
}) => React.JSX.Element;
|
|
97
123
|
|
|
98
|
-
export { JSONMetricsView,
|
|
124
|
+
export { JSONMetricsView, JSONMetricsViewType, MetricsView };
|
package/dist/metrics.mjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { JSONTable_default } from './chunk-
|
|
1
|
+
import { JSONTable_default } from './chunk-VB62FUWK.mjs';
|
|
2
2
|
import './chunk-ONVPCAMQ.mjs';
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
3
|
+
import './chunk-WAYJJYKN.mjs';
|
|
4
|
+
import './chunk-SXQEYWUP.mjs';
|
|
5
|
+
import './chunk-HRWHDF2F.mjs';
|
|
6
|
+
import './chunk-U7JFOBSQ.mjs';
|
|
7
7
|
import './chunk-MGU3KYGC.mjs';
|
|
8
|
-
import { cn } from './chunk-
|
|
9
|
-
import { __spreadValues } from './chunk-
|
|
10
|
-
import
|
|
8
|
+
import { cn } from './chunk-6UHBBDKI.mjs';
|
|
9
|
+
import { __spreadValues } from './chunk-6F7H4PAA.mjs';
|
|
10
|
+
import React9 from 'react';
|
|
11
11
|
import { Grid, Col, BarChart, LineChart, AreaChart, DonutChart, Text } from '@tremor/react';
|
|
12
|
-
import { Card } from '@nextui-org/react';
|
|
12
|
+
import { Card, Skeleton } from '@nextui-org/react';
|
|
13
13
|
|
|
14
|
-
var ChartBox = ({ title, description, error, children, className }) => {
|
|
15
|
-
return /* @__PURE__ */
|
|
14
|
+
var ChartBox = ({ title, description, error, children, className, headerClassName, contentClassName }) => {
|
|
15
|
+
return /* @__PURE__ */ React9.createElement(Card, { className: cn("dark:border-gray-800 shadow-sm border", className) }, (title || description) && /* @__PURE__ */ React9.createElement("div", { className: cn("p-4 h-[60px]", headerClassName) }, title && /* @__PURE__ */ React9.createElement("div", null, title), description && /* @__PURE__ */ React9.createElement("div", { className: "text-xs" }, description)), /* @__PURE__ */ React9.createElement("div", { className: cn("px-2 pb-5", contentClassName) }, error ? /* @__PURE__ */ React9.createElement("div", { className: "text-red-600" }, error) : children));
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
// components/JSONMetricsView/BarChartCard/index.tsx
|
|
@@ -24,12 +24,14 @@ var BarChartCard = (props) => {
|
|
|
24
24
|
valueFormatter = (number) => `${number}`,
|
|
25
25
|
showLegend = false,
|
|
26
26
|
showGridLines = false,
|
|
27
|
-
stack = false
|
|
27
|
+
stack = false,
|
|
28
|
+
chartClassName,
|
|
29
|
+
showAnimation = true
|
|
28
30
|
} = props;
|
|
29
|
-
return /* @__PURE__ */
|
|
31
|
+
return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement(
|
|
30
32
|
BarChart,
|
|
31
33
|
{
|
|
32
|
-
className: "h-72 mt-4",
|
|
34
|
+
className: cn("h-72 mt-4", chartClassName),
|
|
33
35
|
data,
|
|
34
36
|
index,
|
|
35
37
|
categories,
|
|
@@ -38,7 +40,8 @@ var BarChartCard = (props) => {
|
|
|
38
40
|
yAxisWidth: 48,
|
|
39
41
|
showLegend,
|
|
40
42
|
showGridLines,
|
|
41
|
-
stack
|
|
43
|
+
stack,
|
|
44
|
+
showAnimation
|
|
42
45
|
}
|
|
43
46
|
));
|
|
44
47
|
};
|
|
@@ -47,23 +50,37 @@ var LineChartCard = (props) => {
|
|
|
47
50
|
data = [],
|
|
48
51
|
categories = ["value"],
|
|
49
52
|
index = "date",
|
|
50
|
-
|
|
53
|
+
curveType = "linear",
|
|
54
|
+
colors = ["indigo", "cyan", "teal", "green", "yellow", "orange", "red", "slate", "violet", "rose", "pink", "purple", "blue"],
|
|
51
55
|
showLegend = false,
|
|
52
56
|
showGridLines = false,
|
|
53
|
-
|
|
57
|
+
chartClassName,
|
|
58
|
+
showXAxis = true,
|
|
59
|
+
showYAxis = true,
|
|
60
|
+
startEndOnly = false,
|
|
61
|
+
showTooltip = true,
|
|
62
|
+
showAnimation = true,
|
|
63
|
+
autoMinValue = true,
|
|
64
|
+
valueFormatter = (number) => `${number}`
|
|
54
65
|
} = props;
|
|
55
|
-
return /* @__PURE__ */
|
|
66
|
+
return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement(
|
|
56
67
|
LineChart,
|
|
57
68
|
{
|
|
58
|
-
className: "h-72 mt-4",
|
|
69
|
+
className: cn("h-72 mt-4", chartClassName),
|
|
59
70
|
data,
|
|
60
71
|
index,
|
|
61
72
|
categories,
|
|
62
|
-
colors
|
|
73
|
+
colors,
|
|
63
74
|
valueFormatter,
|
|
64
75
|
showLegend,
|
|
65
76
|
showGridLines,
|
|
66
|
-
curveType
|
|
77
|
+
curveType,
|
|
78
|
+
showXAxis,
|
|
79
|
+
showYAxis,
|
|
80
|
+
startEndOnly,
|
|
81
|
+
showTooltip,
|
|
82
|
+
showAnimation,
|
|
83
|
+
autoMinValue
|
|
67
84
|
}
|
|
68
85
|
));
|
|
69
86
|
};
|
|
@@ -72,80 +89,112 @@ var AreaChartCard = (props) => {
|
|
|
72
89
|
data = [],
|
|
73
90
|
categories = ["value"],
|
|
74
91
|
index = "date",
|
|
75
|
-
|
|
92
|
+
curveType = "linear",
|
|
93
|
+
colors = ["indigo", "cyan", "teal", "green", "yellow", "orange", "red", "slate", "violet", "rose", "pink", "purple", "blue"],
|
|
76
94
|
showLegend = false,
|
|
77
95
|
showGridLines = false,
|
|
78
96
|
stack = false,
|
|
79
|
-
|
|
97
|
+
chartClassName,
|
|
98
|
+
showXAxis = true,
|
|
99
|
+
showYAxis = true,
|
|
100
|
+
startEndOnly = false,
|
|
101
|
+
showTooltip = true,
|
|
102
|
+
showAnimation = true,
|
|
103
|
+
autoMinValue = true,
|
|
104
|
+
valueFormatter = (number) => `${number}`,
|
|
105
|
+
customTooltip
|
|
80
106
|
} = props;
|
|
81
|
-
return /* @__PURE__ */
|
|
107
|
+
return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement(
|
|
82
108
|
AreaChart,
|
|
83
109
|
{
|
|
84
|
-
className: "h-72 mt-4",
|
|
110
|
+
className: cn("h-72 mt-4", chartClassName),
|
|
85
111
|
data,
|
|
86
112
|
index,
|
|
87
113
|
categories,
|
|
88
|
-
colors
|
|
114
|
+
colors,
|
|
89
115
|
valueFormatter,
|
|
90
116
|
showLegend,
|
|
91
117
|
showGridLines,
|
|
92
118
|
stack,
|
|
93
|
-
curveType
|
|
119
|
+
curveType,
|
|
120
|
+
showXAxis,
|
|
121
|
+
showYAxis,
|
|
122
|
+
startEndOnly,
|
|
123
|
+
showTooltip,
|
|
124
|
+
showAnimation,
|
|
125
|
+
autoMinValue,
|
|
126
|
+
customTooltip
|
|
94
127
|
}
|
|
95
128
|
));
|
|
96
129
|
};
|
|
97
130
|
var DonutChartCard = (props) => {
|
|
98
|
-
const { data = [], categories = ["value"], index = "name", valueFormatter = (number) => `${number}`, showLabel = true, variant = "donut" } = props;
|
|
131
|
+
const { data = [], categories = ["value"], index = "name", valueFormatter = (number) => `${number}`, showLabel = true, variant = "donut", chartClassName, showAnimation = true } = props;
|
|
99
132
|
const category = categories[0];
|
|
100
|
-
return /* @__PURE__ */
|
|
133
|
+
return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement(
|
|
101
134
|
DonutChart,
|
|
102
135
|
{
|
|
103
|
-
className: "h-72 mt-4",
|
|
136
|
+
className: cn("h-72 mt-4", chartClassName),
|
|
104
137
|
data,
|
|
105
138
|
index,
|
|
106
139
|
category,
|
|
107
140
|
colors: ["indigo", "cyan", "teal", "green", "yellow", "orange", "red", "slate", "violet", "rose", "pink", "purple", "blue"],
|
|
108
141
|
valueFormatter,
|
|
109
142
|
showLabel,
|
|
110
|
-
variant
|
|
143
|
+
variant,
|
|
144
|
+
showAnimation
|
|
111
145
|
}
|
|
112
146
|
));
|
|
113
147
|
};
|
|
114
148
|
var CountCard = (props) => {
|
|
115
149
|
var _a;
|
|
116
150
|
if (!((_a = props.data) == null ? void 0 : _a.length)) {
|
|
117
|
-
return /* @__PURE__ */
|
|
151
|
+
return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement("div", { className: cn("mt-2 ml-2 text-2xl overflow-auto", props.chartClassName) }, /* @__PURE__ */ React9.createElement("span", { className: "text-gray-400" }, "No data")));
|
|
118
152
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
};
|
|
122
|
-
function renderValue(v) {
|
|
123
|
-
if (typeof v == "string" || typeof v == "number") {
|
|
124
|
-
return v;
|
|
153
|
+
if (!props.summedColumnIndex) {
|
|
154
|
+
return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement("div", { className: cn("mt-2 ml-2 text-2xl overflow-auto", props.chartClassName) }, /* @__PURE__ */ React9.createElement("span", { className: "text-gray-400 text-sm" }, "set ", /* @__PURE__ */ React9.createElement("span", { className: "font-bold" }, "summedColumnIndex"), " to sum up values")));
|
|
125
155
|
}
|
|
126
|
-
|
|
127
|
-
|
|
156
|
+
const sum = props.data.reduce((acc, cur) => {
|
|
157
|
+
const v = cur[props.summedColumnIndex];
|
|
158
|
+
if (typeof v == "number") {
|
|
159
|
+
return acc + v;
|
|
160
|
+
} else {
|
|
161
|
+
return acc;
|
|
162
|
+
}
|
|
163
|
+
}, 0);
|
|
164
|
+
return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement("div", { className: cn("mt-2 ml-2 font-bold text-2xl overflow-auto", props.chartClassName) }, sum));
|
|
165
|
+
};
|
|
128
166
|
var TableCard = (props) => {
|
|
129
|
-
const { data = [], columnOptions = {} } = props;
|
|
130
|
-
return /* @__PURE__ */
|
|
167
|
+
const { data = [], columnOptions = {}, chartClassName } = props;
|
|
168
|
+
return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), (data == null ? void 0 : data.length) > 0 ? /* @__PURE__ */ React9.createElement(JSONTable_default, { dataSource: data, columnOptions, className: cn("h-[256px]", chartClassName) }) : /* @__PURE__ */ React9.createElement("div", { className: cn("h-[256px] flex justify-center items-center text-gray-400", chartClassName) }, "No data"));
|
|
169
|
+
};
|
|
170
|
+
var SkeletonBox = ({ line, skClassName, className }) => {
|
|
171
|
+
const lineCamp = [...new Array(line || 1).keys()];
|
|
172
|
+
return /* @__PURE__ */ React9.createElement("div", { className: cn("flex items-center gap-4", className) }, lineCamp.map((_, index) => {
|
|
173
|
+
return /* @__PURE__ */ React9.createElement(
|
|
174
|
+
Skeleton,
|
|
175
|
+
{
|
|
176
|
+
key: index,
|
|
177
|
+
classNames: {
|
|
178
|
+
base: "transition-background !duration-700 before:transition-opacity before:!duration-700",
|
|
179
|
+
content: "transition-opacity motion-reduce:transition-none !duration-700"
|
|
180
|
+
},
|
|
181
|
+
className: cn("w-full h-10", skClassName)
|
|
182
|
+
}
|
|
183
|
+
);
|
|
184
|
+
}));
|
|
131
185
|
};
|
|
186
|
+
|
|
187
|
+
// components/JSONMetricsView/KPICard/index.tsx
|
|
132
188
|
var KPICard = (props) => {
|
|
133
|
-
const {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
data = [],
|
|
138
|
-
categories = ["value"],
|
|
139
|
-
index = "date",
|
|
140
|
-
valueFormatter = (number) => `${number}`,
|
|
141
|
-
curveType = "linear"
|
|
142
|
-
} = props;
|
|
189
|
+
const { metricTitle, metric, chartType = "area", data = [], categories = ["value"], index = "date", valueFormatter = (number) => `${number}`, curveType = "linear", loading, chartClassName } = props;
|
|
190
|
+
if (loading) {
|
|
191
|
+
return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement("div", { className: "mt-4 space-x-6 px-2 flex items-center" }, /* @__PURE__ */ React9.createElement("div", { className: "w-auto" }, /* @__PURE__ */ React9.createElement(Text, { className: "whitespace-nowrap" }, "Loading..."), /* @__PURE__ */ React9.createElement("div", { className: "font-bold text-3xl" }, "-")), /* @__PURE__ */ React9.createElement(SkeletonBox, { className: "flex-col w-full", skClassName: "h-[100px] overflow-hidden", line: 1 })));
|
|
192
|
+
}
|
|
143
193
|
const ChartComp = chartType === "area" ? AreaChart : LineChart;
|
|
144
|
-
return /* @__PURE__ */
|
|
194
|
+
return /* @__PURE__ */ React9.createElement(ChartBox, __spreadValues({}, props), /* @__PURE__ */ React9.createElement("div", { className: "mt-4 space-x-6 px-2 flex items-center" }, /* @__PURE__ */ React9.createElement("div", { className: "w-auto" }, /* @__PURE__ */ React9.createElement(Text, { className: "whitespace-nowrap" }, metricTitle), /* @__PURE__ */ React9.createElement("div", { className: "font-bold text-3xl" }, metric != null ? metric : "-")), /* @__PURE__ */ React9.createElement(
|
|
145
195
|
ChartComp,
|
|
146
196
|
{
|
|
147
|
-
className: "overflow-hidden",
|
|
148
|
-
style: { height: "100px" },
|
|
197
|
+
className: cn("h-[100px] overflow-hidden", chartClassName),
|
|
149
198
|
data,
|
|
150
199
|
index,
|
|
151
200
|
categories,
|
|
@@ -156,7 +205,9 @@ var KPICard = (props) => {
|
|
|
156
205
|
showGridLines: false,
|
|
157
206
|
startEndOnly: true,
|
|
158
207
|
showYAxis: false,
|
|
159
|
-
showLegend: false
|
|
208
|
+
showLegend: false,
|
|
209
|
+
autoMinValue: true,
|
|
210
|
+
showAnimation: true
|
|
160
211
|
}
|
|
161
212
|
)));
|
|
162
213
|
};
|
|
@@ -172,15 +223,15 @@ var components = {
|
|
|
172
223
|
KPICard
|
|
173
224
|
};
|
|
174
225
|
var JSONMetricsView = ({ data }) => {
|
|
175
|
-
return /* @__PURE__ */
|
|
226
|
+
return /* @__PURE__ */ React9.createElement(Grid, { numItems: 1, numItemsSm: 1, numItemsLg: 2, numItemsMd: 2, className: "gap-2" }, data.map((item, index) => {
|
|
176
227
|
var _a;
|
|
177
228
|
const Component = components[item.type];
|
|
178
|
-
return /* @__PURE__ */
|
|
229
|
+
return /* @__PURE__ */ React9.createElement(Col, { key: index, numColSpanSm: 1, numColSpanMd: (_a = item.numColSpanMd) != null ? _a : 1 }, /* @__PURE__ */ React9.createElement(Component, __spreadValues({}, item)));
|
|
179
230
|
}));
|
|
180
231
|
};
|
|
181
232
|
var MetricsView = ({ data }) => {
|
|
182
233
|
const Comp = components[data.type];
|
|
183
|
-
return /* @__PURE__ */
|
|
234
|
+
return /* @__PURE__ */ React9.createElement(Comp, __spreadValues({}, data));
|
|
184
235
|
};
|
|
185
236
|
|
|
186
237
|
export { JSONMetricsView, MetricsView };
|
package/dist/metrics.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/JSONMetricsView/index.tsx","../components/JSONMetricsView/BarChartCard/index.tsx","../components/JSONMetricsView/ChartBox/index.tsx","../components/JSONMetricsView/LineChartCard/index.tsx","../components/JSONMetricsView/AreaChartCard/index.tsx","../components/JSONMetricsView/DonutChartCard/index.tsx","../components/JSONMetricsView/CountCard/index.tsx","../components/JSONMetricsView/TableCard/index.tsx","../components/JSONMetricsView/KPICard/index.tsx"],"names":["React","AreaChart","LineChart"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Col, Grid } from '@tremor/react';\nimport { BarChartCard } from './BarChartCard';\nimport { LineChartCard } from './LineChartCard';\nimport { AreaChartCard } from './AreaChartCard';\nimport { DonutChartCard } from './DonutChartCard';\nimport { CountCard } from './CountCard';\nimport { TableCard } from './TableCard';\nimport { KPICard } from './KPICard';\n\n\nexport type JSONMetricsViewType = AreaChartCard | LineChartCard | BarChartCard | DonutChartCard | CountCard | TableCard | KPICard;\n\nconst components = {\n AreaChartCard,\n LineChartCard,\n BarChartCard,\n DonutChartCard,\n CountCard,\n TableCard,\n KPICard,\n};\n\n\nconst JSONMetricsView = ({ data }: { data: JSONMetricsViewType[] }) => {\n return (\n <Grid numItems={1} numItemsSm={1} numItemsLg={2} numItemsMd={2} className=\"gap-2\">\n {data.map((item, index) => {\n //@ts-ignore\n const Component = components[item.type];\n return (\n <Col key={index} numColSpanSm={1} numColSpanMd={item.numColSpanMd ?? 1}>\n {/* @ts-ignore */}\n <Component {...item} />\n </Col>\n );\n })}\n </Grid>\n );\n};\n\nexport const MetricsView = ({ data }: { data: JSONMetricsViewType }) => {\n //@ts-ignore\n const Comp = components[data.type];\n // @ts-ignore\n return <Comp {...data} />;\n};\n\nexport { JSONMetricsView };\n","import React from 'react';\nimport { BarChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\n\nexport type BarChartCard = ChartBox & {\n type?: 'BarChartCard',\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLegend?: boolean;\n showGridLines?: boolean;\n stack?: boolean;\n}\n\nexport const BarChartCard = (props: BarChartCard) => {\n const {\n data = [], categories = ['value'], index = 'date', valueFormatter = (number) => `${number}`,\n showLegend = false, showGridLines = false, stack = false\n } = props;\n\n return (\n <ChartBox {...props}>\n <BarChart\n className=\"h-72 mt-4\"\n data={data}\n index={index}\n categories={categories}\n colors={[\"indigo\", \"cyan\", \"teal\", \"green\", \"yellow\", \"orange\", \"red\", \"slate\", \"violet\", \"rose\", \"pink\", \"purple\", \"blue\"]}\n valueFormatter={valueFormatter}\n yAxisWidth={48}\n showLegend={showLegend}\n showGridLines={showGridLines}\n stack={stack}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { cn } from '../../../lib/utils';\nimport { Card, Skeleton, Spinner } from '@nextui-org/react';\n\nexport interface ChartBox {\n title?: React.ReactNode;\n description?: string;\n error?: string;\n data?: {\n [key: string]: any;\n }[];\n children?: React.ReactNode;\n gridH?: number; // grid units, not pixels\n numColSpanMd?: number;\n className?: string;\n}\n\nexport const ChartBox = ({ title, description, error, children, className }: ChartBox) => {\n return (\n <Card className={cn('dark:border-gray-800', className)} shadow='sm'>\n <div className='p-4 h-[60px]'>\n <div>{title}</div>\n {description && <div className='text-xs'>{description}</div>}\n </div>\n <div className=\"px-2 pb-5\">\n {error ? <div className=\"text-red-600\">{error}</div> : children}\n </div>\n </Card>\n );\n};\n","import React from 'react';\nimport { LineChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\n\nexport type LineChartCard = ChartBox & {\n type?: 'LineChartCard';\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLegend?: boolean;\n showGridLines?: boolean;\n curveType?: 'linear' | 'natural' | 'step'\n}\n\nexport const LineChartCard = (props: LineChartCard) => {\n const {\n data = [], categories = ['value'], index = 'date', valueFormatter = (number) => `${number}`,\n showLegend = false, showGridLines = false, curveType = 'linear'\n } = props;\n\n return (\n <ChartBox {...props}>\n <LineChart\n className=\"h-72 mt-4\"\n data={data}\n index={index}\n categories={categories}\n colors={[\"indigo\", \"cyan\", \"teal\", \"green\", \"yellow\", \"orange\", \"red\", \"slate\", \"violet\", \"rose\", \"pink\", \"purple\", \"blue\"]}\n valueFormatter={valueFormatter}\n showLegend={showLegend}\n showGridLines={showGridLines}\n curveType={curveType}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\n\nexport type AreaChartCard = ChartBox & {\n type?: 'AreaChartCard';\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLegend?: boolean;\n showGridLines?: boolean;\n stack?: boolean;\n curveType?: 'linear' | 'natural' | 'step'\n}\n\nexport const AreaChartCard = (props: AreaChartCard) => {\n const {\n data = [], categories = ['value'], index = 'date', valueFormatter = (number) => `${number}`,\n showLegend = false, showGridLines = false, stack = false, curveType = 'linear'\n } = props;\n\n return (\n <ChartBox {...props}>\n <AreaChart\n className=\"h-72 mt-4\"\n data={data}\n index={index}\n categories={categories}\n colors={[\"indigo\", \"cyan\", \"teal\", \"green\", \"yellow\", \"orange\", \"red\", \"slate\", \"violet\", \"rose\", \"pink\", \"purple\", \"blue\"]}\n valueFormatter={valueFormatter}\n showLegend={showLegend}\n showGridLines={showGridLines}\n stack={stack}\n curveType={curveType}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { DonutChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\n\nexport type DonutChartCard = ChartBox & {\n type?: 'DonutChartCard',\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLabel?: boolean;\n variant?: 'donut' | 'pie'\n}\n\nexport const DonutChartCard = (props: DonutChartCard) => {\n const { data = [], categories = ['value'], index = 'name', valueFormatter = (number) => `${number}`, showLabel = true, variant = 'donut' } = props;\n const category = categories[0];\n return (\n <ChartBox {...props}>\n <DonutChart\n className=\"h-72 mt-4\"\n data={data}\n index={index}\n category={category}\n colors={[\"indigo\", \"cyan\", \"teal\", \"green\", \"yellow\", \"orange\", \"red\", \"slate\", \"violet\", \"rose\", \"pink\", \"purple\", \"blue\"]}\n valueFormatter={valueFormatter}\n showLabel={showLabel}\n variant={variant}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { ChartBox } from '../ChartBox';\n\nexport type CountCard = ChartBox & {\n type?: 'CountCard';\n};\n\nexport const CountCard = (props: CountCard) => {\n if (!props.data?.length) {\n return (\n <ChartBox {...props}>\n <div className=\"mt-2 ml-2 text-2xl overflow-auto\">\n <span className=\"text-gray-400\">No data</span>\n </div>\n </ChartBox>\n )\n }\n\n const value = Object.values(props.data[0])[0];\n return (\n <ChartBox {...props}>\n <div className=\"mt-2 ml-2 font-bold text-2xl overflow-auto\">{renderValue(value)}</div>\n </ChartBox>\n );\n};\n\nfunction renderValue(v: any) {\n if (typeof v == 'string' || typeof v == 'number') {\n return v;\n }\n return JSON.stringify(v);\n}\n","import React from 'react';\nimport { ChartBox } from '../ChartBox';\nimport JSONTable from '../../JSONTable';\n\nexport type TableCard = ChartBox & {\n type?: 'TableCard';\n columnOptions?: {\n [key: string]: {\n label: string;\n hidden: boolean;\n }\n }\n}\n\nexport const TableCard = (props: TableCard) => {\n const { data = [], columnOptions = {} } = props;\n\n return (\n <ChartBox {...props}>\n {data?.length > 0\n ? <JSONTable dataSource={data} columnOptions={columnOptions} className=\"h-[256px]\" />\n : <div className=\"h-[256px] flex justify-center items-center text-gray-400\">No data</div>\n }\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, LineChart, Text, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\n\nexport type KPICard = ChartBox & {\n type?: 'KPICard';\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n curveType?: 'linear' | 'natural' | 'step';\n metricTitle?: string;\n metric?: string | number;\n chartType?: 'area' | 'line';\n}\n\nexport const KPICard = (props: KPICard) => {\n const {\n metricTitle, metric, chartType = 'area', data = [], categories = ['value'], index = 'date', valueFormatter = (number) => `${number}`, curveType = 'linear'\n } = props;\n\n const ChartComp = chartType === 'area' ? AreaChart : LineChart;\n\n return (\n <ChartBox {...props}>\n <div className=\"mt-4 space-x-6 px-2 flex items-center\">\n <div className='w-auto'>\n <Text className='whitespace-nowrap'>{metricTitle}</Text>\n <div className='font-bold text-3xl'>{metric}</div>\n </div>\n <ChartComp\n className='overflow-hidden'\n style={{ height: \"100px\" }}\n data={data}\n index={index}\n categories={categories}\n colors={[\"indigo\", \"cyan\", \"teal\", \"green\", \"yellow\", \"orange\", \"red\", \"slate\", \"violet\", \"rose\", \"pink\", \"purple\", \"blue\"]}\n valueFormatter={valueFormatter}\n curveType={curveType}\n showXAxis={false}\n showGridLines={false}\n startEndOnly={true}\n showYAxis={false}\n showLegend={false}\n />\n </div>\n </ChartBox>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../components/JSONMetricsView/index.tsx","../components/JSONMetricsView/BarChartCard/index.tsx","../components/JSONMetricsView/ChartBox/index.tsx","../components/JSONMetricsView/LineChartCard/index.tsx","../components/JSONMetricsView/AreaChartCard/index.tsx","../components/JSONMetricsView/DonutChartCard/index.tsx","../components/JSONMetricsView/CountCard/index.tsx","../components/JSONMetricsView/TableCard/index.tsx","../components/JSONMetricsView/KPICard/index.tsx","../components/Common/SkeletonBox/index.tsx"],"names":["React","AreaChart","LineChart"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Col, Grid } from '@tremor/react';\nimport { BarChartCard } from './BarChartCard';\nimport { LineChartCard } from './LineChartCard';\nimport { AreaChartCard } from './AreaChartCard';\nimport { DonutChartCard } from './DonutChartCard';\nimport { CountCard } from './CountCard';\nimport { TableCard } from './TableCard';\nimport { KPICard } from './KPICard';\n\nexport type JSONMetricsViewType = AreaChartCard | LineChartCard | BarChartCard | DonutChartCard | CountCard | TableCard | KPICard;\n\nconst components = {\n AreaChartCard,\n LineChartCard,\n BarChartCard,\n DonutChartCard,\n CountCard,\n TableCard,\n KPICard,\n};\n\nconst JSONMetricsView = ({ data }: { data: JSONMetricsViewType[] }) => {\n return (\n <Grid numItems={1} numItemsSm={1} numItemsLg={2} numItemsMd={2} className=\"gap-2\">\n {data.map((item, index) => {\n const Component = components[item.type];\n return (\n <Col key={index} numColSpanSm={1} numColSpanMd={item.numColSpanMd ?? 1}>\n {/* @ts-ignore */}\n <Component {...item} />\n </Col>\n );\n })}\n </Grid>\n );\n};\n\nexport const MetricsView = ({ data }: { data: JSONMetricsViewType }) => {\n const Comp = components[data.type];\n // @ts-ignore\n return <Comp {...data} />;\n};\n\nexport { JSONMetricsView };\n","import React from 'react';\nimport { BarChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\nimport { cn } from '../../../lib/utils';\n\nexport type BarChartCard = ChartBox & {\n type?: 'BarChartCard';\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLegend?: boolean;\n showGridLines?: boolean;\n stack?: boolean;\n showAnimation?: boolean;\n};\n\nexport const BarChartCard = (props: BarChartCard) => {\n const {\n data = [],\n categories = ['value'],\n index = 'date',\n valueFormatter = (number) => `${number}`,\n showLegend = false,\n showGridLines = false,\n stack = false,\n chartClassName,\n showAnimation = true,\n } = props;\n\n return (\n <ChartBox {...props}>\n <BarChart\n className={cn('h-72 mt-4', chartClassName)}\n data={data}\n index={index}\n categories={categories}\n colors={['indigo', 'cyan', 'teal', 'green', 'yellow', 'orange', 'red', 'slate', 'violet', 'rose', 'pink', 'purple', 'blue']}\n valueFormatter={valueFormatter}\n yAxisWidth={48}\n showLegend={showLegend}\n showGridLines={showGridLines}\n stack={stack}\n showAnimation={showAnimation}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { cn } from '../../../lib/utils';\nimport { Card } from '@nextui-org/react';\n\nexport interface ChartBox {\n title?: React.ReactNode;\n description?: string;\n error?: string;\n data?: {\n [key: string]: any;\n }[];\n children?: React.ReactNode;\n gridH?: number; // grid units, not pixels\n numColSpanMd?: number;\n className?: string;\n headerClassName?: string;\n contentClassName?: string;\n chartClassName?: string;\n}\n\nexport const ChartBox = ({ title, description, error, children, className, headerClassName, contentClassName }: ChartBox) => {\n return (\n <Card className={cn('dark:border-gray-800 shadow-sm border', className)}>\n {(title || description) && (\n <div className={cn('p-4 h-[60px]', headerClassName)}>\n {title && <div>{title}</div>}\n {description && <div className=\"text-xs\">{description}</div>}\n </div>\n )}\n <div className={cn('px-2 pb-5', contentClassName)}>{error ? <div className=\"text-red-600\">{error}</div> : children}</div>\n </Card>\n );\n};\n","import React from 'react';\nimport { LineChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\nimport { cn } from '../../../lib/utils';\n\nexport type LineChartCard = ChartBox & {\n type?: 'LineChartCard';\n categories?: string[];\n index?: string;\n curveType?: 'linear' | 'step' | 'monotone';\n colors?: (\n | 'slate'\n | 'gray'\n | 'zinc'\n | 'neutral'\n | 'stone'\n | 'red'\n | 'orange'\n | 'amber'\n | 'yellow'\n | 'lime'\n | 'green'\n | 'emerald'\n | 'teal'\n | 'cyan'\n | 'sky'\n | 'blue'\n | 'indigo'\n | 'violet'\n | 'purple'\n | 'fuchsia'\n | 'pink'\n | 'rose'\n )[];\n showLegend?: boolean;\n showGridLines?: boolean;\n showXAxis?: boolean;\n showYAxis?: boolean;\n startEndOnly?: boolean;\n showTooltip?: boolean;\n showAnimation?: boolean;\n autoMinValue?: boolean;\n valueFormatter?: ValueFormatter;\n};\n\nexport const LineChartCard = (props: LineChartCard) => {\n const {\n data = [],\n categories = ['value'],\n index = 'date',\n curveType = 'linear',\n colors = ['indigo', 'cyan', 'teal', 'green', 'yellow', 'orange', 'red', 'slate', 'violet', 'rose', 'pink', 'purple', 'blue'],\n showLegend = false,\n showGridLines = false,\n chartClassName,\n showXAxis = true,\n showYAxis = true,\n startEndOnly = false,\n showTooltip = true,\n showAnimation = true,\n autoMinValue = true,\n valueFormatter = (number) => `${number}`,\n } = props;\n\n return (\n <ChartBox {...props}>\n <LineChart\n className={cn('h-72 mt-4', chartClassName)}\n data={data}\n index={index}\n categories={categories}\n colors={colors}\n valueFormatter={valueFormatter}\n showLegend={showLegend}\n showGridLines={showGridLines}\n curveType={curveType}\n showXAxis={showXAxis}\n showYAxis={showYAxis}\n startEndOnly={startEndOnly}\n showTooltip={showTooltip}\n showAnimation={showAnimation}\n autoMinValue={autoMinValue}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\nimport { cn } from '../../../lib/utils';\n\nexport type AreaChartCard = ChartBox & {\n type?: 'AreaChartCard';\n categories?: string[];\n index?: string;\n curveType?: 'linear' | 'step' | 'monotone';\n colors?: (\n | 'slate'\n | 'gray'\n | 'zinc'\n | 'neutral'\n | 'stone'\n | 'red'\n | 'orange'\n | 'amber'\n | 'yellow'\n | 'lime'\n | 'green'\n | 'emerald'\n | 'teal'\n | 'cyan'\n | 'sky'\n | 'blue'\n | 'indigo'\n | 'violet'\n | 'purple'\n | 'fuchsia'\n | 'pink'\n | 'rose'\n )[];\n showLegend?: boolean;\n showGridLines?: boolean;\n stack?: boolean;\n showXAxis?: boolean;\n showYAxis?: boolean;\n startEndOnly?: boolean;\n showTooltip?: boolean;\n showAnimation?: boolean;\n autoMinValue?: boolean;\n valueFormatter?: ValueFormatter;\n customTooltip?: ({ payload, active, label }) => React.ReactNode;\n};\n\n\nexport const AreaChartCard = (props: AreaChartCard) => {\n const {\n data = [],\n categories = ['value'],\n index = 'date',\n curveType = 'linear',\n colors = ['indigo', 'cyan', 'teal', 'green', 'yellow', 'orange', 'red', 'slate', 'violet', 'rose', 'pink', 'purple', 'blue'],\n showLegend = false,\n showGridLines = false,\n stack = false,\n chartClassName,\n showXAxis = true,\n showYAxis = true,\n startEndOnly = false,\n showTooltip = true,\n showAnimation = true,\n autoMinValue = true,\n valueFormatter = (number) => `${number}`,\n customTooltip,\n } = props;\n\n return (\n <ChartBox {...props}>\n <AreaChart\n className={cn('h-72 mt-4', chartClassName)}\n data={data}\n index={index}\n categories={categories}\n colors={colors}\n valueFormatter={valueFormatter}\n showLegend={showLegend}\n showGridLines={showGridLines}\n stack={stack}\n curveType={curveType}\n showXAxis={showXAxis}\n showYAxis={showYAxis}\n startEndOnly={startEndOnly}\n showTooltip={showTooltip}\n showAnimation={showAnimation}\n autoMinValue={autoMinValue}\n customTooltip={customTooltip}\n />\n </ChartBox>\n );\n};\n\n","import React from 'react';\nimport { DonutChart, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\nimport { cn } from '../../../lib/utils';\n\nexport type DonutChartCard = ChartBox & {\n type?: 'DonutChartCard';\n categories?: string[];\n index?: string;\n valueFormatter?: ValueFormatter;\n showLabel?: boolean;\n variant?: 'donut' | 'pie';\n showAnimation?: boolean;\n};\n\nexport const DonutChartCard = (props: DonutChartCard) => {\n const { data = [], categories = ['value'], index = 'name', valueFormatter = (number) => `${number}`, showLabel = true, variant = 'donut', chartClassName, showAnimation = true } = props;\n const category = categories[0];\n return (\n <ChartBox {...props}>\n <DonutChart\n className={cn('h-72 mt-4', chartClassName)}\n data={data}\n index={index}\n category={category}\n colors={['indigo', 'cyan', 'teal', 'green', 'yellow', 'orange', 'red', 'slate', 'violet', 'rose', 'pink', 'purple', 'blue']}\n valueFormatter={valueFormatter}\n showLabel={showLabel}\n variant={variant}\n showAnimation={showAnimation}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { ChartBox } from '../ChartBox';\nimport { cn } from '../../../lib/utils';\n\nexport type CountCard = ChartBox & {\n type?: 'CountCard';\n summedColumnIndex?: string;\n};\n\nexport const CountCard = (props: CountCard) => {\n if (!props.data?.length) {\n return (\n <ChartBox {...props}>\n <div className={cn(\"mt-2 ml-2 text-2xl overflow-auto\", props.chartClassName)}>\n <span className=\"text-gray-400\">No data</span>\n </div>\n </ChartBox>\n );\n }\n\n if (!props.summedColumnIndex) {\n return (\n <ChartBox {...props}>\n <div className={cn(\"mt-2 ml-2 text-2xl overflow-auto\", props.chartClassName)}>\n <span className=\"text-gray-400 text-sm\">\n set <span className=\"font-bold\">summedColumnIndex</span> to sum up values\n </span>\n </div>\n </ChartBox>\n );\n }\n\n const sum = props.data.reduce((acc, cur) => {\n const v = cur[props.summedColumnIndex];\n if (typeof v == 'number') {\n return acc + v;\n } else {\n return acc;\n }\n }, 0);\n\n return (\n <ChartBox {...props}>\n <div className={cn(\"mt-2 ml-2 font-bold text-2xl overflow-auto\", props.chartClassName)}>{sum}</div>\n </ChartBox>\n );\n};","import React from 'react';\nimport { ChartBox } from '../ChartBox';\nimport JSONTable from '../../JSONTable';\nimport { cn } from '../../../lib/utils';\n\nexport type TableCard = ChartBox & {\n type?: 'TableCard';\n columnOptions?: {\n [key: string]: {\n label: string;\n hidden: boolean;\n }\n }\n}\n\nexport const TableCard = (props: TableCard) => {\n const { data = [], columnOptions = {}, chartClassName } = props;\n return (\n <ChartBox {...props}>\n {data?.length > 0\n ? <JSONTable dataSource={data} columnOptions={columnOptions} className={cn(\"h-[256px]\", chartClassName)} />\n : <div className={cn(\"h-[256px] flex justify-center items-center text-gray-400\", chartClassName)}>No data</div>\n }\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, LineChart, Text, ValueFormatter } from '@tremor/react';\nimport { ChartBox } from '../ChartBox';\nimport { SkeletonBox } from '../../Common/SkeletonBox';\nimport { cn } from '../../../lib/utils';\n\nexport type KPICard = ChartBox & {\n type?: 'KPICard';\n categories?: string[];\n index?: string;\n chartType?: 'area' | 'line';\n curveType?: 'linear' | 'step' | 'monotone';\n metricTitle?: string;\n metric?: string | number;\n valueFormatter?: ValueFormatter;\n loading?: boolean;\n};\n\nexport const KPICard = (props: KPICard) => {\n const { metricTitle, metric, chartType = 'area', data = [], categories = ['value'], index = 'date', valueFormatter = (number) => `${number}`, curveType = 'linear', loading, chartClassName } = props;\n\n if (loading) {\n return (\n <ChartBox {...props}>\n <div className=\"mt-4 space-x-6 px-2 flex items-center\">\n <div className=\"w-auto\">\n <Text className=\"whitespace-nowrap\">Loading...</Text>\n <div className=\"font-bold text-3xl\">-</div>\n </div>\n <SkeletonBox className=\"flex-col w-full\" skClassName=\"h-[100px] overflow-hidden\" line={1} />\n </div>\n </ChartBox>\n );\n }\n\n const ChartComp = chartType === 'area' ? AreaChart : LineChart;\n\n return (\n <ChartBox {...props}>\n <div className=\"mt-4 space-x-6 px-2 flex items-center\">\n <div className=\"w-auto\">\n <Text className=\"whitespace-nowrap\">{metricTitle}</Text>\n <div className=\"font-bold text-3xl\">{metric ?? '-'}</div>\n </div>\n <ChartComp\n className={cn('h-[100px] overflow-hidden', chartClassName)}\n data={data}\n index={index}\n categories={categories}\n colors={['indigo', 'cyan', 'teal', 'green', 'yellow', 'orange', 'red', 'slate', 'violet', 'rose', 'pink', 'purple', 'blue']}\n valueFormatter={valueFormatter}\n curveType={curveType}\n showXAxis={false}\n showGridLines={false}\n startEndOnly={true}\n showYAxis={false}\n showLegend={false}\n autoMinValue={true}\n showAnimation={true}\n />\n </div>\n </ChartBox>\n );\n};\n","\nimport { Skeleton } from '@nextui-org/react';\nimport React from 'react';\nimport { cn } from '../../../lib/utils';\n\nexport interface SkeletonBox {\n line?: number;\n skClassName: string;\n}\n\nexport const SkeletonBox = ({ line, skClassName, className }: SkeletonBox & { skClassName?: string; className?: string }) => {\n const lineCamp = [...new Array(line || 1).keys()];\n\n return (\n <div className={cn('flex items-center gap-4', className)}>\n {lineCamp.map((_, index) => {\n return (\n <Skeleton\n key={index}\n classNames={{\n base: 'transition-background !duration-700 before:transition-opacity before:!duration-700',\n content: 'transition-opacity motion-reduce:transition-none !duration-700',\n }}\n className={cn('w-full h-10', skClassName)}\n />\n );\n })}\n </div>\n );\n};\n"]}
|
package/dist/plugins.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { S as Store } from './root-
|
|
1
|
+
import { S as Store } from './root-766ae985.js';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import * as react_hot_toast from 'react-hot-toast';
|
|
4
|
-
import { P as PromiseState } from './PromiseState-
|
|
4
|
+
import { P as PromiseState } from './PromiseState-2a8c856c.js';
|
|
5
5
|
import 'typed-emitter';
|
|
6
6
|
import 'events';
|
|
7
7
|
|
package/dist/plugins.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { ToastPlugin } from './chunk-N4XCPX4L.mjs';
|
|
2
|
-
import { DialogStore } from './chunk-
|
|
3
|
-
export { DialogStore } from './chunk-
|
|
4
|
-
import { useStore } from './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import { cn } from './chunk-
|
|
7
|
-
import { __spreadValues } from './chunk-
|
|
2
|
+
import { DialogStore } from './chunk-WAYJJYKN.mjs';
|
|
3
|
+
export { DialogStore } from './chunk-WAYJJYKN.mjs';
|
|
4
|
+
import { useStore } from './chunk-SXQEYWUP.mjs';
|
|
5
|
+
import './chunk-HRWHDF2F.mjs';
|
|
6
|
+
import { cn } from './chunk-6UHBBDKI.mjs';
|
|
7
|
+
import { __spreadValues } from './chunk-6F7H4PAA.mjs';
|
|
8
8
|
import { makeAutoObservable } from 'mobx';
|
|
9
9
|
import React from 'react';
|
|
10
10
|
import { observer } from 'mobx-react-lite';
|
|
@@ -106,4 +106,4 @@ declare class RootStore<T extends EventMap = any> {
|
|
|
106
106
|
}, ann?: any): T;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
export {
|
|
109
|
+
export { BaseState as B, EventMap as E, NumberState as N, RootStore as R, Store as S, ValueState as V, StoreClass as a, StringState as b, BooleanState as c };
|
package/dist/ui.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import './chunk-
|
|
2
|
-
import { cn } from './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
import './chunk-U7JFOBSQ.mjs';
|
|
2
|
+
import { cn } from './chunk-6UHBBDKI.mjs';
|
|
3
|
+
import './chunk-6F7H4PAA.mjs';
|
|
4
4
|
import { Card } from '@nextui-org/react';
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { CheckIcon, CopyIcon } from '@radix-ui/react-icons';
|