@dappworks/kit 0.4.158 → 0.4.160

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 (42) hide show
  1. package/dist/{PromiseState-DdfQCVl2.d.ts → PromiseState-23a1c20b.d.ts} +3 -3
  2. package/dist/aiem.d.mts +1 -1
  3. package/dist/aiem.mjs +21 -5
  4. package/dist/{chunk-NWJBLIGQ.mjs → chunk-3D5MLYHP.mjs} +3 -3
  5. package/dist/{chunk-R4SQKVDQ.mjs → chunk-6F7H4PAA.mjs} +1 -1
  6. package/dist/{chunk-XSGTWROT.mjs → chunk-IDKGZ5T4.mjs} +7 -7
  7. package/dist/{chunk-XSGTWROT.mjs.map → chunk-IDKGZ5T4.mjs.map} +1 -1
  8. package/dist/{chunk-4YCP5CJ4.mjs → chunk-IMOLRP7I.mjs} +2 -2
  9. package/dist/{chunk-4YCP5CJ4.mjs.map → chunk-IMOLRP7I.mjs.map} +1 -1
  10. package/dist/{chunk-3O7QI47S.mjs → chunk-J5PZWR2P.mjs} +2 -2
  11. package/dist/{chunk-5BJM6R2E.mjs → chunk-N4VJILYE.mjs} +210 -63
  12. package/dist/chunk-N4VJILYE.mjs.map +1 -0
  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 +2 -2
  18. package/dist/experimental.mjs +4 -4
  19. package/dist/form.d.mts +5 -5
  20. package/dist/form.mjs +3 -3
  21. package/dist/{index-CUKoRIdy.d.ts → index-38be834f.d.ts} +1 -1
  22. package/dist/index.d.mts +4 -4
  23. package/dist/index.mjs +5 -5
  24. package/dist/inspector.d.mts +1 -1
  25. package/dist/inspector.mjs +1 -1
  26. package/dist/jsontable.d.mts +39 -37
  27. package/dist/jsontable.mjs +4 -4
  28. package/dist/metrics.d.mts +1 -1
  29. package/dist/metrics.mjs +4 -4
  30. package/dist/plugins.d.mts +3 -3
  31. package/dist/plugins.mjs +4 -4
  32. package/dist/{root-C3lZnoCI.d.ts → root-766ae985.d.ts} +1 -1
  33. package/dist/ui.mjs +3 -3
  34. package/dist/utils.d.mts +3 -8
  35. package/dist/utils.mjs +1 -1
  36. package/package.json +1 -1
  37. package/dist/chunk-5BJM6R2E.mjs.map +0 -1
  38. package/dist/chunk-AIZ7XDNV.mjs.map +0 -1
  39. /package/dist/{PaginationState-Bmrrw0ky.d.ts → PaginationState-c19e621a.d.ts} +0 -0
  40. /package/dist/{chunk-NWJBLIGQ.mjs.map → chunk-3D5MLYHP.mjs.map} +0 -0
  41. /package/dist/{chunk-R4SQKVDQ.mjs.map → chunk-6F7H4PAA.mjs.map} +0 -0
  42. /package/dist/{chunk-3O7QI47S.mjs.map → chunk-J5PZWR2P.mjs.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from 'events';
2
- import { c as BooleanState, B as BaseState } from './root-C3lZnoCI.js';
2
+ import { c as BooleanState, B as BaseState } from './root-766ae985.js';
3
3
 
4
4
  interface Events {
5
5
  data: (data: any) => void;
@@ -22,10 +22,10 @@ declare class PromiseState<T extends (...args: any[]) => Promise<any>, U = Retur
22
22
  successMsg: string;
23
23
  errMsg: string;
24
24
  loadingLock: boolean;
25
- event: EventEmitter<[never]>;
25
+ event: EventEmitter;
26
26
  on<E extends keyof Events>(event: E, listener: Events[E]): this;
27
27
  once<E extends keyof Events>(event: E, listener: Events[E]): this;
28
- use<E extends keyof Events>(event: E, listener: Events[E]): () => EventEmitter<[never]>;
28
+ use<E extends keyof Events>(event: E, listener: Events[E]): () => EventEmitter;
29
29
  emit<E extends keyof Events>(event: E, ...args: Parameters<Events[E]>): void;
30
30
  init: () => Promise<void>;
31
31
  currentIndex: BaseState;
package/dist/aiem.d.mts CHANGED
@@ -118,4 +118,4 @@ type QueryReturnType<E, S extends QuerySelect<E>> = {
118
118
  [K in keyof E]: K extends keyof S ? E[K] extends (...args: any[]) => any ? Awaited<ReturnType<E[K]>> : E[K] extends object ? S[K] extends object ? QueryReturnType<E[K], S[K]> : E[K] : E[K] : E[K];
119
119
  };
120
120
 
121
- export { AIem, Cache, Fields, type GetOptions, type Item, type QueryReturnType };
121
+ export { AIem, Cache, Fields, GetOptions, Item, QueryReturnType };
package/dist/aiem.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import './chunk-7MDKCI65.mjs';
2
2
  import { helper } from './chunk-UPGWJHSO.mjs';
3
3
  import './chunk-K7LFG5BA.mjs';
4
- import { __spreadProps, __spreadValues, __objRest } from './chunk-R4SQKVDQ.mjs';
4
+ import { __spreadProps, __spreadValues, __objRest } from './chunk-6F7H4PAA.mjs';
5
5
  import { createPublicClient, http, getContract, encodeFunctionData } from 'viem';
6
6
  import { iotexTestnet, mainnet, iotex, bsc, polygon } from 'viem/chains';
7
7
  import TTLCache from '@isaacs/ttlcache';
@@ -374,7 +374,7 @@ var Reflect2;
374
374
  case 5:
375
375
  return input;
376
376
  }
377
- var hint = "string" ;
377
+ var hint = PreferredType === 3 ? "string" : PreferredType === 5 ? "number" : "default";
378
378
  var exoticToPrim = GetMethod(input, toPrimitiveSymbol);
379
379
  if (exoticToPrim !== void 0) {
380
380
  var result = exoticToPrim.call(input, hint);
@@ -382,10 +382,10 @@ var Reflect2;
382
382
  throw new TypeError();
383
383
  return result;
384
384
  }
385
- return OrdinaryToPrimitive(input);
385
+ return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint);
386
386
  }
