@dappworks/kit 0.4.144 → 0.4.145

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.
Files changed (50) hide show
  1. package/dist/{PromiseState-yojg0WLR.d.ts → PromiseState-b0cc408e.d.ts} +3 -3
  2. package/dist/aiem.d.mts +3 -6
  3. package/dist/aiem.mjs +44 -31
  4. package/dist/aiem.mjs.map +1 -1
  5. package/dist/{chunk-R4SQKVDQ.mjs → chunk-6F7H4PAA.mjs} +1 -1
  6. package/dist/{chunk-SVPD6PC6.mjs → chunk-7FF4BCFW.mjs} +4 -4
  7. package/dist/{chunk-XJMRAPHI.mjs → chunk-IDKGZ5T4.mjs} +12 -8
  8. package/dist/chunk-IDKGZ5T4.mjs.map +1 -0
  9. package/dist/{chunk-QWHU3HBK.mjs → chunk-RHDHN6R4.mjs} +2 -2
  10. package/dist/chunk-WMJB4EAN.mjs +47 -0
  11. package/dist/chunk-WMJB4EAN.mjs.map +1 -0
  12. package/dist/{chunk-HRYH37UI.mjs → chunk-WT2ARRCR.mjs} +2 -2
  13. package/dist/{chunk-AIZ7XDNV.mjs → chunk-WYGQ3Y4R.mjs} +14 -14
  14. package/dist/chunk-WYGQ3Y4R.mjs.map +1 -0
  15. package/dist/dev.d.mts +1 -1
  16. package/dist/dev.mjs +2 -2
  17. package/dist/experimental.d.mts +16 -2
  18. package/dist/experimental.mjs +27 -4
  19. package/dist/experimental.mjs.map +1 -1
  20. package/dist/form.d.mts +14 -69
  21. package/dist/form.mjs +13 -61
  22. package/dist/form.mjs.map +1 -1
  23. package/dist/index-0cd59ae0.d.ts +57 -0
  24. package/dist/{index-CUKoRIdy.d.ts → index-38be834f.d.ts} +1 -1
  25. package/dist/index.d.mts +4 -4
  26. package/dist/index.mjs +4 -5
  27. package/dist/index.mjs.map +1 -1
  28. package/dist/inspector.d.mts +1 -1
  29. package/dist/inspector.mjs +1 -1
  30. package/dist/jsontable.d.mts +2 -2
  31. package/dist/jsontable.mjs +4 -4
  32. package/dist/metrics.d.mts +1 -1
  33. package/dist/metrics.mjs +4 -4
  34. package/dist/plugins.d.mts +33 -7
  35. package/dist/plugins.mjs +162 -34
  36. package/dist/plugins.mjs.map +1 -1
  37. package/dist/{root-C3lZnoCI.d.ts → root-766ae985.d.ts} +1 -1
  38. package/dist/ui.mjs +3 -3
  39. package/dist/utils.d.mts +3 -8
  40. package/dist/utils.mjs +1 -1
  41. package/package.json +4 -4
  42. package/dist/chunk-AIZ7XDNV.mjs.map +0 -1
  43. package/dist/chunk-WS43BV7Y.mjs +0 -9
  44. package/dist/chunk-WS43BV7Y.mjs.map +0 -1
  45. package/dist/chunk-XJMRAPHI.mjs.map +0 -1
  46. /package/dist/{PaginationState-Bmrrw0ky.d.ts → PaginationState-c19e621a.d.ts} +0 -0
  47. /package/dist/{chunk-R4SQKVDQ.mjs.map → chunk-6F7H4PAA.mjs.map} +0 -0
  48. /package/dist/{chunk-SVPD6PC6.mjs.map → chunk-7FF4BCFW.mjs.map} +0 -0
  49. /package/dist/{chunk-QWHU3HBK.mjs.map → chunk-RHDHN6R4.mjs.map} +0 -0
  50. /package/dist/{chunk-HRYH37UI.mjs.map → chunk-WT2ARRCR.mjs.map} +0 -0
@@ -0,0 +1,57 @@
1
+ import React, { HTMLAttributeAnchorTarget } from 'react';
2
+ import { S as Store, R as RootStore } from './root-766ae985.js';
3
+
4
+ type JSONViewType = {
5
+ className?: string;
6
+ children?: any;
7
+ data?: Record<string, JSONDataType>;
8
+ datas?: Record<string, Record<string, JSONDataType> | JSONDataType[]>;
9
+ uiConfig?: {
10
+ type: string;
11
+ className?: Record<string, string>;
12
+ slots?: Record<string, any>;
13
+ [key: string]: any;
14
+ };
15
+ uiConfigs?: Record<string, JSONViewType['uiConfig']>;
16
+ };
17
+ type JSONDataType = {
18
+ title?: string;
19
+ icon?: any;
20
+ render?: any;
21
+ className?: string;
22
+ type?: 'divider' | 'checkbox' | 'label' | 'radio';
23
+ shortcut?: string;
24
+ disabled?: boolean;
25
+ children?: Record<string, JSONDataType>;
26
+ value?: any;
27
+ link?: any;
28
+ target?: HTMLAttributeAnchorTarget;
29
+ needAuth?: boolean;
30
+ events?: Record<string, any>;
31
+ onChange?: (args: {
32
+ e: any;
33
+ v: any;
34
+ }) => void;
35
+ onClick?: (args: {
36
+ e: any;
37
+ v: any;
38
+ }) => void;
39
+ };
40
+ declare class JSONViewPlugin implements Store {
41
+ sid: string;
42
+ autoObservable?: boolean;
43
+ JSONView: {
44
+ Test: {
45
+ name: string;
46
+ render: () => React.JSX.Element;
47
+ };
48
+ };
49
+ onNewStore({ rootStore, store }: {
50
+ rootStore: RootStore<any>;
51
+ store: Store;
52
+ }): void;
53
+ crawl(store: Store): void;
54
+ static JSONView: (props: JSONViewType) => React.JSX.Element;
55
+ }
56
+
57
+ export { JSONDataType as J, JSONViewPlugin as a, JSONViewType as b };
@@ -1,3 +1,3 @@
1
1
  type ThemeType = "default" | "primary";
