@dappworks/kit 0.5.40 → 0.5.42
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/PaginationState-Bmrrw0ky.d.mts +17 -0
- package/dist/PromiseState-8EAu4Zv4.d.mts +57 -0
- package/dist/StorageState-qapaHguM.d.mts +48 -0
- package/dist/aiem.d.mts +167 -0
- package/dist/aiem.mjs +5 -5
- package/dist/aiem.mjs.map +1 -1
- package/dist/{chunk-MPNSYZJU.mjs → chunk-2B3FO5P6.mjs} +5 -5
- package/dist/chunk-2B3FO5P6.mjs.map +1 -0
- package/dist/{chunk-2HNXZE3X.mjs → chunk-6HA5WR5H.mjs} +372 -401
- package/dist/chunk-6HA5WR5H.mjs.map +1 -0
- package/dist/{chunk-QA3E2PJT.mjs → chunk-AFXQRBS6.mjs} +3 -3
- package/dist/chunk-AFXQRBS6.mjs.map +1 -0
- package/dist/{chunk-O3FWAAEG.mjs → chunk-FLACAHWH.mjs} +7 -8
- package/dist/chunk-FLACAHWH.mjs.map +1 -0
- package/dist/chunk-GKAU4P5I.mjs +1 -1
- package/dist/chunk-GKAU4P5I.mjs.map +1 -1
- package/dist/{chunk-B7RV4C5E.mjs → chunk-GPPSD2BO.mjs} +4 -6
- package/dist/chunk-GPPSD2BO.mjs.map +1 -0
- package/dist/chunk-IMOLRP7I.mjs +1 -1
- package/dist/chunk-IMOLRP7I.mjs.map +1 -1
- package/dist/chunk-K7LFG5BA.mjs +2 -2
- package/dist/chunk-K7LFG5BA.mjs.map +1 -1
- package/dist/{chunk-2N4HH4ZF.mjs → chunk-NCGC2KDE.mjs} +4 -6
- package/dist/chunk-NCGC2KDE.mjs.map +1 -0
- package/dist/chunk-ONVPCAMQ.mjs +1 -1
- package/dist/chunk-ONVPCAMQ.mjs.map +1 -1
- package/dist/{chunk-PZ3VSAOC.mjs → chunk-TEVYTENF.mjs} +3 -3
- package/dist/chunk-TEVYTENF.mjs.map +1 -0
- package/dist/{chunk-2WRRZVUW.mjs → chunk-UMFAEQ5S.mjs} +30 -55
- package/dist/chunk-UMFAEQ5S.mjs.map +1 -0
- package/dist/{chunk-R4N52NI2.mjs → chunk-VDDGCMCB.mjs} +38 -28
- package/dist/chunk-VDDGCMCB.mjs.map +1 -0
- package/dist/chunk-XSGTWROT.mjs +1 -1
- package/dist/chunk-XSGTWROT.mjs.map +1 -1
- package/dist/{chunk-R4SQKVDQ.mjs → chunk-YOSPWY5K.mjs} +2 -2
- package/dist/chunk-YOSPWY5K.mjs.map +1 -0
- package/dist/dev.d.mts +26 -0
- package/dist/dev.mjs +6 -8
- package/dist/dev.mjs.map +1 -1
- package/dist/experimental.d.mts +190 -0
- package/dist/experimental.mjs +6 -8
- package/dist/experimental.mjs.map +1 -1
- package/dist/form.d.mts +384 -0
- package/dist/form.mjs +15 -19
- package/dist/form.mjs.map +1 -1
- package/dist/index-CUKoRIdy.d.mts +3 -0
- package/dist/index.d.mts +90 -0
- package/dist/index.mjs +8 -8
- package/dist/index.mjs.map +1 -1
- package/dist/inspector.d.mts +15 -0
- package/dist/inspector.mjs +3 -4
- package/dist/inspector.mjs.map +1 -1
- package/dist/jsoncomponent.d.mts +22 -0
- package/dist/jsoncomponent.mjs +2 -2
- package/dist/jsoncomponent.mjs.map +1 -1
- package/dist/jsontable.d.mts +126 -0
- package/dist/jsontable.mjs +5 -5
- package/dist/jsontable.mjs.map +1 -1
- package/dist/metrics.d.mts +121 -0
- package/dist/metrics.mjs +6 -6
- package/dist/metrics.mjs.map +1 -1
- package/dist/plugins.d.mts +118 -0
- package/dist/plugins.mjs +5 -5
- package/dist/plugins.mjs.map +1 -1
- package/dist/root-BPMUmS6H.d.mts +111 -0
- package/dist/ui.d.mts +29 -0
- package/dist/ui.mjs +5 -6
- package/dist/ui.mjs.map +1 -1
- package/dist/utils.d.mts +232 -0
- package/dist/utils.mjs +4 -4
- package/dist/utils.mjs.map +1 -1
- package/dist/wallet.d.mts +198 -0
- package/dist/wallet.mjs +58 -16
- package/dist/wallet.mjs.map +1 -1
- package/package.json +4 -3
- package/dist/chunk-2HNXZE3X.mjs.map +0 -1
- package/dist/chunk-2N4HH4ZF.mjs.map +0 -1
- package/dist/chunk-2WRRZVUW.mjs.map +0 -1
- package/dist/chunk-B7RV4C5E.mjs.map +0 -1
- package/dist/chunk-MPNSYZJU.mjs.map +0 -1
- package/dist/chunk-O3FWAAEG.mjs.map +0 -1
- package/dist/chunk-PZ3VSAOC.mjs.map +0 -1
- package/dist/chunk-QA3E2PJT.mjs.map +0 -1
- package/dist/chunk-R4N52NI2.mjs.map +0 -1
- package/dist/chunk-R4SQKVDQ.mjs.map +0 -1
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { R as RootStore, E as EventMap, S as Store } from './root-BPMUmS6H.mjs';
|
|
2
|
+
export { B as BaseState, c as BooleanState, N as NumberState, a as StoreClass, b as StringState, V as ValueState } from './root-BPMUmS6H.mjs';
|
|
3
|
+
export { P as PromiseState } from './PromiseState-8EAu4Zv4.mjs';
|
|
4
|
+
export { P as PromiseHook, S as StorageState } from './StorageState-qapaHguM.mjs';
|
|
5
|
+
import BigNumber from 'bignumber.js';
|
|
6
|
+
export { P as PaginationState } from './PaginationState-Bmrrw0ky.mjs';
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import 'typed-emitter';
|
|
9
|
+
import 'events';
|
|
10
|
+
import 'mobx';
|
|
11
|
+
|
|
12
|
+
declare const rootStore: RootStore<EventMap>;
|
|
13
|
+
declare const useStore: () => RootStore<EventMap>;
|
|
14
|
+
|
|
15
|
+
declare class BigNumberState {
|
|
16
|
+
value: BigNumber;
|
|
17
|
+
loading: boolean;
|
|
18
|
+
decimals: number;
|
|
19
|
+
fixed: number;
|
|
20
|
+
formatter?: Function;
|
|
21
|
+
constructor(args: Partial<BigNumberState>);
|
|
22
|
+
get format(): any;
|
|
23
|
+
getFormat({ decimals, fixed }?: {
|
|
24
|
+
decimals?: number;
|
|
25
|
+
fixed?: number;
|
|
26
|
+
}): any;
|
|
27
|
+
setDecimals(decimals: number): void;
|
|
28
|
+
setValue(value: BigNumber): void;
|
|
29
|
+
setLoading(val: any): void;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
declare class BigNumberInputState {
|
|
33
|
+
value: BigNumber;
|
|
34
|
+
format: string;
|
|
35
|
+
loading: boolean;
|
|
36
|
+
decimals: number;
|
|
37
|
+
formatter?: Function;
|
|
38
|
+
constructor(args: Partial<BigNumberInputState>);
|
|
39
|
+
get noDecimasValue(): BigNumber;
|
|
40
|
+
setValue(value: any): void;
|
|
41
|
+
setFormat(val: any): void;
|
|
42
|
+
setLoading(val: boolean): void;
|
|
43
|
+
setDecimals(val: number): void;
|
|
44
|
+
get isZero(): boolean;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
declare class StorageListState<T = any> {
|
|
48
|
+
key: string;
|
|
49
|
+
list: T[];
|
|
50
|
+
static safeParse(val: any): any;
|
|
51
|
+
constructor(args: {
|
|
52
|
+
key: string;
|
|
53
|
+
});
|
|
54
|
+
load(): any;
|
|
55
|
+
push(value: T): void;
|
|
56
|
+
remove(index: number): void;
|
|
57
|
+
private save;
|
|
58
|
+
clear(): void;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
declare class ObjectPool {
|
|
62
|
+
static pool: {
|
|
63
|
+
[key: string]: any;
|
|
64
|
+
};
|
|
65
|
+
static get<T extends (...args: any[]) => any, U = ReturnType<T>>(key: string, func: T): U;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
declare class AutoMan implements Store {
|
|
69
|
+
sid: string;
|
|
70
|
+
stype: string;
|
|
71
|
+
autoObservable?: boolean | undefined;
|
|
72
|
+
provider: (() => React.JSX.Element) & {
|
|
73
|
+
displayName: string;
|
|
74
|
+
};
|
|
75
|
+
static use<T extends {
|
|
76
|
+
[Key in keyof T]: Store;
|
|
77
|
+
}, U extends {
|
|
78
|
+
[Key in keyof T]: T[Key] extends Store ? {
|
|
79
|
+
[K in keyof T[Key]]?: any;
|
|
80
|
+
} : never;
|
|
81
|
+
}>(stores: T, promises?: U): T;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
declare const AppProvider: (({ children }: {
|
|
85
|
+
children?: React.ReactNode;
|
|
86
|
+
}) => React.JSX.Element) & {
|
|
87
|
+
displayName: string;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, EventMap, ObjectPool, RootStore, StorageListState, Store, rootStore, useStore };
|
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState } from './chunk-
|
|
2
|
-
export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
1
|
+
export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState } from './chunk-UMFAEQ5S.mjs';
|
|
2
|
+
export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-GPPSD2BO.mjs';
|
|
3
|
+
import './chunk-FLACAHWH.mjs';
|
|
4
|
+
import './chunk-NCGC2KDE.mjs';
|
|
5
|
+
import './chunk-TEVYTENF.mjs';
|
|
6
6
|
import './chunk-IMOLRP7I.mjs';
|
|
7
7
|
import './chunk-GKAU4P5I.mjs';
|
|
8
8
|
export { RootStore, rootStore, useStore } from './chunk-XSGTWROT.mjs';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-VDDGCMCB.mjs';
|
|
10
10
|
export { PaginationState } from './chunk-ONVPCAMQ.mjs';
|
|
11
11
|
import './chunk-K7LFG5BA.mjs';
|
|
12
|
-
import './chunk-
|
|
13
|
-
//# sourceMappingURL=
|
|
12
|
+
import './chunk-YOSPWY5K.mjs';
|
|
13
|
+
//# sourceMappingURL=index.mjs.map
|
|
14
14
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { S as Store } from './root-BPMUmS6H.mjs';
|
|
3
|
+
import 'typed-emitter';
|
|
4
|
+
|
|
5
|
+
declare class DevInspectorPlugin implements Store {
|
|
6
|
+
sid: string;
|
|
7
|
+
stype: string;
|
|
8
|
+
autoObservable: boolean;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
editor: 'vscode' | 'cursor';
|
|
11
|
+
constructor(args?: Partial<DevInspectorPlugin>);
|
|
12
|
+
provider: () => React.JSX.Element;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { DevInspectorPlugin };
|
package/dist/inspector.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './chunk-
|
|
1
|
+
import './chunk-YOSPWY5K.mjs';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { Inspector } from 'react-dev-inspector';
|
|
4
4
|
|
|
@@ -16,8 +16,7 @@ var DevInspectorPlugin = class {
|
|
|
16
16
|
keys: ["control", "shift", "command", "c"],
|
|
17
17
|
disableLaunchEditor: true,
|
|
18
18
|
onClickElement: ({ codeInfo }) => {
|
|
19
|
-
if (!(codeInfo == null ? void 0 : codeInfo.absolutePath))
|
|
20
|
-
return;
|
|
19
|
+
if (!(codeInfo == null ? void 0 : codeInfo.absolutePath)) return;
|
|
21
20
|
const { absolutePath, lineNumber, columnNumber } = codeInfo;
|
|
22
21
|
window.open(`${this.editor}://file/${absolutePath}:${lineNumber}:${columnNumber}`);
|
|
23
22
|
}
|
|
@@ -29,5 +28,5 @@ var DevInspectorPlugin = class {
|
|
|
29
28
|
};
|
|
30
29
|
|
|
31
30
|
export { DevInspectorPlugin };
|
|
32
|
-
//# sourceMappingURL=
|
|
31
|
+
//# sourceMappingURL=inspector.mjs.map
|
|
33
32
|
//# sourceMappingURL=inspector.mjs.map
|
package/dist/inspector.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../module/DevInspector/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../module/DevInspector/index.tsx"],"names":[],"mappings":";;;;AAIO,IAAM,qBAAN,MAA0C;AAAA,EAO/C,WAAA,CAAY,IAAA,GAAoC,EAAC,EAAG;AANpD,IAAA,IAAA,CAAA,GAAA,GAAM,oBAAA;AACN,IAAA,IAAA,CAAA,KAAA,GAAQ,QAAA;AACR,IAAA,IAAA,CAAA,cAAA,GAAiB,KAAA;AACjB,IAAA,IAAA,CAAA,QAAA,GAAW,KAAA;AACX,IAAA,IAAA,CAAA,MAAA,GAA8B,QAAA;AAM9B,IAAA,IAAA,CAAA,QAAA,GAAW,MAAM;AACf,MAAA,uBACE,KAAA,CAAA,aAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UAGC,IAAA,EAAM,CAAC,SAAA,EAAW,OAAA,EAAS,WAAW,GAAG,CAAA;AAAA,UACzC,mBAAA,EAAqB,IAAA;AAAA,UACrB,cAAA,EAAgB,CAAC,EAAE,QAAA,EAAS,KAAqB;AAC/C,YAAA,IAAI,EAAC,qCAAU,YAAA,CAAA,EAAc;AAC7B,YAAA,MAAM,EAAE,YAAA,EAAc,UAAA,EAAY,YAAA,EAAa,GAAI,QAAA;AAEnD,YAAA,MAAA,CAAO,IAAA,CAAK,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,QAAA,EAAW,YAAY,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,CAAA;AAAA,UACnF;AAAA;AAAA,OACF;AAAA,IAEJ,CAAA;AAlBE,IAAA,MAAA,CAAO,MAAA,CAAO,MAAM,IAAI,CAAA;AAAA,EAC1B;AAkBF","file":"inspector.mjs","sourcesContent":["import React from 'react';\nimport { Inspector, InspectParams } from 'react-dev-inspector';\nimport { Store } from '../../store/standard/base';\n\nexport class DevInspectorPlugin implements Store {\n sid = 'DevInspectorPlugin';\n stype = \"Plugin\"\n autoObservable = false;\n disabled = false;\n editor: 'vscode' | 'cursor' = 'vscode';\n\n constructor(args: Partial<DevInspectorPlugin> = {}) {\n Object.assign(this, args);\n }\n\n provider = () => {\n return (\n <Inspector\n // props see docs:\n // https://github.com/zthxxx/react-dev-inspector#inspector-component-props\n keys={['control', 'shift', 'command', 'c']}\n disableLaunchEditor={true}\n onClickElement={({ codeInfo }: InspectParams) => {\n if (!codeInfo?.absolutePath) return\n const { absolutePath, lineNumber, columnNumber } = codeInfo\n // you can change the url protocol if you are using in Web IDE\n window.open(`${this.editor}://file/${absolutePath}:${lineNumber}:${columnNumber}`)\n }}\n />\n );\n };\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
declare const COMPONENTS: {
|
|
4
|
+
Card: <T extends Record<string, any>>({ jsondata }: {
|
|
5
|
+
jsondata: JSONDataType<T>;
|
|
6
|
+
}) => React.JSX.Element;
|
|
7
|
+
CardList: <T_1 extends Record<string, any>>({ jsondata }: {
|
|
8
|
+
jsondata: JSONDataType<T_1>;
|
|
9
|
+
}) => React.JSX.Element;
|
|
10
|
+
Nav: <T_2 extends Record<string, any>>({ jsondata }: {
|
|
11
|
+
jsondata: JSONDataType<T_2>;
|
|
12
|
+
}) => React.JSX.Element;
|
|
13
|
+
};
|
|
14
|
+
type JSONDataType<T extends Record<string, any>> = Array<T> | T;
|
|
15
|
+
interface JSONComponentProps<T extends Record<string, any>> {
|
|
16
|
+
className?: string;
|
|
17
|
+
jsondata: JSONDataType<T>;
|
|
18
|
+
type?: keyof typeof COMPONENTS;
|
|
19
|
+
}
|
|
20
|
+
declare const JSONComponent: <T extends Record<string, any>>({ className, jsondata, type }: JSONComponentProps<T>) => React.JSX.Element;
|
|
21
|
+
|
|
22
|
+
export { JSONComponent, type JSONComponentProps, type JSONDataType };
|
package/dist/jsoncomponent.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './chunk-
|
|
1
|
+
import './chunk-YOSPWY5K.mjs';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
|
|
4
4
|
var CardWidget = ({ jsondata }) => {
|
|
@@ -38,5 +38,5 @@ var JSONComponent = ({ className, jsondata, type }) => {
|
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
export { JSONComponent };
|
|
41
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=jsoncomponent.mjs.map
|
|
42
42
|
//# sourceMappingURL=jsoncomponent.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/JSONComponent/
|
|
1
|
+
{"version":3,"sources":["../components/JSONComponent/Widgets/Card.tsx","../components/JSONComponent/Widgets/CardList.tsx","../components/JSONComponent/Widgets/Nav.tsx","../components/JSONComponent/index.tsx"],"names":["React"],"mappings":";;;AAGA,IAAM,UAAA,GAAa,CAAgC,EAAE,QAAA,EAAS,KAAqC;AACjG,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA;AACjC,EAAA,2CACG,KAAA,EAAA,EAAI,SAAA,EAAU,iEAAA,EAAA,EACZ,IAAA,CAAK,IAAI,CAAA,GAAA,KAAO;AACf,IAAA,uBACE,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EAAoC,uBACjD,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,IAAA,EACE,GACH,CAAA,kBACA,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,IAAA,EACE,QAAA,CAAS,GAAG,CACf,CACF,CAAA;AAAA,EAEJ,CAAC,CACH,CAAA;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ,UAAA;ACnBf,IAAM,cAAA,GAAiB,CAAgC,EAAE,QAAA,EAAS,KAAqC;AACrG,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC3B,IAAA,MAAM,SAAA,GAAY,SAAS,CAAC,CAAA;AAC5B,IAAA,IAAI,SAAA,IAAa,SAAA,CAAU,WAAA,KAAgB,MAAA,EAAQ;AACjD,MAAA,uBACEA,KAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eACZ,QAAA,CAAS,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAC7B,QAAA,uBACEA,KAAAA,CAAA,aAAA,CAAC,gBAAW,QAAA,EAAU,IAAA,EAAM,KAAK,KAAA,EAAO,CAAA;AAAA,MAE5C,CAAC,CACH,CAAA;AAAA,IAEJ;AAAA,EACF;AACA,EAAA,uBACEA,KAAAA,CAAA,aAAA,CAAC,YAAA,EAAA,EAAW,QAAA,EAAoB,CAAA;AAEpC,CAAA;AAEA,IAAO,gBAAA,GAAQ,cAAA;ACrBf,IAAM,SAAA,GAAY,CAAgC,EAAE,QAAA,EAAS,KAAqC;AAChG,EAAA,uBACEA,MAAA,aAAA,CAAC,KAAA,EAAA,IAAA,kBACCA,KAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,IAAA,EAAG,KAAG,CACT,CAAA;AAEJ,CAAA;AAEA,IAAO,WAAA,GAAQ,SAAA;;;ACNf,IAAM,UAAA,GAAa;AAAA,EACjB,IAAA,EAAA,YAAA;AAAA,EACA,QAAA,EAAA,gBAAA;AAAA,EACA,GAAA,EAAA;AACF,CAAA;AAUO,IAAM,gBAAgB,CAAgC,EAAE,SAAA,EAAW,QAAA,EAAU,MAAK,KAA6B;AACpH,EAAA,MAAM,QAAQ,IAAA,KAAS,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI,UAAA,GAAa,MAAA,CAAA;AAC9D,EAAA,MAAM,IAAA,GAAO,WAAW,KAAK,CAAA;AAC7B,EAAA,uBACEA,KAAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAA,kBACHA,KAAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAK,QAAA,EAAoB,CAC5B,CAAA;AAEJ","file":"jsoncomponent.mjs","sourcesContent":["import React from \"react\";\nimport { JSONDataType } from \"..\";\n\nconst CardWidget = <T extends Record<string, any>>({ jsondata }: { jsondata: JSONDataType<T> }) => {\n const keys = Object.keys(jsondata);\n return (\n <div className=\"p-2 shadow-sm rounded-lg border dark:border-[#3e3e3e] space-y-2\">\n {keys.map(key => {\n return (\n <div className=\"flex items-center justify-between\" key={key}>\n <div>\n {key}\n </div>\n <div>\n {jsondata[key]}\n </div>\n </div>\n )\n })}\n </div>\n );\n}\n\nexport default CardWidget;","import React from \"react\";\nimport { JSONDataType } from \"..\";\nimport CardWidget from \"./Card\";\n\nconst CardListWidget = <T extends Record<string, any>>({ jsondata }: { jsondata: JSONDataType<T> }) => {\n if (Array.isArray(jsondata)) {\n const firstData = jsondata[0];\n if (firstData && firstData.constructor === Object) {\n return (\n <div className=\"space-y-2\">\n {jsondata.map((item, index) => {\n return (\n <CardWidget jsondata={item} key={index} />\n )\n })}\n </div>\n )\n }\n }\n return (\n <CardWidget jsondata={jsondata} />\n );\n}\n\nexport default CardListWidget;","import React from \"react\";\nimport { JSONDataType } from \"..\";\n\nconst NavWidget = <T extends Record<string, any>>({ jsondata }: { jsondata: JSONDataType<T> }) => {\n return (\n <div>\n <h1>Nav</h1>\n </div>\n );\n}\n\nexport default NavWidget;","import React from \"react\";\nimport Card from \"./Widgets/Card\";\nimport CardList from \"./Widgets/CardList\";\nimport Nav from \"./Widgets/Nav\";\n\nconst COMPONENTS = {\n Card,\n CardList,\n Nav,\n};\n\nexport type JSONDataType<T extends Record<string, any>> = Array<T> | T;\n\nexport interface JSONComponentProps<T extends Record<string, any>> {\n className?: string;\n jsondata: JSONDataType<T>;\n type?: keyof typeof COMPONENTS;\n}\n\nexport const JSONComponent = <T extends Record<string, any>>({ className, jsondata, type }: JSONComponentProps<T>) => {\n const _type = type || (Array.isArray(jsondata) ? 'CardList' : 'Card');\n const Comp = COMPONENTS[_type];\n return (\n <div className={className}>\n <Comp jsondata={jsondata} />\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SpinnerProps, PaginationProps } from '@nextui-org/react';
|
|
3
|
+
import { P as PaginationState } from './PaginationState-Bmrrw0ky.mjs';
|
|
4
|
+
|
|
5
|
+
type TableClassNames = {
|
|
6
|
+
table?: string;
|
|
7
|
+
thead?: string;
|
|
8
|
+
tr?: string;
|
|
9
|
+
th?: string;
|
|
10
|
+
tbody?: string;
|
|
11
|
+
td?: string;
|
|
12
|
+
};
|
|
13
|
+
type HeaderKeys<T extends Record<string, any>> = Array<keyof T | "$actions">;
|
|
14
|
+
type ColumnConfig<T> = {
|
|
15
|
+
label?: React.ReactNode;
|
|
16
|
+
width?: number;
|
|
17
|
+
hidden?: boolean;
|
|
18
|
+
sortable?: boolean;
|
|
19
|
+
sortKey?: string;
|
|
20
|
+
order?: number;
|
|
21
|
+
render?: (item: T) => any;
|
|
22
|
+
};
|
|
23
|
+
type ColumnOptions<T> = {
|
|
24
|
+
[key in keyof T]?: ColumnConfig<T>;
|
|
25
|
+
} & {
|
|
26
|
+
$actions?: ColumnConfig<T>;
|
|
27
|
+
};
|
|
28
|
+
type CardOptions = {
|
|
29
|
+
cardContainerClassName?: string;
|
|
30
|
+
cardClassName?: string;
|
|
31
|
+
itemClassName?: string;
|
|
32
|
+
labelClassName?: string;
|
|
33
|
+
valueClassName?: string;
|
|
34
|
+
showDivider?: boolean;
|
|
35
|
+
dividerClassName?: string;
|
|
36
|
+
virtualizedOptions?: {
|
|
37
|
+
colSpan?: number;
|
|
38
|
+
cardContainerClassName?: string;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
type LoadingOptions = {
|
|
42
|
+
type?: "skeleton" | "spinner";
|
|
43
|
+
skeleton?: {
|
|
44
|
+
boxClassName?: string;
|
|
45
|
+
skeletonClassName?: string;
|
|
46
|
+
line?: number;
|
|
47
|
+
};
|
|
48
|
+
spinner?: {
|
|
49
|
+
boxClassName?: string;
|
|
50
|
+
spinnerProps?: SpinnerProps;
|
|
51
|
+
text?: string;
|
|
52
|
+
textClassName?: string;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
type SortingUIOptions = {
|
|
56
|
+
showDropdown?: boolean;
|
|
57
|
+
dropdownTriggerBtnClassName?: string;
|
|
58
|
+
dropdownContentClassName?: string;
|
|
59
|
+
dropdownItemClassName?: string;
|
|
60
|
+
titles?: {
|
|
61
|
+
asc?: string;
|
|
62
|
+
desc?: string;
|
|
63
|
+
none?: string;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
type CollapsedTableConfig<T> = {
|
|
67
|
+
classNames?: TableClassNames;
|
|
68
|
+
options: {
|
|
69
|
+
key: keyof T;
|
|
70
|
+
headerKeys: string[];
|
|
71
|
+
columnOptions: ColumnOptions<any>;
|
|
72
|
+
}[];
|
|
73
|
+
collapsedHandlerPosition?: "left" | "right";
|
|
74
|
+
collapsedHandlerBoxCss?: string;
|
|
75
|
+
openedIcon?: React.ReactNode;
|
|
76
|
+
closedIcon?: React.ReactNode;
|
|
77
|
+
onRowClick?: (item: any) => void;
|
|
78
|
+
rowCss?: string | ((item: any) => string | undefined);
|
|
79
|
+
emptyContent?: React.ReactNode;
|
|
80
|
+
};
|
|
81
|
+
type VirtualizedOptions = {
|
|
82
|
+
isVirtualized?: boolean;
|
|
83
|
+
vListHeight?: number;
|
|
84
|
+
classNames?: {
|
|
85
|
+
header?: string;
|
|
86
|
+
headerCell?: string;
|
|
87
|
+
row?: string;
|
|
88
|
+
rowCell?: string;
|
|
89
|
+
};
|
|
90
|
+
cardOptions?: {
|
|
91
|
+
colSpan?: number;
|
|
92
|
+
cardContainerClassName?: string;
|
|
93
|
+
};
|
|
94
|
+
fetchData?: () => Promise<void>;
|
|
95
|
+
};
|
|
96
|
+
interface JSONTableProps<T extends Record<string, any>> {
|
|
97
|
+
className?: string;
|
|
98
|
+
classNames?: TableClassNames;
|
|
99
|
+
rowKey?: string;
|
|
100
|
+
dataSource: T[];
|
|
101
|
+
headerKeys?: HeaderKeys<T>;
|
|
102
|
+
columnOptions?: ColumnOptions<T>;
|
|
103
|
+
isServerPaging?: boolean;
|
|
104
|
+
pagination?: PaginationState;
|
|
105
|
+
nextuiPaginationProps?: Partial<PaginationProps>;
|
|
106
|
+
showPagination?: boolean;
|
|
107
|
+
onRowClick?: (item: T) => void;
|
|
108
|
+
rowCss?: string | ((item: T) => string | undefined);
|
|
109
|
+
asCard?: boolean;
|
|
110
|
+
cardOptions?: CardOptions;
|
|
111
|
+
autoScrollToTop?: boolean;
|
|
112
|
+
emptyContent?: React.ReactNode;
|
|
113
|
+
isLoading?: boolean;
|
|
114
|
+
loadingOptions?: LoadingOptions;
|
|
115
|
+
loadingContent?: React.ReactNode;
|
|
116
|
+
columnSlot?: ((props: {
|
|
117
|
+
row: T;
|
|
118
|
+
}) => React.ReactNode) | React.ReactNode;
|
|
119
|
+
isHeaderSticky?: boolean;
|
|
120
|
+
sortingUIOptions?: SortingUIOptions;
|
|
121
|
+
collapsedTableConfig?: CollapsedTableConfig<T>;
|
|
122
|
+
virtualizedOptions?: VirtualizedOptions;
|
|
123
|
+
}
|
|
124
|
+
declare const JSONTable: <T extends Record<string, any>>(props: JSONTableProps<T>) => React.JSX.Element;
|
|
125
|
+
|
|
126
|
+
export { type CardOptions, type CollapsedTableConfig, type ColumnOptions, type HeaderKeys, JSONTable, type LoadingOptions, type SortingUIOptions };
|
package/dist/jsontable.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { JSONTable } from './chunk-
|
|
1
|
+
export { JSONTable } from './chunk-2B3FO5P6.mjs';
|
|
2
2
|
import './chunk-ONVPCAMQ.mjs';
|
|
3
|
-
import './chunk-
|
|
3
|
+
import './chunk-AFXQRBS6.mjs';
|
|
4
4
|
import './chunk-K7LFG5BA.mjs';
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
//# sourceMappingURL=
|
|
5
|
+
import './chunk-6HA5WR5H.mjs';
|
|
6
|
+
import './chunk-YOSPWY5K.mjs';
|
|
7
|
+
//# sourceMappingURL=jsontable.mjs.map
|
|
8
8
|
//# sourceMappingURL=jsontable.mjs.map
|
package/dist/jsontable.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"jsontable.mjs"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ValueFormatter, CurveType, Color, CustomTooltipProps } from '@tremor/react';
|
|
3
|
+
|
|
4
|
+
interface ChartBox {
|
|
5
|
+
title?: React.ReactNode;
|
|
6
|
+
description?: string;
|
|
7
|
+
error?: string;
|
|
8
|
+
data?: {
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}[];
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
gridH?: number;
|
|
13
|
+
numColSpanMd?: number;
|
|
14
|
+
className?: string;
|
|
15
|
+
headerClassName?: string;
|
|
16
|
+
contentClassName?: string;
|
|
17
|
+
chartClassName?: string;
|
|
18
|
+
}
|
|
19
|
+
declare const ChartBox: ({ title, description, error, children, className, headerClassName, contentClassName }: ChartBox) => React.JSX.Element;
|
|
20
|
+
|
|
21
|
+
type BarChartCard = ChartBox & {
|
|
22
|
+
type?: 'BarChartCard';
|
|
23
|
+
categories?: string[];
|
|
24
|
+
index?: string;
|
|
25
|
+
valueFormatter?: ValueFormatter;
|
|
26
|
+
showLegend?: boolean;
|
|
27
|
+
showGridLines?: boolean;
|
|
28
|
+
stack?: boolean;
|
|
29
|
+
showAnimation?: boolean;
|
|
30
|
+
};
|
|
31
|
+
declare const BarChartCard: (props: BarChartCard) => React.JSX.Element;
|
|
32
|
+
|
|
33
|
+
type LineChartCard = ChartBox & {
|
|
34
|
+
type?: 'LineChartCard';
|
|
35
|
+
categories?: string[];
|
|
36
|
+
index?: string;
|
|
37
|
+
curveType?: CurveType;
|
|
38
|
+
colors?: (Color | string)[];
|
|
39
|
+
showLegend?: boolean;
|
|
40
|
+
showGridLines?: boolean;
|
|
41
|
+
showXAxis?: boolean;
|
|
42
|
+
showYAxis?: boolean;
|
|
43
|
+
startEndOnly?: boolean;
|
|
44
|
+
showTooltip?: boolean;
|
|
45
|
+
showAnimation?: boolean;
|
|
46
|
+
autoMinValue?: boolean;
|
|
47
|
+
valueFormatter?: ValueFormatter;
|
|
48
|
+
customTooltip?: React.ComponentType<CustomTooltipProps>;
|
|
49
|
+
};
|
|
50
|
+
declare const LineChartCard: (props: LineChartCard) => React.JSX.Element;
|
|
51
|
+
|
|
52
|
+
type AreaChartCard = ChartBox & {
|
|
53
|
+
type?: 'AreaChartCard';
|
|
54
|
+
categories?: string[];
|
|
55
|
+
index?: string;
|
|
56
|
+
curveType?: CurveType;
|
|
57
|
+
colors?: (Color | string)[];
|
|
58
|
+
showLegend?: boolean;
|
|
59
|
+
showGridLines?: boolean;
|
|
60
|
+
stack?: boolean;
|
|
61
|
+
showXAxis?: boolean;
|
|
62
|
+
showYAxis?: boolean;
|
|
63
|
+
startEndOnly?: boolean;
|
|
64
|
+
showTooltip?: boolean;
|
|
65
|
+
showAnimation?: boolean;
|
|
66
|
+
autoMinValue?: boolean;
|
|
67
|
+
valueFormatter?: ValueFormatter;
|
|
68
|
+
customTooltip?: React.ComponentType<CustomTooltipProps>;
|
|
69
|
+
};
|
|
70
|
+
declare const AreaChartCard: (props: AreaChartCard) => React.JSX.Element;
|
|
71
|
+
|
|
72
|
+
type DonutChartCard = ChartBox & {
|
|
73
|
+
type?: 'DonutChartCard';
|
|
74
|
+
categories?: string[];
|
|
75
|
+
index?: string;
|
|
76
|
+
valueFormatter?: ValueFormatter;
|
|
77
|
+
showLabel?: boolean;
|
|
78
|
+
variant?: 'donut' | 'pie';
|
|
79
|
+
showAnimation?: boolean;
|
|
80
|
+
};
|
|
81
|
+
declare const DonutChartCard: (props: DonutChartCard) => React.JSX.Element;
|
|
82
|
+
|
|
83
|
+
type CountCard = ChartBox & {
|
|
84
|
+
type?: 'CountCard';
|
|
85
|
+
summedColumnIndex?: string;
|
|
86
|
+
};
|
|
87
|
+
declare const CountCard: (props: CountCard) => React.JSX.Element;
|
|
88
|
+
|
|
89
|
+
type TableCard = ChartBox & {
|
|
90
|
+
type?: 'TableCard';
|
|
91
|
+
columnOptions?: {
|
|
92
|
+
[key: string]: {
|
|
93
|
+
label: string;
|
|
94
|
+
hidden: boolean;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
declare const TableCard: (props: TableCard) => React.JSX.Element;
|
|
99
|
+
|
|
100
|
+
type KPICard = ChartBox & {
|
|
101
|
+
type?: 'KPICard';
|
|
102
|
+
categories?: string[];
|
|
103
|
+
index?: string;
|
|
104
|
+
chartType?: 'area' | 'line';
|
|
105
|
+
curveType?: 'linear' | 'step' | 'monotone';
|
|
106
|
+
metricTitle?: string;
|
|
107
|
+
metric?: string | number;
|
|
108
|
+
valueFormatter?: ValueFormatter;
|
|
109
|
+
loading?: boolean;
|
|
110
|
+
};
|
|
111
|
+
declare const KPICard: (props: KPICard) => React.JSX.Element;
|
|
112
|
+
|
|
113
|
+
type JSONMetricsViewType = AreaChartCard | LineChartCard | BarChartCard | DonutChartCard | CountCard | TableCard | KPICard;
|
|
114
|
+
declare const JSONMetricsView: ({ data }: {
|
|
115
|
+
data: JSONMetricsViewType[];
|
|
116
|
+
}) => React.JSX.Element;
|
|
117
|
+
declare const MetricsView: ({ data }: {
|
|
118
|
+
data: JSONMetricsViewType;
|
|
119
|
+
}) => React.JSX.Element;
|
|
120
|
+
|
|
121
|
+
export { JSONMetricsView, type JSONMetricsViewType, MetricsView };
|
package/dist/metrics.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { JSONTable } from './chunk-
|
|
1
|
+
import { JSONTable } from './chunk-2B3FO5P6.mjs';
|
|
2
2
|
import './chunk-ONVPCAMQ.mjs';
|
|
3
|
-
import { SkeletonBox } from './chunk-
|
|
3
|
+
import { SkeletonBox } from './chunk-AFXQRBS6.mjs';
|
|
4
4
|
import './chunk-K7LFG5BA.mjs';
|
|
5
|
-
import { cn } from './chunk-
|
|
6
|
-
import { __spreadValues } from './chunk-
|
|
5
|
+
import { cn } from './chunk-6HA5WR5H.mjs';
|
|
6
|
+
import { __spreadValues } from './chunk-YOSPWY5K.mjs';
|
|
7
7
|
import React8 from 'react';
|
|
8
|
-
import { Grid, Col,
|
|
8
|
+
import { Grid, Col, Text, AreaChart, LineChart, DonutChart, BarChart } from '@tremor/react';
|
|
9
9
|
import { Card } from '@nextui-org/react';
|
|
10
10
|
|
|
11
11
|
var ChartBox = ({ title, description, error, children, className, headerClassName, contentClassName }) => {
|
|
@@ -216,5 +216,5 @@ var MetricsView = ({ data }) => {
|
|
|
216
216
|
};
|
|
217
217
|
|
|
218
218
|
export { JSONMetricsView, MetricsView };
|
|
219
|
-
//# sourceMappingURL=
|
|
219
|
+
//# sourceMappingURL=metrics.mjs.map
|
|
220
220
|
//# sourceMappingURL=metrics.mjs.map
|
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\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('shadow-sm rounded-lg border dark:border-[#3e3e3e]', 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 { Color, CurveType, CustomTooltipProps, 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?: CurveType;\n colors?: (Color | string)[];\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 customTooltip?: React.ComponentType<CustomTooltipProps>;\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 customTooltip\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 customTooltip={customTooltip}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, Color, CurveType, CustomTooltipProps, 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?: CurveType;\n colors?: (Color | string)[];\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?: React.ComponentType<CustomTooltipProps>\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"]}
|
|
1
|
+
{"version":3,"sources":["../components/JSONMetricsView/ChartBox/index.tsx","../components/JSONMetricsView/BarChartCard/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/JSONMetricsView/index.tsx"],"names":["React","AreaChart","LineChart"],"mappings":"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","file":"metrics.mjs","sourcesContent":["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('shadow-sm rounded-lg border dark:border-[#3e3e3e]', 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 { 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 { Color, CurveType, CustomTooltipProps, 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?: CurveType;\n colors?: (Color | string)[];\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 customTooltip?: React.ComponentType<CustomTooltipProps>;\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 customTooltip\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 customTooltip={customTooltip}\n />\n </ChartBox>\n );\n};\n","import React from 'react';\nimport { AreaChart, Color, CurveType, CustomTooltipProps, 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?: CurveType;\n colors?: (Color | string)[];\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?: React.ComponentType<CustomTooltipProps>\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","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"]}
|