387
387
  function OrdinaryToPrimitive(O, hint) {
388
- var valueOf, result; {
388
+ if (hint === "string") {
389
389
  var toString_1 = O.toString;
390
390
  if (IsCallable(toString_1)) {
391
391
  var result = toString_1.call(O);
@@ -398,6 +398,19 @@ var Reflect2;
398
398
  if (!IsObject(result))
399
399
  return result;
400
400
  }
401
+ } else {
402
+ var valueOf = O.valueOf;
403
+ if (IsCallable(valueOf)) {
404
+ var result = valueOf.call(O);
405
+ if (!IsObject(result))
406
+ return result;
407
+ }
408
+ var toString_2 = O.toString;
409
+ if (IsCallable(toString_2)) {
410
+ var result = toString_2.call(O);
411
+ if (!IsObject(result))
412
+ return result;
413
+ }
401
414
  }
402
415
  throw new TypeError();
403
416
  }
@@ -409,7 +422,10 @@ var Reflect2;
409
422
  }
410
423
  function ToPropertyKey(argument) {
411
424
  var key = ToPrimitive(
412
- argument);
425
+ argument,
426
+ 3
427
+ /* String */
428
+ );
413
429
  if (IsSymbol(key))
414
430
  return key;
415
431
  return ToString(key);
@@ -1,5 +1,5 @@
1
- import { ToastPlugin } from './chunk-4YCP5CJ4.mjs';
2
- import { RootStore } from './chunk-XSGTWROT.mjs';
1
+ import { ToastPlugin } from './chunk-IMOLRP7I.mjs';
2
+ import { RootStore } from './chunk-IDKGZ5T4.mjs';
3
3
  import { makeAutoObservable } from 'mobx';
4
4
  import { EventEmitter } from 'events';
5
5
  import { useEffect } from 'react';
@@ -206,4 +206,4 @@ var PromiseState = class {
206
206
 
207
207
  export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState };
208
208
  //# sourceMappingURL=out.js.map