2
2
 
3
- export type { ThemeType as T };
3
+ export { ThemeType as T };
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
- import { R as RootStore, E as EventMap } from './root-C3lZnoCI.js';
2
- export { B as BaseState, c as BooleanState, N as NumberState, S as Store, a as StoreClass, b as StringState, V as ValueState } from './root-C3lZnoCI.js';
3
- export { P as PromiseState } from './PromiseState-yojg0WLR.js';
1
+ import { R as RootStore, E as EventMap } from './root-766ae985.js';
2
+ export { B as BaseState, c as BooleanState, N as NumberState, S as Store, a as StoreClass, b as StringState, V as ValueState } from './root-766ae985.js';
3
+ export { P as PromiseState } from './PromiseState-b0cc408e.js';
4
4
  import * as mobx from 'mobx';
5
5
  import BigNumber from 'bignumber.js';
6
- export { P as PaginationState } from './PaginationState-Bmrrw0ky.js';
6
+ export { P as PaginationState } from './PaginationState-c19e621a.js';
7
7
  import React from 'react';
8
8
  import 'typed-emitter';
9
9
  import 'events';
package/dist/index.mjs CHANGED
@@ -1,12 +1,11 @@
1
- export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-QWHU3HBK.mjs';
1
+ export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-RHDHN6R4.mjs';
2
2
  import './chunk-4YCP5CJ4.mjs';
3
- export { rootStore, useStore } from './chunk-WS43BV7Y.mjs';
4
- import { RootStore } from './chunk-XJMRAPHI.mjs';
5
- export { RootStore } from './chunk-XJMRAPHI.mjs';
3
+ import { RootStore } from './chunk-IDKGZ5T4.mjs';
4
+ export { RootStore, rootStore, useStore } from './chunk-IDKGZ5T4.mjs';
6
5
  import { helper } from './chunk-Q3AD5RHQ.mjs';
7
6
  export { PaginationState } from './chunk-ONVPCAMQ.mjs';
8
7
  import './chunk-MGU3KYGC.mjs';
9
- import './chunk-R4SQKVDQ.mjs';
8
+ import './chunk-6F7H4PAA.mjs';
10
9
  import { observable, makeAutoObservable } from 'mobx';
11
10
  import BigNumber2 from 'bignumber.js';
12
11
  import React from 'react';
