@dappworks/kit 0.4.144 → 0.4.146

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 (47) 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-HRYH37UI.mjs → chunk-WT2ARRCR.mjs} +2 -2
  11. package/dist/{chunk-AIZ7XDNV.mjs → chunk-WYGQ3Y4R.mjs} +14 -14
  12. package/dist/chunk-WYGQ3Y4R.mjs.map +1 -0
  13. package/dist/dev.d.mts +1 -1
  14. package/dist/dev.mjs +2 -2
  15. package/dist/experimental.d.mts +69 -3
  16. package/dist/experimental.mjs +67 -7
  17. package/dist/experimental.mjs.map +1 -1
  18. package/dist/form.d.mts +13 -69
  19. package/dist/form.mjs +12 -61
  20. package/dist/form.mjs.map +1 -1
  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 +4 -5
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/inspector.d.mts +1 -1
  26. package/dist/inspector.mjs +1 -1
  27. package/dist/jsontable.d.mts +2 -2
  28. package/dist/jsontable.mjs +4 -4
  29. package/dist/metrics.d.mts +1 -1
  30. package/dist/metrics.mjs +4 -4
  31. package/dist/plugins.d.mts +33 -7
  32. package/dist/plugins.mjs +162 -34
  33. package/dist/plugins.mjs.map +1 -1
  34. package/dist/{root-C3lZnoCI.d.ts → root-766ae985.d.ts} +1 -1
  35. package/dist/ui.mjs +3 -3
  36. package/dist/utils.d.mts +3 -8
  37. package/dist/utils.mjs +1 -1
  38. package/package.json +4 -4
  39. package/dist/chunk-AIZ7XDNV.mjs.map +0 -1
  40. package/dist/chunk-WS43BV7Y.mjs +0 -9
  41. package/dist/chunk-WS43BV7Y.mjs.map +0 -1
  42. package/dist/chunk-XJMRAPHI.mjs.map +0 -1
  43. /package/dist/{PaginationState-Bmrrw0ky.d.ts → PaginationState-c19e621a.d.ts} +0 -0
  44. /package/dist/{chunk-R4SQKVDQ.mjs.map → chunk-6F7H4PAA.mjs.map} +0 -0
  45. /package/dist/{chunk-SVPD6PC6.mjs.map → chunk-7FF4BCFW.mjs.map} +0 -0
  46. /package/dist/{chunk-QWHU3HBK.mjs.map → chunk-RHDHN6R4.mjs.map} +0 -0
  47. /package/dist/{chunk-HRYH37UI.mjs.map → chunk-WT2ARRCR.mjs.map} +0 -0
@@ -1,9 +1,9 @@
1
- import { PromiseState } from './chunk-QWHU3HBK.mjs';
1
+ import { PromiseState } from './chunk-RHDHN6R4.mjs';
2
2
  import './chunk-4YCP5CJ4.mjs';
3
- import { RootStore } from './chunk-XJMRAPHI.mjs';
3
+ import { RootStore } from './chunk-IDKGZ5T4.mjs';
4
4
  import { _ } from './chunk-MGU3KYGC.mjs';
5
- import { __objRest, __spreadValues, __spreadProps } from './chunk-R4SQKVDQ.mjs';
6
- import React from 'react';
5
+ import { __objRest, __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
6
+ import React2 from 'react';
7
7
  import { makeAutoObservable, toJS, observable } from 'mobx';
8
8
  import axios from 'axios';
9
9
 
@@ -78,9 +78,9 @@ _SlotPlugin.Slot = (_a) => {
78
78
  const slot = slotPlugin.slotMap[name];
79
79
  const Component = slot == null ? void 0 : slot.render;
80
80
  if (!Component) {
81
- return /* @__PURE__ */ React.createElement("div", null);
81
+ return /* @__PURE__ */ React2.createElement("div", null);
82
82
  }
83
- return /* @__PURE__ */ React.createElement(Component, __spreadValues({}, props));
83
+ return /* @__PURE__ */ React2.createElement(Component, __spreadValues({}, props));
84
84
  };
85
85
  var SlotPlugin = _SlotPlugin;
86
86
  var memory = {};
@@ -436,6 +436,66 @@ var AsyncStorage = class {
436
436
  }
437
437
  };
438
438
 
439
- export { AsyncStorage, SlotPlugin, StoragePlugin, jwt };
439
+ // module/Core/standard/Collection.tsx
440
+ var Collection = class {
441
+ constructor(args) {
442
+ this.sid = "Collection";
443
+ this.autoObservable = true;
444
+ this.data = {};
445
+ Object.assign(this, args);
446
+ if (!this.key) {
447
+ this.key = Object.keys(this.data)[0];
448
+ }
449
+ }
450
+ get current() {
451
+ return this.data[this.key];
452
+ }
453
+ setKey(key) {
454
+ this.key = key;
455
+ }
456
+ setValue(key, value) {
457
+ this.data[key] = value;
458
+ }
459
+ };
460
+ var _JSONViewPlugin = class _JSONViewPlugin {
461
+ constructor() {
462
+ this.sid = "JSONViewPlugin";
463
+ this.autoObservable = false;
464
+ this.JSONView = {
465
+ Test: {
466
+ name: "Test",
467
+ render: () => /* @__PURE__ */ React2.createElement("div", null, "Test")
468
+ }
469
+ };
470
+ }
471
+ onNewStore({ rootStore, store }) {
472
+ this.crawl(store);
473
+ }
474
+ crawl(store) {
475
+ if (store == null ? void 0 : store.JSONView) {
476
+ this.JSONView = __spreadValues(__spreadValues({}, this.JSONView), store.JSONView);
477
+ }
478
+ }
479
+ };
480
+ _JSONViewPlugin.JSONView = (props) => {
481
+ const jsonviewplugin = RootStore.Get(_JSONViewPlugin);
482
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, Object.keys(props.uiConfigs).map((key) => {
483
+ const config = props.uiConfigs[key];
484
+ const data = _.get(props.datas, key);
485
+ const Component = jsonviewplugin.JSONView[config.type].render;
486
+ const rootStore = RootStore.init();
487
+ Object.values(data).forEach((i) => {
488
+ if (i.events) {
489
+ Object.entries(i.events).forEach(([k, v]) => {
490
+ i[k] = (args) => rootStore.events.emit(v, __spreadProps(__spreadValues({}, args), { action: k }));
491
+ });
492
+ }
493
+ });
494
+ return /* @__PURE__ */ React2.createElement(Component, { key, data, uiConfig: config });
495
+ }));
496
+ };
497
+ var JSONViewPlugin = _JSONViewPlugin;
498
+
499
+ export { AsyncStorage, Collection, JSONViewPlugin, SlotPlugin, StoragePlugin, jwt };
440
500
  //# sourceMappingURL=out.js.map