209
- //# sourceMappingURL=chunk-NWJBLIGQ.mjs.map
209
+ //# sourceMappingURL=chunk-3D5MLYHP.mjs.map
@@ -32,4 +32,4 @@ var __objRest = (source, exclude) => {
32
32
 
33
33
  export { __objRest, __spreadProps, __spreadValues };
34
34
  //# sourceMappingURL=out.js.map
35
- //# sourceMappingURL=chunk-R4SQKVDQ.mjs.map
35
+ //# sourceMappingURL=chunk-6F7H4PAA.mjs.map
@@ -4,18 +4,18 @@ import { useLocalObservable } from 'mobx-react-lite';
4
4
 
5
5
  // store/root.ts
6
6
  var MyEmitter = class extends EventEmitter {
7
- emit(type, ...args) {
8
- if (process.env.NODE_ENV == "development") {
9
- super.emit("*", { type, args });
10
- }
11
- return super.emit(type, ...args) || super.emit("", ...args);
12
- }
13
7
  constructor() {
14
8
  super();
15
9
  makeObservable(this, {
16
10
  // metas: true,
17
11
  });
18
12
  }
13
+ emit(type, ...args) {
14
+ if (process.env.NODE_ENV == "development") {
15
+ super.emit("*", { type, args });
16
+ }
17
+ return super.emit(type, ...args) || super.emit("", ...args);
18
+ }
19
19
  };
20
20
  var RootStore = class _RootStore {
21
21
  constructor(args = {}) {
@@ -116,4 +116,4 @@ var useStore = () => RootStore.init();
116
116
 
117
117
  export { RootStore, rootStore, useStore };
118
118
  //# sourceMappingURL=out.js.map
119
- //# sourceMappingURL=chunk-XSGTWROT.mjs.map
119
+ //# sourceMappingURL=chunk-IDKGZ5T4.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../store/root.ts","../store/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter } from \"events\";\nimport { makeAutoObservable, makeObservable } from \"mobx\";\nimport type TypedEmitter from \"typed-emitter\";\nimport { type Store, type StoreClass } from \"./standard/base\";\nimport { useLocalObservable } from \"mobx-react-lite\";\n\nexport type EventMap = {\n \"*\": (args: any) => void;\n add: (store: Store) => void;\n};\n\nexport class MyEmitter extends EventEmitter {\n // metas: Record<string, { count: number }> = {};\n _events: Record<string, any>;\n emit(type: any, ...args: any[]) {\n if (process.env.NODE_ENV == \"development\") {\n super.emit(\"*\", { type, args });\n }\n // if (!this.metas[type]) {\n // this.metas[type] = { count: 0 };\n // }\n // this.metas[type].count++;\n return super.emit(type, ...args) || super.emit(\"\", ...args);\n }\n constructor() {\n super();\n makeObservable(this, {\n // metas: true,\n });\n }\n}\n\nexport class RootStore<T extends EventMap = any> {\n instanceMap = new Map<Function, Map<string, Store>>();\n instance: Record<string, Store> = {};\n\n providers: Store[] = [];\n\n events: TypedEmitter<T> = new MyEmitter() as TypedEmitter<T>;\n isInited = false;\n\n static init<T extends EventMap>(args: Partial<RootStore<T>> = {}): RootStore<T> {\n if (!globalThis.store) {\n //@ts-ignore\n globalThis.store = new RootStore(args);\n }\n\n return globalThis.store;\n }\n\n add(store: Store, { sid }: { sid?: string } = {}) {\n if (store.disabled) {\n return;\n }\n\n const instanceMapId = sid ? sid : \"singleton\";\n const instanceId = sid ? sid : store.sid;\n\n if (!this.has(store.constructor)) {\n this.instanceMap.set(store.constructor, new Map());\n }\n\n if (this.instanceMap.get(store.constructor).get(instanceMapId)) {\n console.error(`Store ${store.sid} already exists`);\n return;\n throw new Error(`Store ${store.sid} already exists`);\n }\n if (store.autoObservable) {\n makeAutoObservable(store);\n }\n if (store.provider) {\n this.providers.push(store);\n }\n if (store.onNewStore) {\n this.events.on(\"add\", (e: Store) => {\n store.onNewStore({ rootStore: this, store: e });\n });\n }\n\n if (store.onAdded) {\n store.onAdded({ rootStore: this });\n }\n if (store.stores) {\n this.addStores(store.stores);\n }\n\n if (store.events) {\n Object.entries(store.events).forEach(([event, val]) => {\n this.events.on(val.name as any, val.handler);\n });\n }\n\n // if (helper.env.isBrowser && store.onKeyBindings) {\n // const res = store.onKeyBindings()\n // res.forEach(({ key, fn }: { key: string[], fn: (ev: KeyboardEvent) => void }) => {\n // useEffect(() => {\n // window.addEventListener(\"keydown\", fn);\n // return () => {\n // window.removeEventListener(\"keydown\", fn);\n // }\n // }, [])\n // })\n // }\n\n this.instanceMap.get(store.constructor).set(instanceMapId, store);\n this.instance[instanceId] = store;\n //@ts-ignore\n this.events.emit(\"add\", store);\n\n if (store.init) {\n store.init();\n }\n // this.crawlStore(store);\n }\n\n addStores(store: Store[]) {\n store.forEach((i) => this.add(i));\n return this;\n }\n\n get<T extends Store>(store: StoreClass<T>, config: { sid?: string; args?: Partial<T> } = {}): T {\n const instanceMapId = config.sid ? config.sid : \"singleton\";\n const valid = this.instanceMap.has(store) && this.instanceMap.get(store).has(instanceMapId);\n if (!valid) {\n this.add(new store(config.args || {}), config);\n }\n return this.instanceMap.get(store).get(instanceMapId) as T;\n }\n\n public has(store: Function): boolean {\n return this.instanceMap.has(store);\n }\n\n constructor(args: Partial<RootStore<T>> = {}) {\n Object.assign(this, args);\n makeObservable(this, {\n providers: true,\n });\n this.crawlStore(this);\n }\n\n crawlStore(obj: Object) {\n Object.values(obj).forEach((value) => {\n if (value?.sid) {\n this.add(value);\n }\n });\n }\n\n static Get<T extends Store>(store: StoreClass<T>, config: { sid?: string; args?: Partial<T> } = {}): T {\n return this.init().get(store, config);\n }\n\n static Local<T>(func: () => T, config: { sid?: string; args?: Partial<T> } = {}, ann?: any): T {\n const val = useLocalObservable(func, ann);\n RootStore.init().instance[\"Local.\" + config.sid] = val;\n return val;\n }\n}\n","import { RootStore, EventMap } from \"./root\";\n\nexport const rootStore = RootStore.init<EventMap>();\n\nexport const useStore = () => RootStore.init();\n\nexport { RootStore };\n"]}
1
+ {"version":3,"sources":["../store/root.ts","../store/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter } from \"events\";\nimport { makeAutoObservable, makeObservable } from \"mobx\";\nimport type TypedEmitter from \"typed-emitter\";\nimport { type Store, type StoreClass } from \"./standard/base\";\nimport { useLocalObservable } from \"mobx-react-lite\";\n\nexport type EventMap = {\n \"*\": (args: any) => void;\n add: (store: Store) => void;\n};\n\nexport class MyEmitter extends EventEmitter {\n // metas: Record<string, { count: number }> = {};\n _events: Record<string, any>;\n emit(type: any, ...args: any[]) {\n if (process.env.NODE_ENV == \"development\") {\n super.emit(\"*\", { type, args });\n }\n // if (!this.metas[type]) {\n // this.metas[type] = { count: 0 };\n // }\n // this.metas[type].count++;\n return super.emit(type, ...args) || super.emit(\"\", ...args);\n }\n constructor() {\n super();\n makeObservable(this, {\n // metas: true,\n });\n }\n}\n\nexport class RootStore<T extends EventMap = any> {\n instanceMap = new Map<Function, Map<string, Store>>();\n instance: Record<string, Store> = {};\n\n providers: Store[] = [];\n\n events: TypedEmitter<T> = new MyEmitter() as TypedEmitter<T>;\n isInited = false;\n\n static init<T extends EventMap>(args: Partial<RootStore<T>> = {}): RootStore<T> {\n if (!globalThis.store) {\n //@ts-ignore\n globalThis.store = new RootStore(args);\n }\n\n return globalThis.store;\n }\n\n add(store: Store, { sid }: { sid?: string } = {}) {\n if (store.disabled) {\n return;\n }\n\n const instanceMapId = sid ? sid : \"singleton\";\n const instanceId = sid ? sid : store.sid;\n\n if (!this.has(store.constructor)) {\n this.instanceMap.set(store.constructor, new Map());\n }\n\n if (this.instanceMap.get(store.constructor).get(instanceMapId)) {\n console.error(`Store ${store.sid} already exists`);\n return;\n throw new Error(`Store ${store.sid} already exists`);\n }\n if (store.autoObservable) {\n makeAutoObservable(store);\n }\n if (store.provider) {\n this.providers.push(store);\n }\n if (store.onNewStore) {\n this.events.on(\"add\", (e: Store) => {\n store.onNewStore({ rootStore: this, store: e });\n });\n }\n\n if (store.onAdded) {\n store.onAdded({ rootStore: this });\n }\n if (store.stores) {\n this.addStores(store.stores);\n }\n\n if (store.events) {\n Object.entries(store.events).forEach(([event, val]) => {\n this.events.on(val.name as any, val.handler);\n });\n }\n\n // if (helper.env.isBrowser && store.onKeyBindings) {\n // const res = store.onKeyBindings()\n // res.forEach(({ key, fn }: { key: string[], fn: (ev: KeyboardEvent) => void }) => {\n // useEffect(() => {\n // window.addEventListener(\"keydown\", fn);\n // return () => {\n // window.removeEventListener(\"keydown\", fn);\n // }\n // }, [])\n // })\n // }\n\n this.instanceMap.get(store.constructor).set(instanceMapId, store);\n this.instance[instanceId] = store;\n //@ts-ignore\n this.events.emit(\"add\", store);\n\n if (store.init) {\n store.init();\n }\n // this.crawlStore(store);\n }\n\n addStores(store: Store[]) {\n store.forEach((i) => this.add(i));\n return this;\n }\n\n get<T extends Store>(store: StoreClass<T>, config: { sid?: string; args?: Partial<T> } = {}): T {\n const instanceMapId = config.sid ? config.sid : \"singleton\";\n const valid = this.instanceMap.has(store) && this.instanceMap.get(store).has(instanceMapId);\n if (!valid) {\n this.add(new store(config.args || {}), config);\n }\n return this.instanceMap.get(store).get(instanceMapId) as T;\n }\n\n public has(store: Function): boolean {\n return this.instanceMap.has(store);\n }\n\n constructor(args: Partial<RootStore<T>> = {}) {\n Object.assign(this, args);\n makeObservable(this, {\n providers: true,\n });\n this.crawlStore(this);\n }\n\n crawlStore(obj: Object) {\n Object.values(obj).forEach((value) => {\n if (value?.sid) {\n this.add(value);\n }\n });\n }\n\n static Get<T extends Store>(store: StoreClass<T>, config: { sid?: string; args?: Partial<T> } = {}): T {\n return this.init().get(store, config);\n }\n\n static Local<T>(func: () => T, config: { sid?: string; args?: Partial<T> } = {}, ann?: any): T {\n const val = useLocalObservable(func, ann);\n RootStore.init().instance[\"Local.\" + config.sid] = val;\n return val;\n }\n}\n","import { RootStore, EventMap } from \"./root\";\n\nexport const rootStore = RootStore.init<EventMap>();\n\nexport const useStore = () => RootStore.init();\n\nexport { RootStore };\n"]}
@@ -9,7 +9,7 @@ var ToastPlugin = class {
9
9
  Toaster,
10
10
  {
11
11
  toastOptions: {
12
- className: "!bg-[#fff] !text-[#000] dark:!bg-[#333] dark:!text-[#fff] !rounded-md !shadow-md"
12
+ className: "!bg-[#fff] !text-[#000] dark:!bg-[#131218] dark:!text-[#fff] !rounded-md !shadow-md"
13
13
  }
14
14
  }
15
15
  );
@@ -25,4 +25,4 @@ var ToastPlugin = class {
25
25
 
26
26
  export { ToastPlugin };
27
27
  //# sourceMappingURL=out.js.map
28
- //# sourceMappingURL=chunk-4YCP5CJ4.mjs.map
28
+ //# sourceMappingURL=chunk-IMOLRP7I.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../module/Toast/Toast.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW;AAClB,OAAO,SAAS,eAAe;AAGxB,IAAM,cAAN,MAAmC;AAAA,EAAnC;AACL,eAAM;AACN,oBAAW,MACT;AAAA,MAAC;AAAA;AAAA,QACC,cAAc;AAAA,UACZ,WAAW;AAAA,QACb;AAAA;AAAA,IACF;AAGF,mBAAU,MAAM;AAChB,iBAAQ,MAAM;AACd,mBAAU,MAAM;AAChB,kBAAS,MAAM;AACf,mBAAU,MAAM;AAChB,kBAAS,MAAM;AACf,mBAAU,MAAM;AAAA;AAClB","sourcesContent":["import React from \"react\";\nimport toast, { Toaster } from \"react-hot-toast\";\nimport { type Store } from \"../../store/standard/base\";\n\nexport class ToastPlugin implements Store {\n sid = \"ToastPlugin\";\n provider = () => (\n <Toaster\n toastOptions={{\n className: '!bg-[#fff] !text-[#000] dark:!bg-[#333] dark:!text-[#fff] !rounded-md !shadow-md',\n }}\n />\n );\n\n success = toast.success;\n error = toast.error;\n loading = toast.loading;\n custom = toast.custom;\n dismiss = toast.dismiss;\n remove = toast.remove;\n promise = toast.promise;\n}\n"]}
1
+ {"version":3,"sources":["../module/Toast/Toast.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW;AAClB,OAAO,SAAS,eAAe;AAGxB,IAAM,cAAN,MAAmC;AAAA,EAAnC;AACL,eAAM;AACN,oBAAW,MACT;AAAA,MAAC;AAAA;AAAA,QACC,cAAc;AAAA,UACZ,WAAW;AAAA,QACb;AAAA;AAAA,IACF;AAGF,mBAAU,MAAM;AAChB,iBAAQ,MAAM;AACd,mBAAU,MAAM;AAChB,kBAAS,MAAM;AACf,mBAAU,MAAM;AAChB,kBAAS,MAAM;AACf,mBAAU,MAAM;AAAA;AAClB","sourcesContent":["import React from \"react\";\nimport toast, { Toaster } from \"react-hot-toast\";\nimport { type Store } from \"../../store/standard/base\";\n\nexport class ToastPlugin implements Store {\n sid = \"ToastPlugin\";\n provider = () => (\n <Toaster\n toastOptions={{\n className: '!bg-[#fff] !text-[#000] dark:!bg-[#131218] dark:!text-[#fff] !rounded-md !shadow-md',\n }}\n />\n );\n\n success = toast.success;\n error = toast.error;\n loading = toast.loading;\n custom = toast.custom;\n dismiss = toast.dismiss;\n remove = toast.remove;\n promise = toast.promise;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-AIZ7XDNV.mjs';
1
+ import { cn } from './chunk-WYGQ3Y4R.mjs';
2
2
  import { Skeleton } from '@nextui-org/react';
3
3
  import React from 'react';
4
4
 
@@ -26,4 +26,4 @@ var SkeletonBox = ({
26
26
 
27
27
  export { SkeletonBox };
28
28
  //# sourceMappingURL=out.js.map
29
- //# sourceMappingURL=chunk-3O7QI47S.mjs.map
29
+ //# sourceMappingURL=chunk-J5PZWR2P.mjs.map
@@ -1,12 +1,12 @@
1
1
  import { PaginationState } from './chunk-ONVPCAMQ.mjs';
2
- import { SkeletonBox } from './chunk-3O7QI47S.mjs';
2
+ import { SkeletonBox } from './chunk-J5PZWR2P.mjs';
3
3
  import { _ } from './chunk-K7LFG5BA.mjs';
4
- import { cn } from './chunk-AIZ7XDNV.mjs';
5
- import { __objRest, __spreadValues } from './chunk-R4SQKVDQ.mjs';
4
+ import { cn } from './chunk-WYGQ3Y4R.mjs';
5
+ import { __objRest, __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
6
6
  import * as React2 from 'react';
7
- import React2__default, { useRef, useMemo, useState, useEffect } from 'react';
8
- import { Table, TableHeader, TableColumn, TableBody, TableRow, TableCell, Pagination, Card, Divider, Spinner } from '@nextui-org/react';
9
- import { ChevronRight, Check, Circle, ChevronDown, ChevronUp, ChevronsUpDown } from 'lucide-react';
7
+ import React2__default, { useState, useRef, useMemo, useEffect } from 'react';
8
+ import { Pagination, Card, Divider, Spinner } from '@nextui-org/react';
9
+ import { ChevronRight, Check, Circle, ChevronDown, ChevronUp, ChevronsUpDown, ChevronLeft } from 'lucide-react';
10
10
  import { observer } from 'mobx-react-lite';
11
11
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
12
12
 
@@ -138,7 +138,7 @@ var JSONTable = observer((props) => {
138
138
  const {
139
139
  className,
140
140
  classNames = {},
141
- dataSource,
141
+ dataSource = [],
142
142
  columnOptions,
143
143
  headerKeys,
144
144
  isServerPaging,
@@ -160,16 +160,18 @@ var JSONTable = observer((props) => {
160
160
  dividerClassName: ""
161
161
  },
162
162
  autoScrollToTop = false,
163
- emptyContent = "No Data",
163
+ emptyContent,
164
164
  isLoading = false,
165
165
  loadingOptions,
166
166
  loadingContent,
167
167
  isHeaderSticky = false,
168
168
  sortingUIOptions,
169
- extendedTableOptions = []
169
+ collapsedTableConfig
170
170
  } = props;
171
+ const [sortableColumnsMap, setSortableColumnsMap] = useState({});
172
+ const [sortedData, setSortedData] = useState(dataSource);
171
173
  const tableBoxRef = useRef(null);
172
- const { columns, sortableColumnsDefaultValue } = useMemo(() => {
174
+ const { columns, sortableColumnsDefaultValue, showCollapsedTables, collapsedTables } = useMemo(() => {
173
175
  const firstData = dataSource[0];
174
176
  const allKeys = firstData ? Object.keys(firstData) : [];
175
177
  const keys = headerKeys ? headerKeys : columnOptions ? allKeys.filter((key) => {
@@ -180,7 +182,7 @@ var JSONTable = observer((props) => {
180
182
  keys.push("$actions");
181
183
  }
182
184
  const sortableColumnsDefaultValue2 = {};
183
- const columns2 = keys.map((key) => {
185
+ let columns2 = keys.map((key) => {
184
186
  var _a, _b, _c;
185
187
  const sortable = (_a = columnOptions == null ? void 0 : columnOptions[key]) == null ? void 0 : _a.sortable;
186
188
  if (sortable) {
@@ -200,34 +202,52 @@ var JSONTable = observer((props) => {
200
202
  return bOrder - aOrder;
201
203
  });
202
204
  }
203
- const extendedTables = firstData ? extendedTableOptions.filter((item) => {
204
- return Array.isArray(firstData[item.key]);
205
- }).map((item) => {
206
- const index = columns2.findIndex((c) => c.key === item.key);
207
- if (index > -1) {
208
- columns2.splice(index, 1);
205
+ let collapsedTables2 = [];
206
+ if (firstData && (collapsedTableConfig == null ? void 0 : collapsedTableConfig.options)) {
207
+ const collapsedTableOptions = collapsedTableConfig.options;
208
+ collapsedTables2 = collapsedTableOptions.filter((item) => {
209
+ return Array.isArray(firstData[item.key]);
210
+ }).map((item) => {
211
+ const index = columns2.findIndex((c) => c.key === item.key);
212
+ if (index > -1) {
213
+ columns2.splice(index, 1);
214
+ }
215
+ const keys2 = item.headerKeys || [];
216
+ if (!keys2.includes("$actions") && item.columnOptions && item.columnOptions["$actions"]) {
217
+ keys2.push("$actions");
218
+ }
219
+ return {
220
+ key: item.key,
221
+ columns: keys2.map((k) => {
222
+ const option = item.columnOptions[k];
223
+ return {
224
+ key: k,
225
+ label: (option == null ? void 0 : option.label) || k,
226
+ render: option == null ? void 0 : option.render
227
+ };
228
+ })
229
+ };
230
+ });
231
+ }
232
+ const showCollapsedTables2 = collapsedTables2.length > 0;
233
+ if (showCollapsedTables2) {
234
+ const collapsedHandlerPosition = (collapsedTableConfig == null ? void 0 : collapsedTableConfig.collapsedHandlerPosition) || "right";
235
+ if (collapsedHandlerPosition === "right") {
236
+ columns2.push({
237
+ key: "$collapsedHandler",
238
+ label: ""
239
+ });
240
+ } else {
241
+ columns2 = [{ key: "$collapsedHandler", label: "" }, ...columns2];
209
242
  }
210
- const keys2 = Object.keys(item.columnOptions);
211
- return {
212
- key: item.key,
213
- columns: keys2.map((k) => {
214
- const option = item.columnOptions[k];
215
- return {
216
- key: k,
217
- label: (option == null ? void 0 : option.label) || k,
218
- render: option == null ? void 0 : option.render
219
- };
220
- })
221
- };
222
- }) : [];
243
+ }
223
244
  return {
224
245
  columns: columns2,
225
- extendedTables,
226
- sortableColumnsDefaultValue: sortableColumnsDefaultValue2
246
+ sortableColumnsDefaultValue: sortableColumnsDefaultValue2,
247
+ showCollapsedTables: showCollapsedTables2,
248
+ collapsedTables: collapsedTables2
227
249
  };
228
250
  }, [dataSource, columnOptions]);
229
- const [sortableColumnsMap, setSortableColumnsMap] = useState({});
230
- const [sortedData, setSortedData] = useState(dataSource);
231
251
  useEffect(() => {
232
252
  setSortableColumnsMap(sortableColumnsDefaultValue);
233
253
  }, [sortableColumnsDefaultValue]);
@@ -262,16 +282,13 @@ var JSONTable = observer((props) => {
262
282
  }
263
283
  );
264
284
  }
265
- return /* @__PURE__ */ React2__default.createElement(React2__default.Fragment, null, /* @__PURE__ */ React2__default.createElement(
266
- Table,
285
+ return /* @__PURE__ */ React2__default.createElement("div", { className: cn("relative w-full overflow-auto", className), ref: tableBoxRef }, /* @__PURE__ */ React2__default.createElement("table", { className: cn("w-full h-auto table-auto", classNames.table) }, /* @__PURE__ */ React2__default.createElement("thead", { className: cn(classNames.thead, { "sticky top-0 z-30 [&>tr]:first:shadow-small [&>tr]:first:rounded-lg": isHeaderSticky }) }, /* @__PURE__ */ React2__default.createElement("tr", { className: classNames.tr }, columns.map((item) => /* @__PURE__ */ React2__default.createElement(
286
+ "th",
267
287
  {
268
- removeWrapper: true,
269
- isHeaderSticky,
270
- className: cn("relative w-full overflow-auto h-[400px]", className),
271
- classNames,
272
- ref: tableBoxRef
288
+ key: item.key,
289
+ className: cn("px-3 h-10 text-xs font-semibold bg-default-100 first:rounded-l-lg last:rounded-r-lg outline-none", classNames.th)
273
290
  },
274
- /* @__PURE__ */ React2__default.createElement(TableHeader, { columns }, columns.map((item) => /* @__PURE__ */ React2__default.createElement(TableColumn, { key: item.key }, /* @__PURE__ */ React2__default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React2__default.createElement("span", null, item.label), !!sortableColumnsMap[item.key] && /* @__PURE__ */ React2__default.createElement(
291
+ /* @__PURE__ */ React2__default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React2__default.createElement("span", null, item.label), !!sortableColumnsMap[item.key] && /* @__PURE__ */ React2__default.createElement(
275
292
  SortingComponent,
276
293
  {
277
294
  sortingUIOptions,
@@ -290,23 +307,56 @@ var JSONTable = observer((props) => {
290
307
  setSortedData(sortedData2);
291
308
  }
292
309
  }
293
- ))))),
294
- isLoading ? /* @__PURE__ */ React2__default.createElement(TableBody, { emptyContent: loadingContent || DefaultLoading({ loadingOptions }) }, []) : data.length > 0 ? /* @__PURE__ */ React2__default.createElement(TableBody, null, data.map((item, index) => {
295
- return /* @__PURE__ */ React2__default.createElement(
296
- TableRow,
297
- {
298
- key: rowKey ? item[rowKey] || index : index,
299
- className: cn("", typeof rowCss === "function" ? rowCss(item) : rowCss),
300
- onClick: () => {
301
- onRowClick == null ? void 0 : onRowClick(item);
302
- }
303
- },
304
- columns.map((column) => {
305
- return /* @__PURE__ */ React2__default.createElement(TableCell, { key: column.key }, column.render ? column.render(item) : renderFieldValue(item[column.key]));
306
- })
307
- );
308
- })) : /* @__PURE__ */ React2__default.createElement(TableBody, { emptyContent }, [])
309
- ), showPagination && pagination.total > pagination.limit && /* @__PURE__ */ React2__default.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React2__default.createElement(
310
+ ))
311
+ ))), /* @__PURE__ */ React2__default.createElement("tr", { "aria-hidden": "true", className: "w-px h-px block ml-[0.25rem] mt-[0.25rem]" })), isLoading ? /* @__PURE__ */ React2__default.createElement("tbody", { className: classNames.tbody }, /* @__PURE__ */ React2__default.createElement("tr", { className: classNames.tr }, /* @__PURE__ */ React2__default.createElement(
312
+ "td",
313
+ {
314
+ className: classNames.td,
315
+ colSpan: columns.length
316
+ },
317
+ loadingContent || DefaultLoading({ loadingOptions })
318
+ ))) : data.length > 0 ? /* @__PURE__ */ React2__default.createElement("tbody", { className: classNames.tbody }, showCollapsedTables ? data.map((item) => {
319
+ return /* @__PURE__ */ React2__default.createElement(
320
+ CollapseBodyRow,
321
+ {
322
+ classNames,
323
+ item,
324
+ columns,
325
+ rowCss,
326
+ onRowClick,
327
+ collapsedTableConfig,
328
+ collapsedTables
329
+ }
330
+ );
331
+ }) : data.map((item, index) => {
332
+ return /* @__PURE__ */ React2__default.createElement(
333
+ "tr",
334
+ {
335
+ key: rowKey ? item[rowKey] || index : index,
336
+ className: cn(classNames.tr, typeof rowCss === "function" ? rowCss(item) : rowCss),
337
+ onClick: () => {
338
+ onRowClick == null ? void 0 : onRowClick(item);
339
+ }
340
+ },
341
+ columns.map((column) => {
342
+ return /* @__PURE__ */ React2__default.createElement(
343
+ "td",
344
+ {
345
+ key: column.key,
346
+ className: cn("py-2 px-3 text-xs", classNames.td)
347
+ },
348
+ column.render ? column.render(item) : renderFieldValue(item[column.key])
349
+ );
350
+ })
351
+ );
352
+ })) : /* @__PURE__ */ React2__default.createElement("tbody", { className: classNames.tbody }, /* @__PURE__ */ React2__default.createElement("tr", { className: classNames.tr }, /* @__PURE__ */ React2__default.createElement(
353
+ "td",
354
+ {
355
+ className: classNames.td,
356
+ colSpan: columns.length
357
+ },
358
+ emptyContent != null ? emptyContent : /* @__PURE__ */ React2__default.createElement(DefaultEmptyContent, null)
359
+ )))), showPagination && pagination.total > pagination.limit && /* @__PURE__ */ React2__default.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React2__default.createElement(
310
360
  Pagination,
311
361
  __spreadValues({
312
362
  className: "mt-2",
@@ -489,12 +539,12 @@ function CardUI({
489
539
  loadingContent
490
540
  }) {
491
541
  const cardBoxRef = useRef(null);
492
- return /* @__PURE__ */ React2__default.createElement("div", { className, ref: cardBoxRef }, /* @__PURE__ */ React2__default.createElement("div", { className: cn("space-y-2", cardOptions == null ? void 0 : cardOptions.boxClassName) }, isLoading ? loadingContent ? /* @__PURE__ */ React2__default.createElement(Card, { className: cn("w-full h-40 flex flex-col justify-center items-center p-4 shadow-sm text-foreground-400", cardOptions == null ? void 0 : cardOptions.cardClassName) }, loadingContent) : /* @__PURE__ */ React2__default.createElement(DefaultLoading, { loadingOptions }) : data.length > 0 ? data.map((item, index) => {
542
+ return /* @__PURE__ */ React2__default.createElement("div", { className, ref: cardBoxRef }, /* @__PURE__ */ React2__default.createElement("div", { className: cn("space-y-2", cardOptions == null ? void 0 : cardOptions.boxClassName) }, isLoading ? loadingContent ? /* @__PURE__ */ React2__default.createElement(Card, { className: cn("w-full h-40 flex flex-col justify-center items-center p-4 shadow-sm text-foreground-400 rounded-lg", cardOptions == null ? void 0 : cardOptions.cardClassName) }, loadingContent) : /* @__PURE__ */ React2__default.createElement(DefaultLoading, { loadingOptions }) : data.length > 0 ? data.map((item, index) => {
493
543
  return /* @__PURE__ */ React2__default.createElement(
494
544
  Card,
495
545
  {
496
546
  key: rowKey ? item[rowKey] || index : index,
497
- className: cn("w-full shadow-sm p-4", cardOptions == null ? void 0 : cardOptions.cardClassName),
547
+ className: cn("w-full shadow-sm p-4 rounded-lg", cardOptions == null ? void 0 : cardOptions.cardClassName),
498
548
  isPressable: !!onRowClick,
499
549
  onPress: () => {
500
550
  onRowClick == null ? void 0 : onRowClick(item);
@@ -505,7 +555,7 @@ function CardUI({
505
555
  return /* @__PURE__ */ React2__default.createElement("div", { className: "w-full", key: column.key }, /* @__PURE__ */ React2__default.createElement("div", { className: cn("w-full", cardOptions == null ? void 0 : cardOptions.itemClassName) }, /* @__PURE__ */ React2__default.createElement("div", { className: cn("font-meidum text-xs text-foreground-400", option == null ? void 0 : option.labelClassName) }, column.label), /* @__PURE__ */ React2__default.createElement("div", { className: cn("text-xs", option == null ? void 0 : option.valueClassName) }, column.render ? column.render(item) : renderFieldValue(item[column.key]))), (cardOptions == null ? void 0 : cardOptions.showDivider) && i !== columns.length - 1 && /* @__PURE__ */ React2__default.createElement(Divider, { className: cn("my-2", cardOptions == null ? void 0 : cardOptions.dividerClassName) }));
506
556
  })
507
557
  );
508
- }) : /* @__PURE__ */ React2__default.createElement(Card, { className: cn("w-full h-40 flex flex-col justify-center items-center p-4 shadow-sm text-foreground-400", cardOptions == null ? void 0 : cardOptions.cardClassName) }, emptyContent)), showPagination && pagination.total > pagination.limit && /* @__PURE__ */ React2__default.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React2__default.createElement(
558
+ }) : /* @__PURE__ */ React2__default.createElement(Card, { className: cn("w-full h-40 flex flex-col justify-center items-center p-4 shadow-sm text-foreground-400 rounded-lg", cardOptions == null ? void 0 : cardOptions.cardClassName) }, emptyContent)), showPagination && pagination.total > pagination.limit && /* @__PURE__ */ React2__default.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React2__default.createElement(
509
559
  Pagination,
510
560
  __spreadValues({
511
561
  className: "mt-2",
@@ -538,6 +588,9 @@ function DefaultLoading({ loadingOptions }) {
538
588
  }
539
589
  return /* @__PURE__ */ React2__default.createElement("div", { className: cn("w-full h-[100px] flex justify-center items-center", spinnerOptions == null ? void 0 : spinnerOptions.boxClassName) }, /* @__PURE__ */ React2__default.createElement(Spinner, __spreadValues({ size: "sm", color: "primary" }, spinnerProps)), /* @__PURE__ */ React2__default.createElement("div", { className: cn("ml-2 text-[#64748B] text-sm", spinnerOptions == null ? void 0 : spinnerOptions.textClassName) }, (spinnerOptions == null ? void 0 : spinnerOptions.text) || "Loading..."));
540
590
  }
591
+ function DefaultEmptyContent() {
592
+ return /* @__PURE__ */ React2__default.createElement("div", { className: "w-full h-[100px] flex justify-center items-center text-xs text-[#64748B] dark:text-[#cacaca]" }, "No Data");
593
+ }
541
594
  function scrollIntoTop(target) {
542
595
  if (target) {
543
596
  const { top } = target.getBoundingClientRect();
@@ -547,7 +600,101 @@ function scrollIntoTop(target) {
547
600
  });
548
601
  }
549
602
  }
603
+ function CollapseBodyRow({
604
+ classNames,
605
+ item,
606
+ columns,
607
+ rowCss,
608
+ onRowClick,
609
+ collapsedTableConfig,
610
+ collapsedTables
611
+ }) {
612
+ const [isOpen, setIsOpen] = useState(false);
613
+ const collapsedHandlerPosition = (collapsedTableConfig == null ? void 0 : collapsedTableConfig.collapsedHandlerPosition) || "right";
614
+ const { OpenedIcon, ClosedIcon } = useMemo(() => {
615
+ const defaultOpenedIcon = /* @__PURE__ */ React2__default.createElement(ChevronDown, { size: 18 });
616
+ const defaultClosedIcon = collapsedHandlerPosition === "left" ? /* @__PURE__ */ React2__default.createElement(ChevronRight, { size: 18 }) : /* @__PURE__ */ React2__default.createElement(ChevronLeft, { size: 18 });
617
+ return {
618
+ OpenedIcon: (collapsedTableConfig == null ? void 0 : collapsedTableConfig.openedIcon) || defaultOpenedIcon,
619
+ ClosedIcon: (collapsedTableConfig == null ? void 0 : collapsedTableConfig.closedIcon) || defaultClosedIcon
620
+ };
621
+ }, []);
622
+ return /* @__PURE__ */ React2__default.createElement(React2__default.Fragment, null, /* @__PURE__ */ React2__default.createElement(
623
+ "tr",
624
+ {
625
+ className: cn("text-xs cursor-pointer", classNames == null ? void 0 : classNames.tr, typeof rowCss === "function" ? rowCss(item) : rowCss),
626
+ onClick: (e) => {
627
+ onRowClick == null ? void 0 : onRowClick(item);
628
+ }
629
+ },
630
+ columns.map((column) => {
631
+ if (column.key === "$collapsedHandler") {
632
+ return /* @__PURE__ */ React2__default.createElement("td", { className: classNames == null ? void 0 : classNames.td }, /* @__PURE__ */ React2__default.createElement(
633
+ "div",
634
+ {
635
+ className: cn("w-6 h-6 flex items-center justify-center rounded-sm hover:bg-[#f3f3f4] dark:hover:bg-[#1e1e1e]", collapsedTableConfig == null ? void 0 : collapsedTableConfig.collapsedHandlerBoxCss),
636
+ onClick: (e) => {
637
+ e.stopPropagation();
638
+ setIsOpen((v) => !v);
639
+ }
640
+ },
641
+ isOpen ? OpenedIcon : ClosedIcon
642
+ ));
643
+ }
644
+ return /* @__PURE__ */ React2__default.createElement("td", { key: column.key, className: cn("py-2 px-3 text-xs", classNames == null ? void 0 : classNames.td) }, column.render ? column.render(item) : renderFieldValue(item[column.key]));
645
+ })
646
+ ), /* @__PURE__ */ React2__default.createElement("tr", { className: cn(classNames == null ? void 0 : classNames.tr, isOpen ? "table-row" : "hidden") }, /* @__PURE__ */ React2__default.createElement("td", { colSpan: columns.length + 1, className: cn("py-2 px-3 text-xs", classNames == null ? void 0 : classNames.td) }, collapsedTables.map((ex) => {
647
+ var _a, _b, _c, _d;
648
+ const exColumns = ex.columns;
649
+ const exData = item[ex.key];
650
+ return /* @__PURE__ */ React2__default.createElement("table", { className: cn("w-full h-auto table-auto", (_a = collapsedTableConfig == null ? void 0 : collapsedTableConfig.classNames) == null ? void 0 : _a.table), key: ex.key }, /* @__PURE__ */ React2__default.createElement("thead", { className: (_b = collapsedTableConfig == null ? void 0 : collapsedTableConfig.classNames) == null ? void 0 : _b.thead }, /* @__PURE__ */ React2__default.createElement("tr", { className: (_c = collapsedTableConfig == null ? void 0 : collapsedTableConfig.classNames) == null ? void 0 : _c.tr }, exColumns == null ? void 0 : exColumns.map((exC) => {
651
+ var _a2;
652
+ return /* @__PURE__ */ React2__default.createElement(
653
+ "th",
654
+ {
655
+ key: exC.key,
656
+ className: cn("px-3 h-10 text-xs text-left font-semibold bg-default-100 first:rounded-l-lg last:rounded-r-lg outline-none", (_a2 = collapsedTableConfig == null ? void 0 : collapsedTableConfig.classNames) == null ? void 0 : _a2.th)
657
+ },
658
+ exC.label
659
+ );
660
+ })), /* @__PURE__ */ React2__default.createElement("tr", { "aria-hidden": "true", className: "w-px h-px block ml-[0.25rem] mt-[0.25rem]" })), /* @__PURE__ */ React2__default.createElement("tbody", { className: (_d = collapsedTableConfig == null ? void 0 : collapsedTableConfig.classNames) == null ? void 0 : _d.tbody }, exData == null ? void 0 : exData.map((exItem) => {
661
+ var _a2;
662
+ return /* @__PURE__ */ React2__default.createElement(
663
+ "tr",
664
+ {
665
+ key: exItem.key,
666
+ className: cn(
667
+ "text-xs",
668
+ (_a2 = collapsedTableConfig == null ? void 0 : collapsedTableConfig.classNames) == null ? void 0 : _a2.tr,
669
+ typeof (collapsedTableConfig == null ? void 0 : collapsedTableConfig.rowCss) === "function" ? collapsedTableConfig == null ? void 0 : collapsedTableConfig.rowCss(__spreadProps(__spreadValues({}, exItem), {
670
+ $parent: item
671
+ })) : collapsedTableConfig == null ? void 0 : collapsedTableConfig.rowCss
672
+ ),
673
+ onClick: (e) => {
674
+ var _a3;
675
+ (_a3 = collapsedTableConfig == null ? void 0 : collapsedTableConfig.onRowClick) == null ? void 0 : _a3.call(collapsedTableConfig, __spreadProps(__spreadValues({}, exItem), {
676
+ $parent: item
677
+ }));
678
+ }
679
+ },
680
+ exColumns == null ? void 0 : exColumns.map((exC) => {
681
+ var _a3;
682
+ return /* @__PURE__ */ React2__default.createElement(
683
+ "td",
684
+ {
685
+ key: exC.key,
686
+ className: cn("py-2 px-3 text-xs", (_a3 = collapsedTableConfig == null ? void 0 : collapsedTableConfig.classNames) == null ? void 0 : _a3.td)
687
+ },
688
+ exC.render ? exC.render(__spreadProps(__spreadValues({}, exItem), {
689
+ $parent: item
690
+ })) : renderFieldValue(exItem[exC.key])
691
+ );
692
+ })
693
+ );
694
+ })));
695
+ }))));
696
+ }
550
697
 
551
698
  export { JSONTable };
552
699
  //# sourceMappingURL=out.js.map
553
- //# sourceMappingURL=chunk-5BJM6R2E.mjs.map
700
+ //# sourceMappingURL=chunk-N4VJILYE.mjs.map