@@ -1 +1 @@
1
- {"version":3,"sources":["../store/standard/PromiseHook.ts","../store/standard/BigNumberState.ts","../store/standard/BigNumberInputState.ts","../store/standard/StorageState.ts","../store/standard/ObjectPool.ts","../module/AppProvider.tsx"],"names":["BigNumber","makeAutoObservable","rootStore"],"mappings":"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","sourcesContent":["\n\nimport { observable } from 'mobx';\n\nexport class KV {\n //@ts-ignore\n static datas = observable();\n}\n\nexport abstract class ContractBase {\n // chainId?: number;\n // address?: string;\n\n}\n\nexport type ContractClass<T extends ContractBase> = new (args: Partial<T>) => T\n\nexport type PromiseHookData<T, U> = { value: Awaited<U>; get: T; call: T; func: T, loading: boolean, errorRetry: number };\n\nexport class PromiseHook {\n static entities = observable([]);\n static Get<T extends ContractBase>(cls: ContractClass<T>): (args: { args: Partial<T>; id?: string, select?: { [key in keyof Partial<T>]: boolean }, unselect?: { [key in keyof Partial<T>]: boolean } }) => Promise<T & { refresh: () => Promise<void> }> {\n try {\n return async ({ args, select, id, unselect }) => {\n let instance: any\n //@ts-ignore\n if (!id || !this.entities[id]) {\n instance = new cls(args);\n\n instance.refresh = async () => {\n const hooks = Object.entries(instance)\n .filter((i) => {\n if (!this.isPromiseHook(instance[i[0]])) return false\n //@ts-ignore\n if (i[1].lazy) return false\n if (select && !select[i[0]]) return false\n if (unselect && unselect[i[0]]) return false\n return true\n }).map(i => {\n const hook = instance[i[0]]\n return hook\n })\n\n await Promise.all(hooks.map((i) => i.call()));\n }\n if (id) {\n //@ts-ignore\n this.entities[id] = instance\n }\n } else {\n instance = this.entities[id!]\n }\n\n\n await instance.refresh()\n return instance;\n };\n } catch (e) {\n throw e\n }\n }\n\n\n static isPromiseHook(target) {\n return target?._type == \"promiseHook\"\n }\n\n\n //ttl : ms\n static wrap<T extends (...args: any[]) => Promise<any>, U = ReturnType<T>>({ func, defaultValue, lazy }: { func: T; defaultValue?: Awaited<U>; lazy?: boolean }): PromiseHookData<T, U> {\n let context;\n const call = (args) => {\n context.loading = true;\n if (!context._call) {\n context._call = func(args)\n .then((i) => {\n context.value = i;\n context.loading = false;\n context._call = null\n return i\n })\n .catch((i) => {\n console.error(i, func);\n context.value = defaultValue\n context._call = null\n context.loading = false;\n throw i;\n });\n }\n\n\n return context._call\n };\n const get = async (args: any) => {\n if (!context.value) {\n\n return call(args);\n }\n return context.value;\n };\n\n if (!context) {\n context = observable({\n _type: 'promiseHook',\n _value: defaultValue,\n get value() {\n return context['_value'];\n },\n set value(val) {\n context['_value'] = val;\n },\n get,\n lazy,\n\n loading: false,\n call,\n defaultValue,\n toJSON() {\n return context.value\n },\n toString() {\n return context.value\n },\n });\n }\n\n return context;\n }\n\n}\n","import BigNumber from \"bignumber.js\";\nimport { makeAutoObservable } from \"mobx\";\nimport { helper } from \"../../lib/helper\";\n\nexport class BigNumberState {\n value = new BigNumber(0);\n loading = false;\n decimals = 18;\n fixed = 6;\n formatter?: Function;\n constructor(args: Partial<BigNumberState>) {\n Object.assign(this, args);\n makeAutoObservable(this, {\n getFormat: false,\n });\n }\n get format() {\n if (this.loading) return \"...\";\n return this.getFormat();\n }\n\n getFormat({ decimals = this.decimals, fixed = this.fixed }: { decimals?: number; fixed?: number } = {}) {\n if (this.loading) return \"...\";\n if (this.formatter) return this.formatter(this);\n return helper.number.toPrecisionFloor(new BigNumber(this.value).dividedBy(10 ** decimals).toFixed(), {\n decimals: fixed,\n });\n }\n\n setDecimals(decimals: number) {\n this.decimals = decimals;\n }\n\n setValue(value: BigNumber) {\n this.value = value;\n this.setLoading(false);\n }\n\n setLoading(val) {\n this.loading = val;\n }\n}\n","import BigNumber from 'bignumber.js';\nimport { makeAutoObservable } from 'mobx';\nimport { helper } from '../../lib/helper';\nexport class BigNumberInputState {\n value = new BigNumber(0);\n format = '';\n loading = false;\n decimals = 18;\n formatter?: Function;\n constructor(args: Partial<BigNumberInputState>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n }\n get noDecimasValue(): BigNumber {\n return new BigNumber(this.value).dividedBy(10 ** this.decimals);\n }\n setValue(value: any) {\n this.value = new BigNumber(value);\n // this.format = helper.number.toPrecisionFloor(new BigNumber(this.value).dividedBy(10 ** this.decimals).toFixed());\n this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: '0.000', fallback: '' }).format;\n this.setLoading(false);\n }\n setFormat(val: any) {\n this.format = val;\n // this.format = helper.number.toPrecisionFloor(this.format);\n // this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: '0.000', fallback: '' }).format;\n this.value = new BigNumber(val).multipliedBy(10 ** this.decimals);\n }\n setLoading(val: boolean) {\n this.loading = val;\n }\n setDecimals(val: number) {\n this.decimals = val;\n }\n get isZero(): boolean {\n return this.value.isZero() && this.format == '';\n }\n}\n","import { makeAutoObservable } from 'mobx';\n\nexport class StorageState<T> {\n key: string;\n value: T | any = null;\n default: T | any = null;\n constructor(args: Partial<StorageState<T>>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n this.load();\n }\n\n static safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n }\n\n load() {\n try {\n const value = window?.localStorage?.getItem(this.key);\n this.value = StorageState.safeParse(value);\n if (this.value == null) {\n this.value = this.default;\n }\n return this.value;\n } catch (error) {\n console.error(error)\n return null\n }\n }\n\n save(value?: T) {\n try {\n if (value !== null || value !== undefined) {\n this.value = value;\n }\n window?.localStorage.setItem(this.key, JSON.stringify(value));\n } catch (error) {\n console.error(error)\n return null\n }\n }\n\n setValue(value?: T) {\n this.save(value);\n }\n\n clear() {\n try {\n localStorage.removeItem(this.key);\n } catch (error) {\n return null\n }\n }\n}\n","export class ObjectPool {\n static pool: { [key: string]: any } = {};\n\n static get<T extends (...args: any[]) => any, U = ReturnType<T>>(key: string, func: T): U {\n if (!ObjectPool.pool[key]) {\n ObjectPool.pool[key] = func();\n }\n return ObjectPool.pool[key];\n }\n}","import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { RootStore } from \"../store/root\";\n\nexport const AppProvider = observer(({ children }: { children?: React.ReactNode }) => {\n const rootStore = RootStore.init()\n return (\n <>\n {rootStore.providers.map((store) => {\n const Component: any = store.provider;\n return <Component rootStore={rootStore} key={store.sid} />;\n })}\n {children && children}\n </>\n )\n})"]}
1
+ {"version":3,"sources":["../store/standard/PromiseHook.ts","../store/standard/BigNumberState.ts","../store/standard/BigNumberInputState.ts","../store/standard/StorageState.ts","../store/standard/ObjectPool.ts","../module/AppProvider.tsx"],"names":["BigNumber","makeAutoObservable","rootStore"],"mappings":"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","sourcesContent":["\n\nimport { observable } from 'mobx';\n\nexport class KV {\n //@ts-ignore\n static datas = observable();\n}\n\nexport abstract class ContractBase {\n // chainId?: number;\n // address?: string;\n\n}\n\nexport type ContractClass<T extends ContractBase> = new (args: Partial<T>) => T\n\nexport type PromiseHookData<T, U> = { value: Awaited<U>; get: T; call: T; func: T, loading: boolean, errorRetry: number };\n\nexport class PromiseHook {\n static entities = observable([]);\n static Get<T extends ContractBase>(cls: ContractClass<T>): (args: { args: Partial<T>; id?: string, select?: { [key in keyof Partial<T>]: boolean }, unselect?: { [key in keyof Partial<T>]: boolean } }) => Promise<T & { refresh: () => Promise<void> }> {\n try {\n return async ({ args, select, id, unselect }) => {\n let instance: any\n //@ts-ignore\n if (!id || !this.entities[id]) {\n instance = new cls(args);\n\n instance.refresh = async () => {\n const hooks = Object.entries(instance)\n .filter((i) => {\n if (!this.isPromiseHook(instance[i[0]])) return false\n //@ts-ignore\n if (i[1].lazy) return false\n if (select && !select[i[0]]) return false\n if (unselect && unselect[i[0]]) return false\n return true\n }).map(i => {\n const hook = instance[i[0]]\n return hook\n })\n\n await Promise.all(hooks.map((i) => i.call()));\n }\n if (id) {\n //@ts-ignore\n this.entities[id] = instance\n }\n } else {\n instance = this.entities[id!]\n }\n\n\n await instance.refresh()\n return instance;\n };\n } catch (e) {\n throw e\n }\n }\n\n\n static isPromiseHook(target) {\n return target?._type == \"promiseHook\"\n }\n\n\n //ttl : ms\n static wrap<T extends (...args: any[]) => Promise<any>, U = ReturnType<T>>({ func, defaultValue, lazy }: { func: T; defaultValue?: Awaited<U>; lazy?: boolean }): PromiseHookData<T, U> {\n let context;\n const call = (args) => {\n context.loading = true;\n if (!context._call) {\n context._call = func(args)\n .then((i) => {\n context.value = i;\n context.loading = false;\n context._call = null\n return i\n })\n .catch((i) => {\n console.error(i, func);\n context.value = defaultValue\n context._call = null\n context.loading = false;\n throw i;\n });\n }\n\n\n return context._call\n };\n const get = async (args: any) => {\n if (!context.value) {\n\n return call(args);\n }\n return context.value;\n };\n\n if (!context) {\n context = observable({\n _type: 'promiseHook',\n _value: defaultValue,\n get value() {\n return context['_value'];\n },\n set value(val) {\n context['_value'] = val;\n },\n get,\n lazy,\n\n loading: false,\n call,\n defaultValue,\n toJSON() {\n return context.value\n },\n toString() {\n return context.value\n },\n });\n }\n\n return context;\n }\n\n}\n","import BigNumber from \"bignumber.js\";\nimport { makeAutoObservable } from \"mobx\";\nimport { helper } from \"../../lib/helper\";\n\nexport class BigNumberState {\n value = new BigNumber(0);\n loading = false;\n decimals = 18;\n fixed = 6;\n formatter?: Function;\n constructor(args: Partial<BigNumberState>) {\n Object.assign(this, args);\n makeAutoObservable(this, {\n getFormat: false,\n });\n }\n get format() {\n if (this.loading) return \"...\";\n return this.getFormat();\n }\n\n getFormat({ decimals = this.decimals, fixed = this.fixed }: { decimals?: number; fixed?: number } = {}) {\n if (this.loading) return \"...\";\n if (this.formatter) return this.formatter(this);\n return helper.number.toPrecisionFloor(new BigNumber(this.value).dividedBy(10 ** decimals).toFixed(), {\n decimals: fixed,\n });\n }\n\n setDecimals(decimals: number) {\n this.decimals = decimals;\n }\n\n setValue(value: BigNumber) {\n this.value = value;\n this.setLoading(false);\n }\n\n setLoading(val) {\n this.loading = val;\n }\n}\n","import BigNumber from 'bignumber.js';\nimport { makeAutoObservable } from 'mobx';\nimport { helper } from '../../lib/helper';\nexport class BigNumberInputState {\n value = new BigNumber(0);\n format = '';\n loading = false;\n decimals = 18;\n formatter?: Function;\n constructor(args: Partial<BigNumberInputState>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n }\n get noDecimasValue(): BigNumber {\n return new BigNumber(this.value).dividedBy(10 ** this.decimals);\n }\n setValue(value: any) {\n this.value = new BigNumber(value);\n // this.format = helper.number.toPrecisionFloor(new BigNumber(this.value).dividedBy(10 ** this.decimals).toFixed());\n this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: '0.000', fallback: '' }).format;\n this.setLoading(false);\n }\n setFormat(val: any) {\n this.format = val;\n // this.format = helper.number.toPrecisionFloor(this.format);\n // this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: '0.000', fallback: '' }).format;\n this.value = new BigNumber(val).multipliedBy(10 ** this.decimals);\n }\n setLoading(val: boolean) {\n this.loading = val;\n }\n setDecimals(val: number) {\n this.decimals = val;\n }\n get isZero(): boolean {\n return this.value.isZero() && this.format == '';\n }\n}\n","import { makeAutoObservable } from 'mobx';\n\nexport class StorageState<T> {\n key: string;\n value: T | any = null;\n default: T | any = null;\n constructor(args: Partial<StorageState<T>>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n this.load();\n }\n\n static safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n }\n\n load() {\n try {\n const value = window?.localStorage?.getItem(this.key);\n this.value = StorageState.safeParse(value);\n if (this.value == null) {\n this.value = this.default;\n }\n return this.value;\n } catch (error) {\n console.error(error)\n return null\n }\n }\n\n save(value?: T) {\n try {\n if (value !== null || value !== undefined) {\n this.value = value;\n }\n window?.localStorage.setItem(this.key, JSON.stringify(value));\n } catch (error) {\n console.error(error)\n return null\n }\n }\n\n setValue(value?: T) {\n this.save(value);\n }\n\n clear() {\n try {\n localStorage.removeItem(this.key);\n } catch (error) {\n return null\n }\n }\n}\n","export class ObjectPool {\n static pool: { [key: string]: any } = {};\n\n static get<T extends (...args: any[]) => any, U = ReturnType<T>>(key: string, func: T): U {\n if (!ObjectPool.pool[key]) {\n ObjectPool.pool[key] = func();\n }\n return ObjectPool.pool[key];\n }\n}","import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { RootStore } from \"../store/root\";\n\nexport const AppProvider = observer(({ children }: { children?: React.ReactNode }) => {\n const rootStore = RootStore.init()\n return (\n <>\n {rootStore.providers.map((store) => {\n const Component: any = store.provider;\n return <Component rootStore={rootStore} key={store.sid} />;\n })}\n {children && children}\n </>\n )\n})"]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { S as Store } from './root-C3lZnoCI.js';
2
+ import { S as Store } from './root-766ae985.js';
3
3
  import 'typed-emitter';
4
4
 
5
5
  declare class DevInspectorPlugin implements Store {
@@ -1,4 +1,4 @@
1
- import './chunk-R4SQKVDQ.mjs';
1
+ import './chunk-6F7H4PAA.mjs';
2
2
  import React from 'react';
3
3
  import { Inspector } from 'react-dev-inspector';
4
4
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { SlotsToClasses, TableSlots, PaginationProps, SpinnerProps } from '@nextui-org/react';
3
- import { P as PaginationState } from './PaginationState-Bmrrw0ky.js';
3
+ import { P as PaginationState } from './PaginationState-c19e621a.js';
4
4
 
5
5
  type HeaderKeys<T extends Record<string, any>> = Array<keyof T | '$actions'>;
6
6
  type ColumnOptions<T> = {
@@ -97,4 +97,4 @@ declare const JSONTable: (<T extends Record<string, any>>(props: JSONTableProps<
97
97
  displayName: string;
98
98
  };
99
99
 
100
- export { type CardOptions, type Column, type ColumnOptions, type ExtendedTable, type HeaderKeys, JSONTable };
100
+ export { CardOptions, Column, ColumnOptions, ExtendedTable, HeaderKeys, JSONTable };
@@ -1,8 +1,8 @@
1
- export { JSONTable } from './chunk-SVPD6PC6.mjs';
1
+ export { JSONTable } from './chunk-7FF4BCFW.mjs';
2
2
  import './chunk-ONVPCAMQ.mjs';
3
- import './chunk-HRYH37UI.mjs';
3
+ import './chunk-WT2ARRCR.mjs';
4
4
  import './chunk-MGU3KYGC.mjs';
5
- import './chunk-AIZ7XDNV.mjs';
6
- import './chunk-R4SQKVDQ.mjs';
5
+ import './chunk-WYGQ3Y4R.mjs';
6
+ import './chunk-6F7H4PAA.mjs';
7
7
  //# sourceMappingURL=out.js.map
8
8
  //# sourceMappingURL=jsontable.mjs.map
@@ -118,4 +118,4 @@ declare const MetricsView: ({ data }: {
118
118
  data: JSONMetricsViewType;
119
119
  }) => React.JSX.Element;
120
120
 
121
- export { JSONMetricsView, type JSONMetricsViewType, MetricsView };
121
+ export { JSONMetricsView, JSONMetricsViewType, MetricsView };
package/dist/metrics.mjs CHANGED
@@ -1,9 +1,9 @@
1
- import { JSONTable } from './chunk-SVPD6PC6.mjs';
1
+ import { JSONTable } from './chunk-7FF4BCFW.mjs';
2
2
  import './chunk-ONVPCAMQ.mjs';
3
- import { SkeletonBox } from './chunk-HRYH37UI.mjs';
3
+ import { SkeletonBox } from './chunk-WT2ARRCR.mjs';
4
4
  import './chunk-MGU3KYGC.mjs';
5
- import { cn } from './chunk-AIZ7XDNV.mjs';
6
- import { __spreadValues } from './chunk-R4SQKVDQ.mjs';
5
+ import { cn } from './chunk-WYGQ3Y4R.mjs';
6
+ import { __spreadValues } from './chunk-6F7H4PAA.mjs';
7
7
  import React8 from 'react';
8
8
  import { Grid, Col, BarChart, LineChart, AreaChart, DonutChart, Text } from '@tremor/react';
9
9
  import { Card } from '@nextui-org/react';
@@ -1,9 +1,9 @@
1
- import { S as Store } from './root-C3lZnoCI.js';
1
+ import { S as Store } from './root-766ae985.js';
2
2
  import React from 'react';
3
- import { SlotsToClasses, ModalSlots } from '@nextui-org/react';
4
- import { T as ThemeType } from './index-CUKoRIdy.js';
3
+ import { SlotsToClasses, ModalSlots, SpinnerProps } from '@nextui-org/react';
4
+ import { T as ThemeType } from './index-38be834f.js';
5
5
  import * as react_hot_toast from 'react-hot-toast';
6
- import { P as PromiseState } from './PromiseState-yojg0WLR.js';
6
+ import { P as PromiseState } from './PromiseState-b0cc408e.js';
7
7
  import 'typed-emitter';
8
8
  import 'events';
9
9
 
@@ -66,10 +66,29 @@ type GroupOptions = {
66
66
  args?: any[];
67
67
  title: React.ReactNode;
68
68
  }[];
69
+ type DialogContentUIProps = {
70
+ className?: string;
71
+ itemClassName?: string;
72
+ numberClassName?: string;
73
+ spinnerProps?: SpinnerProps;
74
+ SuccessIcon?: React.ReactNode;
75
+ FailureIcon?: React.ReactNode;
76
+ };
77
+ type StepUIProps = {
78
+ className?: string;
79
+ itemClassName?: string;
80
+ activatedItemClassName?: string;
81
+ numberClassName?: string;
82
+ activatedNumberClassName?: string;
83
+ spinnerProps?: SpinnerProps;
84
+ SuccessIcon?: React.ReactNode;
85
+ FailureIcon?: React.ReactNode;
86
+ };
69
87
 
70
88
  declare class PromiseStateGroup {
71
89
  group: PromiseState<any, any>[];
72
90
  groupOptions: GroupOptions;
91
+ currentCallStepNo: number;
73
92
  constructor({ group, groupOptions }: {
74
93
  group: PromiseState<any, any>[];
75
94
  groupOptions: GroupOptions;
@@ -78,11 +97,18 @@ declare class PromiseStateGroup {
78
97
  result: any[];
79
98
  errMsg: string;
80
99
  }>;
81
- ui(dialogOptions?: Partial<DialogStore>): Promise<{
82
- result: any[];
100
+ showDialog(dialogOptions?: Partial<DialogStore>, dialogContentOptions?: DialogContentUIProps): this;
101
+ closeDialog(): void;
102
+ stepCall(stepNo: number): Promise<{
103
+ result: any;
83
104
  errMsg: string;
105
+ } | {
106
+ result: any;
107
+ errMsg: any;
84
108
  }>;
85
- closeUI(): void;
109
+ onNext(): void;
110
+ onPrevious(): void;
111
+ render(props?: StepUIProps): React.JSX.Element;
86
112
  }
87
113
 
88
114
  export { ConfirmStore, DialogStore, PromiseStateGroup, ToastPlugin };
package/dist/plugins.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  export { ToastPlugin } from './chunk-4YCP5CJ4.mjs';
2
2
  import { getStyle } from './chunk-5SFAINN6.mjs';
3
- import { useStore, rootStore } from './chunk-WS43BV7Y.mjs';
4
- import './chunk-XJMRAPHI.mjs';
3
+ import { useStore, rootStore } from './chunk-IDKGZ5T4.mjs';
5
4
  import './chunk-MGU3KYGC.mjs';
6
- import { __spreadValues, __spreadProps } from './chunk-R4SQKVDQ.mjs';
7
- import { makeAutoObservable } from 'mobx';
8
- import React from 'react';
5
+ import { cn } from './chunk-WYGQ3Y4R.mjs';
6
+ import { __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
7
+ import { makeAutoObservable, makeObservable } from 'mobx';
8
+ import React5 from 'react';
9
9
  import { observer } from 'mobx-react-lite';
10
10
  import { Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, Button, Spinner } from '@nextui-org/react';
11
11
  import { Check, X } from 'lucide-react';
@@ -14,7 +14,7 @@ var ConfirmModal = observer(() => {
14
14
  const rootStore2 = useStore();
15
15
  const confirmStore = rootStore2.get(ConfirmStore);
16
16
  const { isOpen, title, description, size, className, classNames, cancelText, okText } = confirmStore;
17
- return /* @__PURE__ */ React.createElement(
17
+ return /* @__PURE__ */ React5.createElement(
18
18
  Modal,
19
19
  {
20
20
  isOpen,
@@ -27,7 +27,7 @@ var ConfirmModal = observer(() => {
27
27
  }
28
28
  }
29
29
  },
30
- /* @__PURE__ */ React.createElement(ModalContent, { className: "max-h-screen overflow-auto" }, () => /* @__PURE__ */ React.createElement(React.Fragment, null, title && /* @__PURE__ */ React.createElement(ModalHeader, { className: "flex flex-col gap-1" }, title), /* @__PURE__ */ React.createElement(ModalBody, null, /* @__PURE__ */ React.createElement("div", null, description)), /* @__PURE__ */ React.createElement(ModalFooter, null, /* @__PURE__ */ React.createElement(
30
+ /* @__PURE__ */ React5.createElement(ModalContent, { className: "max-h-screen overflow-auto" }, () => /* @__PURE__ */ React5.createElement(React5.Fragment, null, title && /* @__PURE__ */ React5.createElement(ModalHeader, { className: "flex flex-col gap-1" }, title), /* @__PURE__ */ React5.createElement(ModalBody, null, /* @__PURE__ */ React5.createElement("div", null, description)), /* @__PURE__ */ React5.createElement(ModalFooter, null, /* @__PURE__ */ React5.createElement(
31
31
  Button,
32
32
  {
33
33
  color: "primary",
@@ -38,7 +38,7 @@ var ConfirmModal = observer(() => {
38
38
  }
39
39
  },
40
40
  cancelText
41
- ), /* @__PURE__ */ React.createElement(
41
+ ), /* @__PURE__ */ React5.createElement(
42
42
  Button,
43
43
  {
44
44
  color: "primary",
@@ -55,7 +55,7 @@ var Provider_default = ConfirmModal;
55
55
  var ConfirmStore = class {
56
56
  constructor() {
57
57
  this.sid = "ConfirmStore";
58
- this.provider = () => /* @__PURE__ */ React.createElement(Provider_default, null);
58
+ this.provider = () => /* @__PURE__ */ React5.createElement(Provider_default, null);
59
59
  this.isOpen = false;
60
60
  this.title = "";
61
61
  this.description = "";
@@ -93,7 +93,7 @@ var Dialog = observer(() => {
93
93
  const modal = rootStore2.get(DialogStore);
94
94
  const { className, classNames, isOpen, placement, title, size, content, isDismissable } = modal;
95
95
  const Content = typeof content === "function" ? content : () => content;
96
- return /* @__PURE__ */ React.createElement(
96
+ return /* @__PURE__ */ React5.createElement(
97
97
  Modal,
98
98
  {
99
99
  isOpen,
@@ -108,7 +108,7 @@ var Dialog = observer(() => {
108
108
  classNames,
109
109
  isDismissable
110
110
  },
111
- /* @__PURE__ */ React.createElement(ModalContent, { className: "max-h-screen overflow-auto" }, () => /* @__PURE__ */ React.createElement(React.Fragment, null, title && /* @__PURE__ */ React.createElement(ModalHeader, { className: "flex flex-col gap-1" }, title), /* @__PURE__ */ React.createElement(ModalBody, null, /* @__PURE__ */ React.createElement(Content, null))))
111
+ /* @__PURE__ */ React5.createElement(ModalContent, { className: "max-h-screen overflow-auto" }, () => /* @__PURE__ */ React5.createElement(React5.Fragment, null, title && /* @__PURE__ */ React5.createElement(ModalHeader, { className: "flex flex-col gap-1" }, title), /* @__PURE__ */ React5.createElement(ModalBody, null, /* @__PURE__ */ React5.createElement(Content, null))))
112
112
  );
113
113
  });
114
114
  var Provider_default2 = Dialog;
@@ -117,7 +117,7 @@ var Provider_default2 = Dialog;
117
117
  var DialogStore = class _DialogStore {
118
118
  constructor(args) {
119
119
  this.sid = "DialogStore";
120
- this.provider = () => /* @__PURE__ */ React.createElement(Provider_default2, null);
120
+ this.provider = () => /* @__PURE__ */ React5.createElement(Provider_default2, null);
121
121
  this.isOpen = false;
122
122
  this.title = "";
123
123
  this.size = "md";
@@ -152,39 +152,97 @@ var DialogStore = class _DialogStore {
152
152
  rootStore.get(_DialogStore).close();
153
153
  }
154
154
  };
155
- var DialogContent = observer(({ group, groupOptions }) => {
156
- return /* @__PURE__ */ React.createElement("div", { className: "pb-4 space-y-4" }, group.map((promiseState, index) => {
155
+ var DialogContentUI = observer(({
156
+ group,
157
+ groupOptions,
158
+ className,
159
+ itemClassName,
160
+ numberClassName,
161
+ spinnerProps = {
162
+ size: "sm"
163
+ },
164
+ SuccessIcon,
165
+ FailureIcon
166
+ }) => {
167
+ return /* @__PURE__ */ React5.createElement("div", { className: cn("space-y-4", className) }, group.map((promiseState, index) => {
157
168
  const uiOptions = groupOptions[index];
158
- return /* @__PURE__ */ React.createElement("div", { key: index, className: "w-full flex items-center justify-between" }, uiOptions == null ? void 0 : uiOptions.title, /* @__PURE__ */ React.createElement("div", null, promiseState.loading.value ? /* @__PURE__ */ React.createElement(Spinner, { size: "sm" }) : /* @__PURE__ */ React.createElement(React.Fragment, null, promiseState.value && /* @__PURE__ */ React.createElement(Check, { size: 20, color: "#605BFF" }), promiseState.errMsg && /* @__PURE__ */ React.createElement(X, { size: 20, color: "red" }))));
169
+ const no = index + 1;
170
+ return /* @__PURE__ */ React5.createElement("div", { key: index, className: cn("w-full flex items-center justify-between", itemClassName) }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React5.createElement("div", { className: cn("w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#000000] dark:border-[#cacbcb] mr-2", numberClassName) }, no), uiOptions == null ? void 0 : uiOptions.title), promiseState.loading.value ? /* @__PURE__ */ React5.createElement(Spinner, __spreadValues({}, spinnerProps)) : /* @__PURE__ */ React5.createElement(React5.Fragment, null, promiseState.value && (SuccessIcon || /* @__PURE__ */ React5.createElement(Check, { size: 20, color: "#605BFF" })), promiseState.errMsg && (FailureIcon || /* @__PURE__ */ React5.createElement(X, { size: 20, color: "red" }))));
171
+ }));
172
+ });
173
+ var StepUI = observer(({
174
+ group,
175
+ groupOptions,
176
+ currentCallStepNo,
177
+ className,
178
+ itemClassName,
179
+ activatedItemClassName = "",
180
+ numberClassName,
181
+ activatedNumberClassName = "",
182
+ spinnerProps = {
183
+ size: "sm"
184
+ },
185
+ SuccessIcon,
186
+ FailureIcon
187
+ }) => {
188
+ return /* @__PURE__ */ React5.createElement("div", { className: cn("space-y-4", className) }, group.map((promiseState, index) => {
189
+ const uiOptions = groupOptions[index];
190
+ const no = index + 1;
191
+ return /* @__PURE__ */ React5.createElement(
192
+ "div",
193
+ {
194
+ key: index,
195
+ className: cn(
196
+ "w-full flex items-center justify-between text-[#909091] dark:text-[#6b6c6c]",
197
+ no <= currentCallStepNo ? `text-[#000] dark:text-[#fff] ${activatedItemClassName}` : "",
198
+ itemClassName
199
+ )
200
+ },
201
+ /* @__PURE__ */ React5.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React5.createElement(
202
+ "div",
203
+ {
204
+ className: cn(
205
+ "w-6 h-6 flex items-center justify-center text-sm rounded-full border-2 border-[#909091] dark:border-[#6b6c6c] mr-2",
206
+ no <= currentCallStepNo ? `border-[#000] dark:border-[#fff] ${activatedNumberClassName}` : "",
207
+ numberClassName
208
+ )
209
+ },
210
+ no
211
+ ), uiOptions == null ? void 0 : uiOptions.title),
212
+ promiseState.loading.value ? /* @__PURE__ */ React5.createElement(Spinner, __spreadValues({}, spinnerProps)) : /* @__PURE__ */ React5.createElement(React5.Fragment, null, promiseState.value && no <= currentCallStepNo && (SuccessIcon || /* @__PURE__ */ React5.createElement(Check, { size: 20, color: "#605BFF" })), promiseState.errMsg && no <= currentCallStepNo && (FailureIcon || /* @__PURE__ */ React5.createElement(X, { size: 20, color: "red" })))
213
+ );
159
214
  }));
160
215
  });
161
-
162
- // module/PromiseStateGroup/index.tsx
163
216
  var PromiseStateGroup = class {
164
217
  constructor({ group, groupOptions = [] }) {
165
218
  this.group = [];
166
219
  this.groupOptions = [];
220
+ this.currentCallStepNo = 1;
221
+ group.forEach((p) => {
222
+ Object.assign(p, {
223
+ autoAlert: false,
224
+ value: p.defaultValue,
225
+ errMsg: ""
226
+ });
227
+ });
167
228
  Object.assign(this, {
168
229
  group,
169
230
  groupOptions
170
231
  });
232
+ makeObservable(this, {
233
+ currentCallStepNo: true
234
+ });
171
235
  }
172
236
  async call() {
173
237
  let result = [];
174
238
  let errMsg = "";
175
- this.group.forEach((p) => {
176
- Object.assign(p, {
177
- autoAlert: false,
178
- value: p.defaultValue,
179
- errMsg: ""
180
- });
181
- });
182
239
  for (let i = 0; i < this.group.length; i++) {
240
+ this.currentCallStepNo = i + 1;
183
241
  const promiseState = this.group[i];
184
- const options = this.groupOptions[i];
185
- if (promiseState && options) {
242
+ if (promiseState) {
186
243
  try {
187
- const args = options.args || [];
244
+ const options = this.groupOptions[i];
245
+ const args = (options == null ? void 0 : options.args) || [];
188
246
  const data = await promiseState.call(...args);
189
247
  result.push(data);
190
248
  } catch (e) {
@@ -202,19 +260,89 @@ var PromiseStateGroup = class {
202
260
  errMsg
203
261
  };
204
262
  }
205
- async ui(dialogOptions) {
263
+ showDialog(dialogOptions, dialogContentOptions) {
206
264
  DialogStore.show(__spreadValues({
207
265
  title: "",
208
266
  size: "md",
209
- content: /* @__PURE__ */ React.createElement(DialogContent, { group: this.group, groupOptions: this.groupOptions }),
210
- isDismissable: false
211
- }, dialogOptions || {}));
212
- const res = await this.call();
213
- return res;
267
+ isDismissable: false,
268
+ content: /* @__PURE__ */ React5.createElement(
269
+ DialogContentUI,
270
+ __spreadValues({
271
+ group: this.group,
272
+ groupOptions: this.groupOptions
273
+ }, dialogContentOptions)
274
+ )
275
+ }, dialogOptions));
276
+ return this;
214
277
  }
215
- closeUI() {
278
+ closeDialog() {
216
279
  DialogStore.close();
217
280
  }
281
+ async stepCall(stepNo) {
282
+ const index = stepNo - 1;
283
+ if (index < 0 || index >= this.group.length) {
284
+ return {
285
+ result: null,
286
+ errMsg: "Invalid step number"
287
+ };
288
+ }
289
+ const prePromiseState = this.group[index - 1];
290
+ if (prePromiseState && prePromiseState.errMsg) {
291
+ return {
292
+ result: null,
293
+ errMsg: prePromiseState.errMsg
294
+ };
295
+ }
296
+ this.currentCallStepNo = stepNo;
297
+ const promiseState = this.group[index];
298
+ if (promiseState && !promiseState.loading.value) {
299
+ const options = this.groupOptions[index];
300
+ const args = (options == null ? void 0 : options.args) || [];
301
+ try {
302
+ const result = await promiseState.call(...args);
303
+ return {
304
+ result,
305
+ errMsg: ""
306
+ };
307
+ } catch (e) {
308
+ let errMsg = e.message;
309
+ if ((errMsg == null ? void 0 : errMsg.includes("User rejected the request")) || String(e).toLowerCase().includes("user rejected")) {
310
+ errMsg = "User rejected the request";
311
+ }
312
+ promiseState.errMsg = errMsg;
313
+ return {
314
+ result: null,
315
+ errMsg
316
+ };
317
+ }
318
+ }
319
+ }
320
+ onNext() {
321
+ if (this.currentCallStepNo < this.group.length) {
322
+ this.currentCallStepNo += 1;
323
+ }
324
+ }
325
+ onPrevious() {
326
+ if (this.currentCallStepNo > 1) {
327
+ const index = this.currentCallStepNo - 1;
328
+ const promiseState = this.group[index];
329
+ if (promiseState) {
330
+ promiseState.value = "";
331
+ promiseState.errMsg = "";
332
+ }
333
+ this.currentCallStepNo -= 1;
334
+ }
335
+ }
336
+ render(props) {
337
+ return /* @__PURE__ */ React5.createElement(
338
+ StepUI,
339
+ __spreadValues({
340
+ group: this.group,
341
+ groupOptions: this.groupOptions,
342
+ currentCallStepNo: this.currentCallStepNo
343
+ }, props)
344
+ );
345
+ }
218
346
  };
219
347
 
220
348
  export { ConfirmStore, DialogStore, PromiseStateGroup };