441
501
  //# sourceMappingURL=experimental.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../module/Core/Slot.tsx","../module/Core/Storage.tsx","../module/Core/Async.tsx"],"names":["value"],"mappings":"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","sourcesContent":["import { Store } from \"../../store/standard/base\";\nimport { RootStore } from \"../../store/root\";\nimport React, { ReactNode } from \"react\";\n\nexport class SlotPlugin implements Store {\n sid = \"SlotPlugin\";\n stype = \"Plugin\"\n autoObservable?: boolean = false;\n\n slotMap: Store[\"slots\"] = {};\n\n // SlotList = observer(() => {\n // const collection = RootStore.Get(Collection<Store[\"slot\"]>, { sid: \"SlotPlugin.slots\", args: { data: this.slotMap } });\n // //@ts-ignore\n // const Component = collection.current.Component;\n\n // return (\n // <div className=\"h-full flex flex-col md:flex-row text-sm\">\n // <div className=\"w-full md:w-[300px] space-y-1 pr-2 md:border-r-[1px] border-gray-200 dark:border-gray-700 overflow-auto\">\n // {Object.keys(collection.data).map((i) => (\n // <div key={i} className={cn(\"px-2 rounded-md hover:bg-green-600 hover:text-white cursor-pointer\", { \"bg-green-600 text-white\": collection.key === i })} onClick={() => collection.setKey(i)}>\n // {i}\n // </div>\n // ))}\n // </div>\n // <div className=\"mt-4 w-full md:w-[400px] px-4 overflow-auto md:mt-0 md:ml-4\">\n // {/* @ts-ignore */}\n // <Component {...collection.current.input} />\n // {/* @ts-ignore */}\n // {collection.current.input && (\n // <JSONSchemaForm\n // formState={getFormState({\n // uiSize: \"small\",\n // // @ts-ignore\n // data: collection.current.input,\n // onSubmit: (data) => {\n // console.log(data);\n // // @ts-ignore\n // collection.setValue(collection.key, { ...collection.current, input: data });\n // },\n // })}\n // />\n // )}\n // </div>\n // </div>\n // );\n // });\n\n // devtools = {\n // panels: [\n // {\n // title: \"Slot\",\n // render: this.SlotList,\n // },\n // ],\n // };\n\n onNewStore({ rootStore }: { rootStore: RootStore }) {\n Object.values(rootStore.instance).forEach((store) => {\n //@ts-ignore\n if (store.isSlotInit) return;\n if (store.slots) {\n //@ts-ignore\n store.isSlotInit = true;\n //@ts-ignore\n this.slotMap = { ...this.slotMap, ...store.slots };\n }\n });\n }\n\n toJSON() {\n return this.slotMap\n }\n\n static Slot = ({ name, ...props }: { name } & any): ReactNode => {\n const slotPlugin = RootStore.Get(SlotPlugin);\n const slot = slotPlugin.slotMap![name];\n //@ts-ignore\n const Component: React.FC = slot?.render;\n if (!Component) {\n //@ts-ignore\n return <div></div>;\n }\n //@ts-ignore\n return <Component {...props} />;\n };\n\n constructor(args: Partial<SlotPlugin> = {}) {\n Object.assign(this, args);\n }\n}\n","\"use client\";\n\nimport { RootStore } from \"../../store/root\";\nimport { Store } from \"../../store/standard/base\";\nimport { makeAutoObservable, observable, toJS } from \"mobx\";\nimport { _ } from \"../../lib/lodash\";\n// import { AsyncStorage } from \"./Async\";\n\n// import { JSONForm } from \"../../components/JSONForm\"\n\nexport type Engine = {\n name: string;\n get(key): any;\n set(key, value): any;\n remove(key): any;\n};\n\nexport type DataGroup = Record<\n string,\n {\n index: StorageParams<any>;\n children: Record<string, DataGroup>;\n }\n>;\n\nexport type StorageParams<T> = {\n key: string;\n value?: T;\n engine?: Engine;\n _value?: T;\n defaultValue?: T;\n debounce?: number;\n onInit?(value: T): void;\n debounceFn?: any;\n onDebounce?(value: T): void;\n onSet?(value: T): void;\n set?: (value: T) => void;\n setValue?: (value: T) => void;\n reset?: () => void;\n listen?: (func?: (args: { key: string; value: any }) => void) => void;\n};\nconst memory = {};\n\nexport class StoragePlugin implements Store {\n sid = 'StoragePlugin';\n stype = \"Plugin\"\n autoObservable?: boolean = true;\n static engines = {\n memory: {\n name: 'memory',\n get(key) {\n return memory[key];\n },\n set(key, value) {\n return (memory[key] = value);\n },\n remove(key) {\n delete memory[key];\n return;\n },\n },\n localStorage: {\n name: 'localStorage',\n get(key) {\n return StoragePlugin.safeParse(globalThis.localStorage.getItem(key));\n },\n set(key, value) {\n return globalThis.localStorage.setItem(key, JSON.stringify(value));\n },\n remove(key) {\n return globalThis.localStorage.removeItem(key);\n },\n },\n // asyncStorage: {\n // name: 'asyncStorage',\n // get(key) {\n // return RootStore.Get(AsyncStorage).get(key);\n // },\n // set(key, value) {\n // return RootStore.Get(AsyncStorage).set(key, value);\n // },\n // remove(key) {\n // return RootStore.Get(AsyncStorage).remove(key);\n // },\n // },\n };\n engines = StoragePlugin.engines;\n // debounceFn: (val: any) => void;\n // data = {};\n dataMeta: Record<string, StorageParams<any>> = {};\n\n get dataGroup() {\n const tree = Object.values(this.dataMeta).reduce((p, c) => {\n const current = this.dataMeta[c.key];\n const path = c.key;\n const parentPath = path\n .split('.')\n .slice(0, path.length - 1)\n .join('.');\n const key = path.split('.').pop();\n if (!p[parentPath]) {\n const topPath = !parentPath.includes('.');\n _.set(p, parentPath + (topPath ? `.${key}` : ``), {\n ...current,\n toJSON() {\n return typeof current.value === 'object' ? JSON.stringify(toJS(current.value), null, 2) : current.value;\n },\n });\n }\n\n return p;\n }, {});\n\n return tree;\n }\n\n // StorageTools = observer(() => {\n // const collection = RootStore.Get(Collection<any>, { sid: 'StoragePlugin.current', args: { data: this.dataGroup } });\n // const data = collection.current as Record<string, StorageParams<any>>;\n\n // const dataConfig = Object.entries(data).reduce((p, [key, value]) => {\n // p[key] = {\n // title: `${key} (${value.engine.name})`,\n // };\n // return p;\n // }, {});\n\n // return (\n // <div className=\"h-full flex flex-col md:flex-row text-sm\">\n // <div className=\"w-full md:w-[300px] space-y-1 pr-2 md:border-r-[1px] border-gray-200 dark:border-gray-700 overflow-auto\">\n // {Object.keys(collection.data)\n // .sort((a, b) => a.length - b.length)\n // .map((i) => (\n // <div\n // key={i}\n // className={cn('px-2 rounded-md hover:bg-green-600 hover:text-white cursor-pointer', { 'bg-green-600 text-white': collection.key === i })}\n // onClick={() => collection.setKey(i)}\n // >\n // {i}\n // </div>\n // ))}\n // </div>\n // <div className=\"mt-4 w-full overflow-auto md:mt-0\">\n // <JSONForm\n // formData={{ data: JSON.parse(JSON.stringify(data, null, 2)) }}\n // formConfig={{\n // data: dataConfig,\n // }}\n // onChange={(v) => {\n // Object.entries(v.data).forEach(([key, value]) => {\n // data[key].set(StoragePlugin.safeParse(value));\n // });\n // return v;\n // }}\n // // onSet={(v) => {\n // // //TODO: only udpate changed filed\n // // Object.entries(v).forEach(([key, value]) => {\n // // data[key].set(StoragePlugin.safeParse(value));\n // // });\n // // return v;\n // // }}\n // />\n // </div>\n // </div>\n // );\n // });\n\n // devtools = {\n // panels: [\n // {\n // title: 'Storage',\n // render: this.StorageTools,\n // },\n // ],\n // };\n\n static safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n }\n\n set = ({ key, value, engine }: { key: string; value: any; engine?: Engine }) => {\n this.dataMeta[key]._value = value;\n const _engine = engine || this.dataMeta[key]?.engine || this.engines.memory;\n\n //@ts-ignore\n RootStore.init().events.emit(`storage.${key}.update`, { key, value });\n if (this.dataMeta[key].onSet) this.dataMeta[key].onSet(value);\n return _engine.set(key, value);\n };\n\n\n get = <T,>({ key, value, defaultValue, engine = this.engines.memory, ...other }: StorageParams<T>): StorageParams<T> => {\n if (typeof window == 'undefined' && engine.name == 'localStorage') {\n engine = this.engines.memory;\n }\n\n if (value && !defaultValue) {\n defaultValue = value\n }\n const that = this;\n if (!this.dataMeta[key]) {\n const exists = engine.get(key);\n if (engine.name == 'asyncStorage') {\n console.log('get', key, exists);\n }\n if (!exists) {\n engine.set(key, defaultValue);\n }\n const _value = engine.get(key);\n\n this.dataMeta[key] = makeAutoObservable({\n key,\n engine,\n defaultValue,\n ...other,\n _value,\n get value() {\n return that.dataMeta[key]._value;\n },\n set value(value) {\n that.set({ key, value });\n other.debounce && that.dataMeta[key].debounceFn(value)\n },\n set(value) {\n that.set({ key, value });\n other.debounce && that.dataMeta[key].debounceFn(value)\n },\n setValue(value) {\n that.set({ key, value });\n },\n reset() {\n that.set({ key, value: defaultValue });\n },\n toJSON() {\n return that.dataMeta[key]._value;\n },\n listen(func) {\n //@ts-ignore\n RootStore.init().events.on(`storage.${key}.update`, (args) => func(args));\n },\n debounceFn: _.debounce((value) => {\n other?.onDebounce(value);\n }, other.debounce)\n });\n if (this.dataMeta[key].onInit) {\n this.dataMeta[key].onInit(this.dataMeta[key].value);\n }\n }\n\n //@ts-ignore\n return this.dataMeta[key];\n };\n\n remove = ({ key, engine = this.engines.memory }: { key?: string; engine?: Engine }): void => {\n engine.remove(key);\n };\n\n static Get<T>(args: StorageParams<T>): StorageParams<T> {\n const storagePlugin = RootStore.Get(StoragePlugin);\n return storagePlugin.get(args);\n }\n\n static Input<T, U extends StorageParams<T>>(args: U): U {\n const storagePlugin = RootStore.Get(StoragePlugin);\n const data = storagePlugin.get(args);\n //@ts-ignore\n return observable({\n ...args,\n ...data,\n get value() {\n return data.value;\n },\n set value(value) {\n data.set(value);\n },\n onChange(e) {\n data.set(e.target.value);\n },\n });\n }\n\n static Custom<T, U extends StorageParams<T>>(args: U): U & StorageParams<T> {\n const storagePlugin = RootStore.Get(StoragePlugin);\n const { value, _value, ...others } = args;\n const data = storagePlugin.get(args);\n //@ts-ignore\n\n return observable({\n ...args,\n ...data,\n get value() {\n return data.value;\n },\n set value(value) {\n data.set(value);\n },\n onChange(e) {\n data.set(e.target.value);\n },\n });\n }\n\n constructor(args: Partial<StoragePlugin> = {}) {\n Object.assign(this, args);\n }\n}\n","import axios from \"axios\";\nimport { _ } from \"../../lib/lodash\";\nimport { RootStore } from \"../../store/root\";\nimport { Store } from \"../../store/standard/base\";\nimport { PromiseState } from \"../../store/standard/PromiseState\";\nimport { StoragePlugin } from \"./Storage\";\n\n\nexport const jwt = StoragePlugin.Get({\n key: \"asyncStorage.token\",\n value: \"\",\n engine: StoragePlugin.engines.localStorage,\n});\n\nexport class AsyncStorage implements Store {\n sid = \"AsyncStorage\";\n stype = \"Plugin\"\n url = `https://dappkit-async-api.deno.dev/project/${process.env.NEXT_PUBLIC_PROJECT_ID}`;\n forceUpdate = false;\n autoObservable?: boolean = true;\n\n data = new PromiseState({\n context: this,\n value: {},\n function: async () => {\n const res = await axios.get(this.url, {\n params: { forceUpdate: this.forceUpdate },\n });\n //@ts-ignore\n return { ...this.data.value, ...res.data };\n },\n }).on(\"data\", (data) => {\n this.syncStorage();\n });\n\n syncStorage() {\n const data = this.data.value;\n const storage = RootStore.Get(StoragePlugin);\n\n Object.keys(data).map((key) => {\n const value = data[key];\n const target = storage.dataMeta[key];\n if (target) {\n target.set(value);\n }\n });\n }\n\n // devtools = {\n // panels: [\n // {\n // title: \"AsyncStorage\",\n // render: observer(() => {\n\n // return (\n // <div className=\"h-full w-full overflow-auto\">\n // <Input\n // placeholder=\"Please enter your asyncStorage token here\"\n // value={jwt.value}\n // onChange={(e) => jwt.set(e.target.value)}\n // />\n // <JSONEditor\n // className=\"h-full\"\n // initialJson={JSON.stringify(toJS(this.data.value), null, 2)}\n // onChange={(data) => {\n // console.log(\"onChange\", data);\n // helper.deepMerge(this.data.value, data);\n // this.syncStorage();\n // }}\n // onSubmit={async (data) => {\n // if (!jwt.value) {\n // RootStore.Get(ToastPlugin).error(\n // \"Please enter your asyncStorage token first\",\n // );\n // } else {\n // if (!process.env.NEXT_PUBLIC_PROJECT_ID) {\n // RootStore.Get(ToastPlugin).error(\n // \"Please set your project id first\",\n // );\n // }\n // await axios.post(\n // `https://dappkit-async-api.deno.dev/update/${process.env.NEXT_PUBLIC_PROJECT_ID}`,\n // data,\n // {\n // headers: {\n // Authorization: `${jwt.value}`,\n // },\n // },\n // );\n // }\n // this.forceUpdate = true;\n // await this.data.wait({ call: true });\n // RootStore.Get(ToastPlugin).success(\"Update success\");\n // console.log(\"onSubmit\", data);\n // }}\n // />\n // </div>\n // );\n // }),\n // },\n // ],\n // };\n\n constructor(args: Partial<AsyncStorage> = {}) {\n Object.assign(this, args);\n }\n\n get(key) {\n return _.get(this.data.value, key);\n }\n\n async set(key, value) {\n _.set(this.data.value, key, value);\n }\n\n async remove(key) {\n _.remove(this.data.value, key);\n }\n\n onNewStore = ({\n rootStore,\n store,\n }: {\n rootStore: RootStore;\n store: Store;\n }) => {\n if (store.autoAsyncable) {\n this.makeAutoAsyncAble(store);\n }\n };\n\n async makeAutoAsyncAble(instance) {\n const data = await this.data.wait({ call: true });\n if (data[instance.sid]) {\n Object.assign(instance, data[instance.sid]);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../module/Core/Slot.tsx","../module/Core/Storage.tsx","../module/Core/Async.tsx","../module/Core/standard/Collection.tsx","../module/JSONView/index.tsx"],"names":["value","React"],"mappings":"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","sourcesContent":["import { Store } from \"../../store/standard/base\";\nimport { RootStore } from \"../../store/root\";\nimport React, { ReactNode } from \"react\";\n\nexport class SlotPlugin implements Store {\n sid = \"SlotPlugin\";\n stype = \"Plugin\"\n autoObservable?: boolean = false;\n\n slotMap: Store[\"slots\"] = {};\n\n // SlotList = observer(() => {\n // const collection = RootStore.Get(Collection<Store[\"slot\"]>, { sid: \"SlotPlugin.slots\", args: { data: this.slotMap } });\n // //@ts-ignore\n // const Component = collection.current.Component;\n\n // return (\n // <div className=\"h-full flex flex-col md:flex-row text-sm\">\n // <div className=\"w-full md:w-[300px] space-y-1 pr-2 md:border-r-[1px] border-gray-200 dark:border-gray-700 overflow-auto\">\n // {Object.keys(collection.data).map((i) => (\n // <div key={i} className={cn(\"px-2 rounded-md hover:bg-green-600 hover:text-white cursor-pointer\", { \"bg-green-600 text-white\": collection.key === i })} onClick={() => collection.setKey(i)}>\n // {i}\n // </div>\n // ))}\n // </div>\n // <div className=\"mt-4 w-full md:w-[400px] px-4 overflow-auto md:mt-0 md:ml-4\">\n // {/* @ts-ignore */}\n // <Component {...collection.current.input} />\n // {/* @ts-ignore */}\n // {collection.current.input && (\n // <JSONSchemaForm\n // formState={getFormState({\n // uiSize: \"small\",\n // // @ts-ignore\n // data: collection.current.input,\n // onSubmit: (data) => {\n // console.log(data);\n // // @ts-ignore\n // collection.setValue(collection.key, { ...collection.current, input: data });\n // },\n // })}\n // />\n // )}\n // </div>\n // </div>\n // );\n // });\n\n // devtools = {\n // panels: [\n // {\n // title: \"Slot\",\n // render: this.SlotList,\n // },\n // ],\n // };\n\n onNewStore({ rootStore }: { rootStore: RootStore }) {\n Object.values(rootStore.instance).forEach((store) => {\n //@ts-ignore\n if (store.isSlotInit) return;\n if (store.slots) {\n //@ts-ignore\n store.isSlotInit = true;\n //@ts-ignore\n this.slotMap = { ...this.slotMap, ...store.slots };\n }\n });\n }\n\n toJSON() {\n return this.slotMap\n }\n\n static Slot = ({ name, ...props }: { name } & any): ReactNode => {\n const slotPlugin = RootStore.Get(SlotPlugin);\n const slot = slotPlugin.slotMap![name];\n //@ts-ignore\n const Component: React.FC = slot?.render;\n if (!Component) {\n //@ts-ignore\n return <div></div>;\n }\n //@ts-ignore\n return <Component {...props} />;\n };\n\n constructor(args: Partial<SlotPlugin> = {}) {\n Object.assign(this, args);\n }\n}\n","\"use client\";\n\nimport { RootStore } from \"../../store/root\";\nimport { Store } from \"../../store/standard/base\";\nimport { makeAutoObservable, observable, toJS } from \"mobx\";\nimport { _ } from \"../../lib/lodash\";\n// import { AsyncStorage } from \"./Async\";\n\n// import { JSONForm } from \"../../components/JSONForm\"\n\nexport type Engine = {\n name: string;\n get(key): any;\n set(key, value): any;\n remove(key): any;\n};\n\nexport type DataGroup = Record<\n string,\n {\n index: StorageParams<any>;\n children: Record<string, DataGroup>;\n }\n>;\n\nexport type StorageParams<T> = {\n key: string;\n value?: T;\n engine?: Engine;\n _value?: T;\n defaultValue?: T;\n debounce?: number;\n onInit?(value: T): void;\n debounceFn?: any;\n onDebounce?(value: T): void;\n onSet?(value: T): void;\n set?: (value: T) => void;\n setValue?: (value: T) => void;\n reset?: () => void;\n listen?: (func?: (args: { key: string; value: any }) => void) => void;\n};\nconst memory = {};\n\nexport class StoragePlugin implements Store {\n sid = 'StoragePlugin';\n stype = \"Plugin\"\n autoObservable?: boolean = true;\n static engines = {\n memory: {\n name: 'memory',\n get(key) {\n return memory[key];\n },\n set(key, value) {\n return (memory[key] = value);\n },\n remove(key) {\n delete memory[key];\n return;\n },\n },\n localStorage: {\n name: 'localStorage',\n get(key) {\n return StoragePlugin.safeParse(globalThis.localStorage.getItem(key));\n },\n set(key, value) {\n return globalThis.localStorage.setItem(key, JSON.stringify(value));\n },\n remove(key) {\n return globalThis.localStorage.removeItem(key);\n },\n },\n // asyncStorage: {\n // name: 'asyncStorage',\n // get(key) {\n // return RootStore.Get(AsyncStorage).get(key);\n // },\n // set(key, value) {\n // return RootStore.Get(AsyncStorage).set(key, value);\n // },\n // remove(key) {\n // return RootStore.Get(AsyncStorage).remove(key);\n // },\n // },\n };\n engines = StoragePlugin.engines;\n // debounceFn: (val: any) => void;\n // data = {};\n dataMeta: Record<string, StorageParams<any>> = {};\n\n get dataGroup() {\n const tree = Object.values(this.dataMeta).reduce((p, c) => {\n const current = this.dataMeta[c.key];\n const path = c.key;\n const parentPath = path\n .split('.')\n .slice(0, path.length - 1)\n .join('.');\n const key = path.split('.').pop();\n if (!p[parentPath]) {\n const topPath = !parentPath.includes('.');\n _.set(p, parentPath + (topPath ? `.${key}` : ``), {\n ...current,\n toJSON() {\n return typeof current.value === 'object' ? JSON.stringify(toJS(current.value), null, 2) : current.value;\n },\n });\n }\n\n return p;\n }, {});\n\n return tree;\n }\n\n // StorageTools = observer(() => {\n // const collection = RootStore.Get(Collection<any>, { sid: 'StoragePlugin.current', args: { data: this.dataGroup } });\n // const data = collection.current as Record<string, StorageParams<any>>;\n\n // const dataConfig = Object.entries(data).reduce((p, [key, value]) => {\n // p[key] = {\n // title: `${key} (${value.engine.name})`,\n // };\n // return p;\n // }, {});\n\n // return (\n // <div className=\"h-full flex flex-col md:flex-row text-sm\">\n // <div className=\"w-full md:w-[300px] space-y-1 pr-2 md:border-r-[1px] border-gray-200 dark:border-gray-700 overflow-auto\">\n // {Object.keys(collection.data)\n // .sort((a, b) => a.length - b.length)\n // .map((i) => (\n // <div\n // key={i}\n // className={cn('px-2 rounded-md hover:bg-green-600 hover:text-white cursor-pointer', { 'bg-green-600 text-white': collection.key === i })}\n // onClick={() => collection.setKey(i)}\n // >\n // {i}\n // </div>\n // ))}\n // </div>\n // <div className=\"mt-4 w-full overflow-auto md:mt-0\">\n // <JSONForm\n // formData={{ data: JSON.parse(JSON.stringify(data, null, 2)) }}\n // formConfig={{\n // data: dataConfig,\n // }}\n // onChange={(v) => {\n // Object.entries(v.data).forEach(([key, value]) => {\n // data[key].set(StoragePlugin.safeParse(value));\n // });\n // return v;\n // }}\n // // onSet={(v) => {\n // // //TODO: only udpate changed filed\n // // Object.entries(v).forEach(([key, value]) => {\n // // data[key].set(StoragePlugin.safeParse(value));\n // // });\n // // return v;\n // // }}\n // />\n // </div>\n // </div>\n // );\n // });\n\n // devtools = {\n // panels: [\n // {\n // title: 'Storage',\n // render: this.StorageTools,\n // },\n // ],\n // };\n\n static safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n }\n\n set = ({ key, value, engine }: { key: string; value: any; engine?: Engine }) => {\n this.dataMeta[key]._value = value;\n const _engine = engine || this.dataMeta[key]?.engine || this.engines.memory;\n\n //@ts-ignore\n RootStore.init().events.emit(`storage.${key}.update`, { key, value });\n if (this.dataMeta[key].onSet) this.dataMeta[key].onSet(value);\n return _engine.set(key, value);\n };\n\n\n get = <T,>({ key, value, defaultValue, engine = this.engines.memory, ...other }: StorageParams<T>): StorageParams<T> => {\n if (typeof window == 'undefined' && engine.name == 'localStorage') {\n engine = this.engines.memory;\n }\n\n if (value && !defaultValue) {\n defaultValue = value\n }\n const that = this;\n if (!this.dataMeta[key]) {\n const exists = engine.get(key);\n if (engine.name == 'asyncStorage') {\n console.log('get', key, exists);\n }\n if (!exists) {\n engine.set(key, defaultValue);\n }\n const _value = engine.get(key);\n\n this.dataMeta[key] = makeAutoObservable({\n key,\n engine,\n defaultValue,\n ...other,\n _value,\n get value() {\n return that.dataMeta[key]._value;\n },\n set value(value) {\n that.set({ key, value });\n other.debounce && that.dataMeta[key].debounceFn(value)\n },\n set(value) {\n that.set({ key, value });\n other.debounce && that.dataMeta[key].debounceFn(value)\n },\n setValue(value) {\n that.set({ key, value });\n },\n reset() {\n that.set({ key, value: defaultValue });\n },\n toJSON() {\n return that.dataMeta[key]._value;\n },\n listen(func) {\n //@ts-ignore\n RootStore.init().events.on(`storage.${key}.update`, (args) => func(args));\n },\n debounceFn: _.debounce((value) => {\n other?.onDebounce(value);\n }, other.debounce)\n });\n if (this.dataMeta[key].onInit) {\n this.dataMeta[key].onInit(this.dataMeta[key].value);\n }\n }\n\n //@ts-ignore\n return this.dataMeta[key];\n };\n\n remove = ({ key, engine = this.engines.memory }: { key?: string; engine?: Engine }): void => {\n engine.remove(key);\n };\n\n static Get<T>(args: StorageParams<T>): StorageParams<T> {\n const storagePlugin = RootStore.Get(StoragePlugin);\n return storagePlugin.get(args);\n }\n\n static Input<T, U extends StorageParams<T>>(args: U): U {\n const storagePlugin = RootStore.Get(StoragePlugin);\n const data = storagePlugin.get(args);\n //@ts-ignore\n return observable({\n ...args,\n ...data,\n get value() {\n return data.value;\n },\n set value(value) {\n data.set(value);\n },\n onChange(e) {\n data.set(e.target.value);\n },\n });\n }\n\n static Custom<T, U extends StorageParams<T>>(args: U): U & StorageParams<T> {\n const storagePlugin = RootStore.Get(StoragePlugin);\n const { value, _value, ...others } = args;\n const data = storagePlugin.get(args);\n //@ts-ignore\n\n return observable({\n ...args,\n ...data,\n get value() {\n return data.value;\n },\n set value(value) {\n data.set(value);\n },\n onChange(e) {\n data.set(e.target.value);\n },\n });\n }\n\n constructor(args: Partial<StoragePlugin> = {}) {\n Object.assign(this, args);\n }\n}\n","import axios from \"axios\";\nimport { _ } from \"../../lib/lodash\";\nimport { RootStore } from \"../../store/root\";\nimport { Store } from \"../../store/standard/base\";\nimport { PromiseState } from \"../../store/standard/PromiseState\";\nimport { StoragePlugin } from \"./Storage\";\n\n\nexport const jwt = StoragePlugin.Get({\n key: \"asyncStorage.token\",\n value: \"\",\n engine: StoragePlugin.engines.localStorage,\n});\n\nexport class AsyncStorage implements Store {\n sid = \"AsyncStorage\";\n stype = \"Plugin\"\n url = `https://dappkit-async-api.deno.dev/project/${process.env.NEXT_PUBLIC_PROJECT_ID}`;\n forceUpdate = false;\n autoObservable?: boolean = true;\n\n data = new PromiseState({\n context: this,\n value: {},\n function: async () => {\n const res = await axios.get(this.url, {\n params: { forceUpdate: this.forceUpdate },\n });\n //@ts-ignore\n return { ...this.data.value, ...res.data };\n },\n }).on(\"data\", (data) => {\n this.syncStorage();\n });\n\n syncStorage() {\n const data = this.data.value;\n const storage = RootStore.Get(StoragePlugin);\n\n Object.keys(data).map((key) => {\n const value = data[key];\n const target = storage.dataMeta[key];\n if (target) {\n target.set(value);\n }\n });\n }\n\n // devtools = {\n // panels: [\n // {\n // title: \"AsyncStorage\",\n // render: observer(() => {\n\n // return (\n // <div className=\"h-full w-full overflow-auto\">\n // <Input\n // placeholder=\"Please enter your asyncStorage token here\"\n // value={jwt.value}\n // onChange={(e) => jwt.set(e.target.value)}\n // />\n // <JSONEditor\n // className=\"h-full\"\n // initialJson={JSON.stringify(toJS(this.data.value), null, 2)}\n // onChange={(data) => {\n // console.log(\"onChange\", data);\n // helper.deepMerge(this.data.value, data);\n // this.syncStorage();\n // }}\n // onSubmit={async (data) => {\n // if (!jwt.value) {\n // RootStore.Get(ToastPlugin).error(\n // \"Please enter your asyncStorage token first\",\n // );\n // } else {\n // if (!process.env.NEXT_PUBLIC_PROJECT_ID) {\n // RootStore.Get(ToastPlugin).error(\n // \"Please set your project id first\",\n // );\n // }\n // await axios.post(\n // `https://dappkit-async-api.deno.dev/update/${process.env.NEXT_PUBLIC_PROJECT_ID}`,\n // data,\n // {\n // headers: {\n // Authorization: `${jwt.value}`,\n // },\n // },\n // );\n // }\n // this.forceUpdate = true;\n // await this.data.wait({ call: true });\n // RootStore.Get(ToastPlugin).success(\"Update success\");\n // console.log(\"onSubmit\", data);\n // }}\n // />\n // </div>\n // );\n // }),\n // },\n // ],\n // };\n\n constructor(args: Partial<AsyncStorage> = {}) {\n Object.assign(this, args);\n }\n\n get(key) {\n return _.get(this.data.value, key);\n }\n\n async set(key, value) {\n _.set(this.data.value, key, value);\n }\n\n async remove(key) {\n _.remove(this.data.value, key);\n }\n\n onNewStore = ({\n rootStore,\n store,\n }: {\n rootStore: RootStore;\n store: Store;\n }) => {\n if (store.autoAsyncable) {\n this.makeAutoAsyncAble(store);\n }\n };\n\n async makeAutoAsyncAble(instance) {\n const data = await this.data.wait({ call: true });\n if (data[instance.sid]) {\n Object.assign(instance, data[instance.sid]);\n }\n }\n}\n","\nimport { Store } from '../../../store/standard/base';\n\nexport class Collection<T = any> implements Store {\n sid = 'Collection';\n autoObservable = true;\n\n key: string;\n data: {\n [key: string]: T;\n } = {};\n constructor(args: Partial<Collection<T>>) {\n Object.assign(this, args);\n if (!this.key) {\n this.key = Object.keys(this.data)[0];\n }\n }\n get current(): T {\n return this.data[this.key];\n }\n\n setKey(key: string) {\n this.key = key;\n }\n setValue(key: string, value: T) {\n this.data[key] = value;\n }\n}\n","import React, { HTMLAttributeAnchorTarget } from \"react\";\nimport { _ } from \"../../lib/lodash\";\nimport { RootStore } from \"../../store\";\nimport { Store } from \"../../store/standard/base\";\n\nexport type JSONViewType = {\n className?: string;\n children?: any;\n data?: Record<string, JSONDataType>;\n datas?: Record<string, Record<string, JSONDataType> | JSONDataType[]>;\n uiConfig?: {\n type: string;\n className?: Record<string, string>;\n slots?: Record<string, any>;\n [key: string]: any;\n };\n uiConfigs?: Record<string, JSONViewType['uiConfig']>;\n};\n\nexport type JSONDataType = {\n title?: string;\n icon?: any;\n render?: any;\n className?: string;\n type?: 'divider' | 'checkbox' | 'label' | 'radio';\n shortcut?: string;\n disabled?: boolean;\n children?: Record<string, JSONDataType>;\n value?: any;\n link?: any;\n target?: HTMLAttributeAnchorTarget;\n needAuth?: boolean;\n events?: Record<string, any>;\n onChange?: (args: { e: any; v: any }) => void;\n onClick?: (args: { e: any; v: any }) => void;\n};\n\nexport class JSONViewPlugin implements Store {\n sid = 'JSONViewPlugin';\n autoObservable?: boolean = false;\n\n JSONView = {\n Test: {\n name: 'Test',\n render: () => <div>Test</div>,\n },\n };\n\n onNewStore({ rootStore, store }: { rootStore: RootStore<any>; store: Store }): void {\n this.crawl(store);\n }\n\n crawl(store: Store) {\n if (store?.JSONView) {\n this.JSONView = { ...this.JSONView, ...store.JSONView };\n }\n }\n\n static JSONView = (props: JSONViewType) => {\n const jsonviewplugin = RootStore.Get(JSONViewPlugin);\n\n return (\n <>\n {Object.keys(props.uiConfigs).map((key) => {\n const config = props.uiConfigs[key] as any;\n const data = _.get(props.datas, key);\n const Component = jsonviewplugin.JSONView[config.type].render;\n const rootStore = RootStore.init();\n Object.values(data).forEach((i: any) => {\n if (i.events) {\n Object.entries(i.events).forEach(([k, v]) => {\n i[k] = (args) => rootStore.events.emit(v as any, { ...args, action: k });\n });\n }\n });\n\n return <Component key={key} data={data} uiConfig={config} />;\n })}\n </>\n );\n };\n}"]}
package/dist/form.d.mts CHANGED
@@ -3,15 +3,15 @@ import { ButtonProps, TabsProps, CheckboxProps, SlotsToClasses, InputSlots, Inpu
3
3
  import { UiSchema, RJSFSchema, WidgetProps, Widget } from '@rjsf/utils';
4
4
  import * as _rjsf_validator_ajv8_lib_validator from '@rjsf/validator-ajv8/lib/validator';
5
5
  import Form, { IChangeEvent } from '@rjsf/core';
6
- import { T as ThemeType } from './index-CUKoRIdy.js';
6
+ import { T as ThemeType } from './index-38be834f.js';
7
7
  import { EditorProps } from '@monaco-editor/react';
8
- import { S as Store, R as RootStore } from './root-C3lZnoCI.js';
8
+ import { S as Store } from './root-766ae985.js';
9
9
  import EventEmitter from 'events';
10
10
  import 'typed-emitter';
11
11
 
12
12
  declare class JSONSchemaFormState<T, U = UiSchema> {
13
13
  formRef: LegacyRef<Form<any, RJSFSchema, any>> & Ref<Form<any, RJSFSchema, any>>;
14
- value: JSONValue<T>;
14
+ value: JSONSchemaValue<T>;
15
15
  schema: RJSFSchema;
16
16
  uiSchema: U;
17
17
  reactive: boolean;
@@ -26,35 +26,30 @@ declare class JSONSchemaFormState<T, U = UiSchema> {
26
26
  getDymaicData: () => {
27
27
  ready: boolean;
28
28
  };
29
- onChange: (e: IChangeEvent<T>, id: string) => void;
29
+ onChange: (e: IChangeEvent<T>, id?: string) => void;
30
30
  onSubmit: (e: IChangeEvent<T>) => void;
31
31
  afterSubmit: (e: IChangeEvent<T>) => void;
32
- afterChange: (e: IChangeEvent<T>, id: string) => void;
32
+ afterChange: (e: IChangeEvent<T>, id?: string) => void;
33
33
  reset({ force }?: {
34
34
  force?: boolean;
35
35
  }): this;
36
36
  customValidate: (formData: T, errors: any) => any;
37
37
  constructor(args?: Partial<JSONSchemaFormState<T, U>>);
38
38
  }
39
- declare abstract class JSONSchemaValue<T> {
39
+ declare class JSONSchemaValue<T> {
40
40
  value?: T;
41
41
  default?: T;
42
42
  constructor(args?: Partial<JSONSchemaValue<T>>);
43
- set(value: Partial<T>, { onSet }?: {
44
- onSet?: boolean;
45
- }): T;
43
+ set(value: Partial<T>): T;
46
44
  onSet(value: Partial<T>): Partial<T>;
47
45
  get(): T;
48
46
  getFormat(value: T): T;
49
47
  reset(): void;
50
48
  }
51
- declare class JSONValue<T> extends JSONSchemaValue<T> {
52
- constructor(args?: Partial<JSONValue<T>>);
53
- }
54
49
 
55
50
  type LayoutType = 'TabLayout' | 'GridLayout' | 'ListLayout' | 'SimpleLayout';
56
51
  type FieldLayoutType<T, F extends keyof T> = Array<keyof NonNullable<T[F]>> | Array<Array<keyof NonNullable<T[F]>> | keyof NonNullable<T[F]>>;
57
- type customButtonProps<T> = ({
52
+ type CustomButtonProps<T> = ({
58
53
  title: string;
59
54
  onClick: (formKey: FormKey<T>, data: FormDataOfKey<T>, setLoading: Dispatch<SetStateAction<boolean>>) => void;
60
55
  } & ButtonProps)[];
@@ -63,10 +58,10 @@ type FormLayoutType<T, L> = L extends 'TabLayout' | 'ListLayout' | 'SimpleLayout
63
58
  title?: string;
64
59
  titleBoxCss?: string;
65
60
  fieldLayout?: FieldLayoutType<T, F>;
66
- customButtonProps?: customButtonProps<T>;
67
61
  submitButtonProps?: ButtonProps & {
68
62
  onAfterSubmit?: (formKey: FormKey<T>, data: FormDataOfKey<T>, setLoading: Dispatch<SetStateAction<boolean>>) => void;
69
63
  };
64
+ customButtonProps?: CustomButtonProps<T>;
70
65
  };
71
66
  } : L extends 'GridLayout' ? {
72
67
  [F in keyof T]?: {
@@ -75,10 +70,10 @@ type FormLayoutType<T, L> = L extends 'TabLayout' | 'ListLayout' | 'SimpleLayout
75
70
  fieldLayout?: FieldLayoutType<T, F>;
76
71
  colSpan?: number;
77
72
  cardCss?: string;
78
- customButtonProps?: customButtonProps<T>;
79
73
  submitButtonProps?: ButtonProps & {
80
74
  onAfterSubmit?: (formKey: FormKey<T>, data: FormDataOfKey<T>, setLoading: Dispatch<SetStateAction<boolean>>) => void;
81
75
  };
76
+ customButtonProps?: CustomButtonProps<T>;
82
77
  };
83
78
  } : never;
84
79
  type LayoutConfigType<T, L> = L extends 'TabLayout' ? {
@@ -310,7 +305,7 @@ declare class ComplexFormModalStore<T extends FormDataType> implements Store {
310
305
  modalSize: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'xs' | '3xl' | '4xl' | '5xl';
311
306
  scrollBehavior?: 'normal' | 'inside' | 'outside';
312
307
  isDismissable: boolean;
313
- event: EventEmitter<[never]>;
308
+ event: EventEmitter;
314
309
  onBatchSubmit?: (data: T, setLoading?: Dispatch<SetStateAction<boolean>>) => void;
315
310
  onSet?: (v: FormDataOfKey<T>, form: JSONSchemaFormState<FormDataOfKey<T>, UiSchema>) => FormDataOfKey<T>;
316
311
  onChange?: (data: Partial<T>) => void;
@@ -340,7 +335,7 @@ declare class FormModalStore<T = {
340
335
  modalSize: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'xs' | '3xl' | '4xl' | '5xl';
341
336
  scrollBehavior?: 'normal' | 'inside' | 'outside';
342
337
  closeOnOverlayClick: boolean;
343
- event: EventEmitter<[never]>;
338
+ event: EventEmitter;
344
339
  onAfterSubmit?: (data: T) => void;
345
340
  constructor(args?: Partial<FormModalStore>);
346
341
  setData(v: Partial<FormModalStore>): void;
@@ -362,55 +357,4 @@ declare function getSimpleFormData<T>(data: T, metadata: {
362
357
  [key: string]: any;
363
358
  } & Partial<JSONSchemaFormState<any>>, config: Partial<FormModalStore>, onSet?: (v: T, form: JSONSchemaFormState<T, UiSchema>) => T, theme?: ThemeType): Promise<T>;
364
359
 
365
- type JSONViewType = {
366
- className?: string;
367
- children?: any;
368
- data?: Record<string, JSONDataType>;
369
- datas?: Record<string, Record<string, JSONDataType> | JSONDataType[]>;
370
- uiConfig?: {
371
- type: string;
372
- className?: Record<string, string>;
373
- slots?: Record<string, any>;
374
- [key: string]: any;
375
- };
376
- uiConfigs?: Record<string, JSONViewType["uiConfig"]>;
377
- };
378
- type JSONDataType = {
379
- title?: string;
380
- icon?: any;
381
- render?: any;
382
- className?: string;
383
- type?: "divider" | "checkbox" | "label" | "radio";
384
- shortcut?: string;
385
- disabled?: boolean;
386
- children?: Record<string, JSONDataType>;
387
- value?: any;
388
- link?: any;
389
- events?: Record<string, any>;
390
- onChange?: (args: {
391
- e: any;
392
- v: any;
393
- }) => void;
394
- onClick?: (args: {
395
- e: any;
396
- v: any;
397
- }) => void;
398
- };
399
- declare class JSONViewPlugin implements Store {
400
- sid: string;
401
- autoObservable?: boolean;
402
- JSONView: {
403
- Test: {
404
- name: string;
405
- render: () => React.JSX.Element;
406
- };
407
- };
408
- onNewStore({ rootStore, store, }: {
409
- rootStore: RootStore<any>;
410
- store: Store;
411
- }): void;
412
- crawl(store: Store): void;
413
- static JSONView: (props: JSONViewType) => React.JSX.Element;
414
- }
415
-
416
- export { CheckboxWidget, type CheckboxWidgetProps, type CheckboxWidgetUIOptions, ComplexFormModalStore, DatePickerWidget, type DatePickerWidgetProps, type DatePickerWidgetUIOptions, EditorWidget, type EditorWidgetProps, type EditorWidgetUIOptions, type FieldLayoutType, type FormConfigType, type FormDataOfKey, type FormDataType, type FormKey, type FormLayoutType, FormModalStore, InputWidget, type InputWidgetProps, type InputWidgetUIOptions, type JSONDataType, JSONForm, type JSONFormProps, JSONSchemaForm, JSONViewPlugin, type JSONViewType, type LayoutConfigType, type LayoutType, MultipleSelectWidget, type MultipleSelectWidgetProps, type MultipleSelectWidgetUIOptions, SelectWidget, type SelectWidgetProps, type SelectWidgetUIOptions, TextareaWidget, type TextareaWidgetProps, type TextareaWidgetUIOptions, getComplexFormData, getFormData, getFormState, getSimpleFormData };
360
+ export { CheckboxWidget, CheckboxWidgetProps, CheckboxWidgetUIOptions, ComplexFormModalStore, DatePickerWidget, DatePickerWidgetProps, DatePickerWidgetUIOptions, EditorWidget, EditorWidgetProps, EditorWidgetUIOptions, FieldLayoutType, FormConfigType, FormDataOfKey, FormDataType, FormKey, FormLayoutType, FormModalStore, InputWidget, InputWidgetProps, InputWidgetUIOptions, JSONForm, JSONFormProps, JSONSchemaForm, LayoutConfigType, LayoutType, MultipleSelectWidget, MultipleSelectWidgetProps, MultipleSelectWidgetUIOptions, SelectWidget, SelectWidgetProps, SelectWidgetUIOptions, TextareaWidget, TextareaWidgetProps, TextareaWidgetUIOptions, getComplexFormData, getFormData, getFormState, getSimpleFormData };
package/dist/form.mjs CHANGED
@@ -1,16 +1,15 @@
1
1
  import { getStyle } from './chunk-5SFAINN6.mjs';
2
- import { useStore } from './chunk-WS43BV7Y.mjs';
3
- import { RootStore } from './chunk-XJMRAPHI.mjs';
2
+ import { useStore, RootStore } from './chunk-IDKGZ5T4.mjs';
4
3
  import { helper } from './chunk-Q3AD5RHQ.mjs';
5
4
  import { _ } from './chunk-MGU3KYGC.mjs';
6
- import { cn } from './chunk-AIZ7XDNV.mjs';
7
- import { __objRest, __spreadValues, __spreadProps } from './chunk-R4SQKVDQ.mjs';
5
+ import { cn } from './chunk-WYGQ3Y4R.mjs';
6
+ import { __objRest, __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
8
7
  import React7, { useEffect, useMemo, useState, useRef, useCallback, createRef } from 'react';
9
8
  import { Modal, ModalContent, ModalHeader, ModalBody, Checkbox, Input, Select, SelectItem, Button, Textarea, DatePicker, Chip, Card, Tabs, Tab } from '@nextui-org/react';
10
9
  import { Check, ChevronUp, ChevronDown } from 'lucide-react';
11
10
  import MonacoEditor from '@monaco-editor/react';
12
11
  import validator from '@rjsf/validator-ajv8';
13
- import { makeAutoObservable, makeObservable, computed, observable, action, toJS } from 'mobx';
12
+ import { toJS, makeAutoObservable, makeObservable, computed, observable, action } from 'mobx';
14
13
  import Form from '@rjsf/core';
15
14
  import * as Utils from '@rjsf/utils';
16
15
  import { observer, useLocalObservable } from 'mobx-react-lite';
@@ -377,7 +376,7 @@ var EditorWidget = ({ label, options = {}, value, required, uiSchema, disabled,
377
376
  };
378
377
  var JSONSchemaFormState = class {
379
378
  constructor(args = {}) {
380
- this.value = new JSONValue();
379
+ this.value = new JSONSchemaValue();
381
380
  this.reactive = true;
382
381
  this.readonly = false;
383
382
  this.liveValidate = false;
@@ -436,7 +435,7 @@ var JSONSchemaValue = class {
436
435
  set: action
437
436
  });
438
437
  }
439
- set(value, { onSet = true } = {}) {
438
+ set(value) {
440
439
  value = this.onSet(value);
441
440
  const newVal = helper.deepMerge(this.value, value);
442
441
  this.value = toJS(newVal);
@@ -455,11 +454,6 @@ var JSONSchemaValue = class {
455
454
  this.set(this.default);
456
455
  }
457
456
  };
458
- var JSONValue = class extends JSONSchemaValue {
459
- constructor(args = {}) {
460
- super(args);
461
- }
462
- };
463
457
 
464
458
  // components/JSONForm/Layouts/format.tsx
465
459
  var getFormState = (props, formLayout = {}, theme = "default") => {
@@ -529,7 +523,7 @@ var getFormState = (props, formLayout = {}, theme = "default") => {
529
523
  required
530
524
  };
531
525
  const form = new JSONSchemaFormState({
532
- //@ts-ignore
526
+ // @ts-ignore
533
527
  schema,
534
528
  uiSchema: __spreadProps(__spreadValues({
535
529
  "ui:submitButtonOptions": {
@@ -543,7 +537,7 @@ var getFormState = (props, formLayout = {}, theme = "default") => {
543
537
  // },
544
538
  afterChange: (e, id) => {
545
539
  const { formData: formData2 } = e;
546
- if (formData2) {
540
+ if (formData2 && id) {
547
541
  const field = id.replace("root_", "");
548
542
  const data = {
549
543
  [key]: {
@@ -553,9 +547,8 @@ var getFormState = (props, formLayout = {}, theme = "default") => {
553
547
  onChange == null ? void 0 : onChange(data);
554
548
  }
555
549
  },
556
- value: new JSONValue({
550
+ value: new JSONSchemaValue({
557
551
  default: value,
558
- //@ts-ignore
559
552
  onSet: (v) => {
560
553
  if (onSet) {
561
554
  return onSet(v, form);
@@ -748,7 +741,7 @@ var JSONSchemaForm = observer(({ children, formState }) => {
748
741
  ErrorListTemplate,
749
742
  ButtonTemplates: { SubmitButton: SubmitButton2 }
750
743
  },
751
- formData: formState.formData,
744
+ formData: toJS(formState.formData),
752
745
  readonly: formState.readonly,
753
746
  uiSchema: formState.uiSchema,
754
747
  schema: formState.schema,
@@ -1484,9 +1477,8 @@ function getFormState2({
1484
1477
  formModal.event.emit("afterSubmit", e.formData);
1485
1478
  }
1486
1479
  },
1487
- value: new JSONValue({
1480
+ value: new JSONSchemaValue({
1488
1481
  default: value,
1489
- //@ts-ignore
1490
1482
  onSet: (v) => onSet(v, form)
1491
1483
  })
1492
1484
  });
@@ -1501,48 +1493,7 @@ async function getSimpleFormData(data, metadata = {}, config, onSet = (v, form)
1501
1493
  form
1502
1494
  }));
1503
1495
  }
1504
- var _JSONViewPlugin = class _JSONViewPlugin {
1505
- constructor() {
1506
- this.sid = "JSONViewPlugin";
1507
- this.autoObservable = false;
1508
- this.JSONView = {
1509
- Test: {
1510
- name: "Test",
1511
- render: () => /* @__PURE__ */ React7.createElement("div", null, "Test")
1512
- }
1513
- };
1514
- }
1515
- onNewStore({
1516
- rootStore,
1517
- store
1518
- }) {
1519
- this.crawl(store);
1520
- }
1521
- crawl(store) {
1522
- if (store == null ? void 0 : store.JSONView) {
1523
- this.JSONView = __spreadValues(__spreadValues({}, this.JSONView), store.JSONView);
1524
- }
1525
- }
1526
- };
1527
- _JSONViewPlugin.JSONView = (props) => {
1528
- const jsonviewplugin = RootStore.Get(_JSONViewPlugin);
1529
- return /* @__PURE__ */ React7.createElement(React7.Fragment, null, Object.keys(props.uiConfigs).map((key) => {
1530
- const config = props.uiConfigs[key];
1531
- const data = _.get(props.datas, key);
1532
- const Component = jsonviewplugin.JSONView[config.type].render;
1533
- const rootStore = RootStore.init();
1534
- Object.values(data).forEach((i) => {
1535
- if (i.events) {
1536
- Object.entries(i.events).forEach(([k, v]) => {
1537
- i[k] = (args) => rootStore.events.emit(v, __spreadProps(__spreadValues({}, args), { action: k }));
1538
- });
1539
- }
1540
- });
1541
- return /* @__PURE__ */ React7.createElement(Component, { key, data, uiConfig: config });
1542
- }));
1543
- };
1544
- var JSONViewPlugin = _JSONViewPlugin;
1545
1496
 
1546
- export { CheckboxWidget, ComplexFormModalStore, DatePickerWidget, EditorWidget, FormModalStore, InputWidget, JSONForm, JSONSchemaForm, JSONViewPlugin, MultipleSelectWidget, SelectWidget, TextareaWidget, getComplexFormData, getFormData, getFormState2 as getFormState, getSimpleFormData };
1497
+ export { CheckboxWidget, ComplexFormModalStore, DatePickerWidget, EditorWidget, FormModalStore, InputWidget, JSONForm, JSONSchemaForm, MultipleSelectWidget, SelectWidget, TextareaWidget, getComplexFormData, getFormData, getFormState2 as getFormState, getSimpleFormData };
1547
1498
  //# sourceMappingURL=out.js.map
1548
1499
  //# sourceMappingURL=form.mjs.map