@dappworks/kit 0.5.41 → 0.5.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PromiseState-e64b3707.d.ts → PromiseState-8EAu4Zv4.d.mts} +1 -1
- package/dist/{StorageState-cfd942cb.d.ts → StorageState-qapaHguM.d.mts} +1 -1
- package/dist/aiem.d.mts +14 -15
- package/dist/aiem.mjs +5 -5
- package/dist/aiem.mjs.map +1 -1
- package/dist/{chunk-ISV4OEKJ.mjs → chunk-2B3FO5P6.mjs} +5 -5
- package/dist/chunk-2B3FO5P6.mjs.map +1 -0
- package/dist/{chunk-M5Y3VYMJ.mjs → chunk-6HA5WR5H.mjs} +9 -15
- package/dist/chunk-6HA5WR5H.mjs.map +1 -0
- package/dist/{chunk-FJHGIW3I.mjs → chunk-AFXQRBS6.mjs} +3 -3
- package/dist/chunk-AFXQRBS6.mjs.map +1 -0
- package/dist/chunk-GKAU4P5I.mjs +1 -1
- package/dist/chunk-GKAU4P5I.mjs.map +1 -1
- package/dist/{chunk-SL5OV6OR.mjs → chunk-GPPSD2BO.mjs} +5 -7
- package/dist/chunk-GPPSD2BO.mjs.map +1 -0
- package/dist/chunk-IMOLRP7I.mjs +1 -1
- package/dist/chunk-IMOLRP7I.mjs.map +1 -1
- package/dist/chunk-K7LFG5BA.mjs +2 -2
- package/dist/chunk-K7LFG5BA.mjs.map +1 -1
- package/dist/{chunk-3XIPR2M3.mjs → chunk-L5VZQRXB.mjs} +7 -8
- package/dist/chunk-L5VZQRXB.mjs.map +1 -0
- package/dist/{chunk-2N4HH4ZF.mjs → chunk-NCGC2KDE.mjs} +4 -6
- package/dist/chunk-NCGC2KDE.mjs.map +1 -0
- package/dist/chunk-ONVPCAMQ.mjs +1 -1
- package/dist/chunk-ONVPCAMQ.mjs.map +1 -1
- package/dist/{chunk-C5BPNLKH.mjs → chunk-TEVYTENF.mjs} +4 -4
- package/dist/chunk-TEVYTENF.mjs.map +1 -0
- package/dist/{chunk-4F33QAJ4.mjs → chunk-WNK4WSTE.mjs} +31 -56
- package/dist/chunk-WNK4WSTE.mjs.map +1 -0
- package/dist/{chunk-IDKGZ5T4.mjs → chunk-XSGTWROT.mjs} +8 -8
- package/dist/chunk-XSGTWROT.mjs.map +1 -0
- package/dist/{chunk-R4N52NI2.mjs → chunk-YBLCIJW4.mjs} +37 -31
- package/dist/chunk-YBLCIJW4.mjs.map +1 -0
- package/dist/{chunk-6F7H4PAA.mjs → chunk-YOSPWY5K.mjs} +2 -2
- package/dist/chunk-YOSPWY5K.mjs.map +1 -0
- package/dist/dev.d.mts +1 -1
- package/dist/dev.mjs +6 -8
- package/dist/dev.mjs.map +1 -1
- package/dist/experimental.d.mts +4 -4
- package/dist/experimental.mjs +7 -9
- package/dist/experimental.mjs.map +1 -1
- package/dist/form.d.mts +6 -6
- package/dist/form.mjs +16 -20
- package/dist/form.mjs.map +1 -1
- package/dist/{index-38be834f.d.ts → index-CUKoRIdy.d.mts} +1 -1
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +9 -9
- package/dist/index.mjs.map +1 -1
- package/dist/inspector.d.mts +1 -1
- package/dist/inspector.mjs +3 -4
- package/dist/inspector.mjs.map +1 -1
- package/dist/jsoncomponent.d.mts +5 -5
- package/dist/jsoncomponent.mjs +2 -2
- package/dist/jsoncomponent.mjs.map +1 -1
- package/dist/jsontable.d.mts +2 -2
- package/dist/jsontable.mjs +5 -5
- package/dist/jsontable.mjs.map +1 -1
- package/dist/metrics.d.mts +1 -1
- package/dist/metrics.mjs +6 -6
- package/dist/metrics.mjs.map +1 -1
- package/dist/plugins.d.mts +7 -7
- package/dist/plugins.mjs +6 -6
- package/dist/plugins.mjs.map +1 -1
- package/dist/{root-218afa4f.d.ts → root-BPMUmS6H.d.mts} +1 -1
- package/dist/ui.mjs +5 -6
- package/dist/ui.mjs.map +1 -1
- package/dist/utils.d.mts +105 -22
- package/dist/utils.mjs +4 -4
- package/dist/utils.mjs.map +1 -1
- package/dist/wallet.d.mts +6 -4
- package/dist/wallet.mjs +59 -17
- package/dist/wallet.mjs.map +1 -1
- package/package.json +4 -3
- package/dist/chunk-2N4HH4ZF.mjs.map +0 -1
- package/dist/chunk-3XIPR2M3.mjs.map +0 -1
- package/dist/chunk-4F33QAJ4.mjs.map +0 -1
- package/dist/chunk-6F7H4PAA.mjs.map +0 -1
- package/dist/chunk-C5BPNLKH.mjs.map +0 -1
- package/dist/chunk-FJHGIW3I.mjs.map +0 -1
- package/dist/chunk-IDKGZ5T4.mjs.map +0 -1
- package/dist/chunk-ISV4OEKJ.mjs.map +0 -1
- package/dist/chunk-M5Y3VYMJ.mjs.map +0 -1
- package/dist/chunk-R4N52NI2.mjs.map +0 -1
- package/dist/chunk-SL5OV6OR.mjs.map +0 -1
- /package/dist/{PaginationState-c19e621a.d.ts → PaginationState-Bmrrw0ky.d.mts} +0 -0
package/dist/dev.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/ui/sheet.tsx","../module/Devtool/devtool.tsx","../components/JSONEditor/index.tsx"],"names":["React","initialJson","diff","result"],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\n// @ts-ignore\nconst SheetPortal = ({ className, ...props }: SheetPrimitive.DialogPortalProps) => <SheetPrimitive.Portal className={cn(className)} {...props} />;\nSheetPortal.displayName = SheetPrimitive.Portal.displayName;\n\nconst SheetOverlay = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Overlay>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay className={cn(\"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className)} {...props} ref={ref} />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\", {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom: \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right: \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n});\n\nconst SheetClose = ({ className, ...props }: SheetPrimitive.DialogCloseProps) => (\n <SheetPrimitive.Close className={cn(\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\", className)} {...props}>\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n);\nSheetClose.displayName = \"Close\";\n\ninterface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> { }\n\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps & { showOverlay?: boolean; open?: boolean }>(({ side = \"right\", className, children, showOverlay = false, open, ...props }, ref) => {\n return (\n <SheetPortal>\n {showOverlay && <SheetOverlay />}\n <div ref={ref} data-state={open ? \"open\" : \"closed\"} className={cn(sheetVariants({ side }), className)} {...props}>\n {children}\n </div>\n </SheetPortal>\n );\n});\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => <div className={cn(\"flex flex-col space-y-2 text-center sm:text-left\", className)} {...props} />;\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => <div className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)} {...props} />;\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Title>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>>(({ className, ...props }, ref) => <SheetPrimitive.Title ref={ref} className={cn(\"text-lg font-semibold text-foreground\", className)} {...props} />);\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Description>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, SheetClose };\n","import { Sheet, SheetClose, SheetContent } from \"../../components/ui/sheet\";\nimport { Tabs, Tab } from \"@nextui-org/react\";\nimport { cn } from \"../../lib/utils\";\nimport { RootStore } from \"../../store/root\";\nimport { PromiseState } from \"../../store/standard/PromiseState\";\nimport { Store } from \"../../store/standard/base\";\nimport { Wrench } from \"lucide-react\";\nimport { observer, useLocalObservable } from \"mobx-react-lite\";\nimport { toJS } from \"mobx\";\nimport { helper } from \"../../lib/helper\";\nimport EventEmitter from \"events\";\nimport { useMemo } from \"react\";\nimport React from \"react\";\nimport { JSONEditor } from \"../../components/JSONEditor\"\n\nfunction filterState(obj) {\n if (obj.toJSON) {\n return obj.toJSON()\n }\n\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(filterState);\n }\n\n const filteredObj = {};\n\n for (const [key, value] of Object.entries(obj)) {\n try {\n if (\n ![\"sid\", \"disabled\", \"autoObservable\", \"promiseState\", \"autoAsyncable\", \"stype\"].includes(key) &&\n // !(value instanceof PromiseState) &&\n !(value instanceof EventEmitter) &&\n !value?.hasOwnProperty(\"$$typeof\")\n ) {\n filteredObj[key] = filterState(value);\n }\n } catch (error) {\n console.error(error);\n return obj;\n }\n }\n\n return filteredObj;\n}\n\nexport class DevTool implements Store {\n sid = \"DevTool\";\n stype = \"Plugin\"\n provider = ({ rootStore }: { rootStore: RootStore }) => <DevToolProvider rootStore={rootStore} />;\n disabled?: boolean = false;\n autoObservable?: boolean = true;\n isOpen = false;\n\n panels: Store[\"pannel\"][] = [\n {\n title: \"Store\",\n render: observer(({ rootStore }: { rootStore: RootStore }) => {\n const state = useLocalObservable<{\n curStore: Store;\n curPromiseStateList: { name: string; promiseState: PromiseState<any, any> }[];\n }>(() => ({\n //@ts-ignore\n curStore: null,\n curPromiseStateList: [],\n }));\n const initialJson = useMemo(() => {\n //@ts-ignore\n if (state.curStore?.toJSON) return JSON.stringify(state.curStore?.toJSON(), null, 2);\n const filteredData = filterState(state.curStore || {});\n return JSON.stringify(toJS(filteredData), null, 2);\n }, [state.curStore]);\n return (\n <div className=\"flex flex-col md:flex-row text-sm\">\n <div>\n <Tabs\n size=\"sm\"\n radius=\"none\"\n variant=\"underlined\"\n items={[{ title: \"Store\", value: \"Store\" }, { title: \"Plugin\", value: \"Plugin\" }]}\n >\n {(item) => {\n const stores = Object.values(rootStore.instance).filter(i => i.stype == item.value && i.sid).sort((a, b) => a.sid.length - b.sid.length);\n return (\n <Tab key={item.title} title={item.title} >\n <div>\n <div className=\"w-full md:w-[300px] space-y-1 pr-2 overflow-auto\">\n {stores.map((store) => {\n return (\n <div\n key={store?.sid}\n className={cn(\"px-2 rounded-md hover:bg-green-600 hover:text-white cursor-pointer\", { \"bg-green-600 text-white\": state.curStore?.sid === store.sid })}\n onClick={() => {\n state.curStore = store;\n }}\n >\n {store.sid}\n </div>\n );\n })}\n </div>\n </div>\n </Tab>\n )\n }}\n </Tabs>\n </div>\n\n <div className=\"mt-4 w-full overflow-auto md:mt-0\">\n <JSONEditor\n className={\"h-full\"}\n height={450}\n initialJson={initialJson}\n onChange={(data) => {\n console.log(\"onChange\", data);\n helper.deepMerge(state.curStore, data);\n }}\n />\n {/* <PromiseStateDebug promiseStateList={state.curPromiseStateList} /> */}\n </div>\n </div>\n );\n }),\n },\n ];\n\n onNewStore({ rootStore }: { rootStore: RootStore }) {\n Object.values(rootStore.instance).forEach((store) => {\n if (store.devtools?.started) return;\n if (store.devtools?.panels) {\n store.devtools.started = true;\n this.panels = [...this.panels, ...store.devtools?.panels];\n }\n });\n }\n\n constructor(args: Partial<DevTool> = {}) {\n Object.assign(this, args);\n }\n}\n\n// const PromiseStateDebug = ({ promiseStateList }: { promiseStateList: { name: string; promiseState: PromiseState<any, any> }[] }) => {\n// if (promiseStateList.length === 0) return null;\n// return (\n// <>\n// <div className=\"mt-6 mb-2 pt-2 border-t-[1px] font-bold dark:border-gray-600\">Debug PromiseState</div>\n// <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4\">\n// {promiseStateList.map((item, index) => {\n// const formData = item.promiseState.debug.input;\n// return (\n// <Card className=\"p-2 dark:border-gray-800\" key={index}>\n// <div className=\"font-bold text-xs\">{item.name}</div>\n// <JSONSchemaForm\n// formState={getFormState({\n// data: formData,\n// onSubmit: (data) => {\n// item.promiseState.call(data);\n// },\n// })}\n// />\n// </Card>\n// );\n// })}\n// </div>\n// </>\n// );\n// };\n\nexport const DevToolProvider = observer(({ rootStore }: { rootStore: RootStore }) => {\n const devTool = rootStore.get(DevTool);\n const minSheetHeight = 500;\n const store = useLocalObservable(() => ({\n sheetHeight: minSheetHeight,\n }));\n return (\n <>\n <div className=\"fixed right-4 bottom-4 z-10\">\n <div\n className=\"p-1 rounded-sm bg-gray-300 hover:bg-gray-400 dark:bg-gray-600 dark:hover:bg-gray-500 cursor-pointer\"\n onClick={() => {\n devTool.isOpen = true;\n }}\n >\n <Wrench size={20} />\n </div>\n </div>\n <Sheet open={devTool.isOpen}>\n <SheetContent\n open={devTool.isOpen}\n side=\"bottom\"\n className=\"p-0 outline-none bg-card dark:border-none\"\n style={{\n height: store.sheetHeight,\n }}\n >\n <div className=\"absolute top-0 left-0 h-[32px] w-full bg-gray-100 dark:bg-gray-800\"></div>\n <SheetClose\n className=\"top-2 right-2\"\n onClick={() => {\n devTool.isOpen = false;\n }}\n />\n <div\n className=\"absolute top-[-8px] left-0 w-full h-[10px] cursor-row-resize\"\n onMouseDown={(e) => {\n const startH = store.sheetHeight;\n const startPageY = e.pageY;\n const onMouseMove = (mouseMoveEvent: MouseEvent) => {\n const diff = startPageY - mouseMoveEvent.pageY;\n const h = startH + diff;\n if (h > minSheetHeight && h < window.innerHeight) {\n store.sheetHeight = h;\n }\n };\n const onMouseUp = () => {\n document.body.removeEventListener(\"mousemove\", onMouseMove);\n };\n document.body.addEventListener(\"mousemove\", onMouseMove);\n document.body.addEventListener(\"mouseup\", onMouseUp, { once: true });\n }}\n />\n <Tabs\n className='w-full'\n size=\"sm\"\n radius=\"none\"\n items={devTool.panels}\n >\n {(panel) => {\n const Component = panel.render || (() => null);\n return (\n <Tab key={panel.title} title={panel.title}>\n <div className=\"p-0\" style={{ height: `calc(${store.sheetHeight}px - 50px)` }}>\n <Component rootStore={rootStore} />\n </div>\n </Tab>\n )\n }}\n </Tabs>\n </SheetContent>\n </Sheet>\n </>\n );\n});\n","\"use client\";\n\nimport React, { useRef } from \"react\";\nimport MonacoEditor from \"@monaco-editor/react\";\nimport { _ } from \"../../lib/lodash\";\nimport * as jsonpatch from \"fast-json-patch\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from '@nextui-org/react';\n\nexport const JSONEditor = ({ className, height = \"100%\", initialJson, onChange, onSubmit }: { className?: string; height?: string | number; initialJson: string; onChange?: (value: Record<string, any>) => void; onSubmit?: (value: Record<string, any>) => void }) => {\n const valueRef = useRef<string>(initialJson);\n const changeValueRef = useRef(\n _.debounce((initialJson: string, currentJson: string) => {\n if (onChange) {\n try {\n const tree1 = JSON.parse(initialJson);\n const tree2 = JSON.parse(currentJson);\n const diff = jsonpatch.compare(tree1, tree2);\n // @ts-ignore\n const applyDiff = (diff) => {\n const result = {};\n for (const change of diff) {\n const { op, path, value } = change;\n // @ts-ignore\n const keys = path.split(\"/\").filter((key) => key !== \"\");\n let current = result;\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n // @ts-ignore\n if (!current[key]) {\n // @ts-ignore\n current[key] = {};\n }\n // @ts-ignore\n current = current[key];\n }\n let lastKey = keys[keys.length - 1];\n lastKey = lastKey.replace('~1', '/');\n if (op === \"replace\") {\n // @ts-ignore\n current[lastKey] = value;\n }\n if (op === \"add\") {\n // @ts-ignore\n current[lastKey] = value;\n }\n }\n return result;\n };\n const result = applyDiff(diff);\n if (Object.keys(result).length > 0) {\n onChange(result);\n }\n } catch (error) {\n console.error(error);\n }\n }\n }, 1000)\n );\n\n return (\n <div className={cn(\"relative w-full\", className)}>\n <MonacoEditor\n options={{\n minimap: {\n enabled: false,\n },\n }}\n height={height}\n theme=\"vs-dark\"\n language=\"json\"\n value={initialJson}\n onChange={(v) => {\n changeValueRef.current?.(initialJson, v);\n // @ts-ignore\n valueRef.current = v;\n }}\n />\n {onSubmit && (\n <Button\n className=\"z-50 absolute bottom-[50px] right-[20px]\"\n color='primary'\n size='sm'\n onClick={() => {\n try {\n const json = JSON.parse(valueRef.current);\n onSubmit(json);\n } catch (error) {\n console.error(error);\n }\n }}>\n Submit\n </Button>\n )}\n </div>\n );\n};\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../components/ui/sheet.tsx","../components/JSONEditor/index.tsx","../module/Devtool/devtool.tsx"],"names":["React","initialJson","diff","result"],"mappings":"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","file":"dev.mjs","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\n// @ts-ignore\nconst SheetPortal = ({ className, ...props }: SheetPrimitive.DialogPortalProps) => <SheetPrimitive.Portal className={cn(className)} {...props} />;\nSheetPortal.displayName = SheetPrimitive.Portal.displayName;\n\nconst SheetOverlay = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Overlay>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay className={cn(\"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className)} {...props} ref={ref} />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\", {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom: \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right: \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n});\n\nconst SheetClose = ({ className, ...props }: SheetPrimitive.DialogCloseProps) => (\n <SheetPrimitive.Close className={cn(\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\", className)} {...props}>\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n);\nSheetClose.displayName = \"Close\";\n\ninterface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> { }\n\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps & { showOverlay?: boolean; open?: boolean }>(({ side = \"right\", className, children, showOverlay = false, open, ...props }, ref) => {\n return (\n <SheetPortal>\n {showOverlay && <SheetOverlay />}\n <div ref={ref} data-state={open ? \"open\" : \"closed\"} className={cn(sheetVariants({ side }), className)} {...props}>\n {children}\n </div>\n </SheetPortal>\n );\n});\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => <div className={cn(\"flex flex-col space-y-2 text-center sm:text-left\", className)} {...props} />;\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => <div className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)} {...props} />;\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Title>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>>(({ className, ...props }, ref) => <SheetPrimitive.Title ref={ref} className={cn(\"text-lg font-semibold text-foreground\", className)} {...props} />);\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Description>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, SheetClose };\n","\"use client\";\n\nimport React, { useRef } from \"react\";\nimport MonacoEditor from \"@monaco-editor/react\";\nimport { _ } from \"../../lib/lodash\";\nimport * as jsonpatch from \"fast-json-patch\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from '@nextui-org/react';\n\nexport const JSONEditor = ({ className, height = \"100%\", initialJson, onChange, onSubmit }: { className?: string; height?: string | number; initialJson: string; onChange?: (value: Record<string, any>) => void; onSubmit?: (value: Record<string, any>) => void }) => {\n const valueRef = useRef<string>(initialJson);\n const changeValueRef = useRef(\n _.debounce((initialJson: string, currentJson: string) => {\n if (onChange) {\n try {\n const tree1 = JSON.parse(initialJson);\n const tree2 = JSON.parse(currentJson);\n const diff = jsonpatch.compare(tree1, tree2);\n // @ts-ignore\n const applyDiff = (diff) => {\n const result = {};\n for (const change of diff) {\n const { op, path, value } = change;\n // @ts-ignore\n const keys = path.split(\"/\").filter((key) => key !== \"\");\n let current = result;\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n // @ts-ignore\n if (!current[key]) {\n // @ts-ignore\n current[key] = {};\n }\n // @ts-ignore\n current = current[key];\n }\n let lastKey = keys[keys.length - 1];\n lastKey = lastKey.replace('~1', '/');\n if (op === \"replace\") {\n // @ts-ignore\n current[lastKey] = value;\n }\n if (op === \"add\") {\n // @ts-ignore\n current[lastKey] = value;\n }\n }\n return result;\n };\n const result = applyDiff(diff);\n if (Object.keys(result).length > 0) {\n onChange(result);\n }\n } catch (error) {\n console.error(error);\n }\n }\n }, 1000)\n );\n\n return (\n <div className={cn(\"relative w-full\", className)}>\n <MonacoEditor\n options={{\n minimap: {\n enabled: false,\n },\n }}\n height={height}\n theme=\"vs-dark\"\n language=\"json\"\n value={initialJson}\n onChange={(v) => {\n changeValueRef.current?.(initialJson, v);\n // @ts-ignore\n valueRef.current = v;\n }}\n />\n {onSubmit && (\n <Button\n className=\"z-50 absolute bottom-[50px] right-[20px]\"\n color='primary'\n size='sm'\n onClick={() => {\n try {\n const json = JSON.parse(valueRef.current);\n onSubmit(json);\n } catch (error) {\n console.error(error);\n }\n }}>\n Submit\n </Button>\n )}\n </div>\n );\n};\n\n","import { Sheet, SheetClose, SheetContent } from \"../../components/ui/sheet\";\nimport { Tabs, Tab } from \"@nextui-org/react\";\nimport { cn } from \"../../lib/utils\";\nimport { RootStore } from \"../../store/root\";\nimport { PromiseState } from \"../../store/standard/PromiseState\";\nimport { Store } from \"../../store/standard/base\";\nimport { Wrench } from \"lucide-react\";\nimport { observer, useLocalObservable } from \"mobx-react-lite\";\nimport { toJS } from \"mobx\";\nimport { helper } from \"../../lib/helper\";\nimport EventEmitter from \"events\";\nimport { useMemo } from \"react\";\nimport React from \"react\";\nimport { JSONEditor } from \"../../components/JSONEditor\"\n\nfunction filterState(obj) {\n if (obj.toJSON) {\n return obj.toJSON()\n }\n\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(filterState);\n }\n\n const filteredObj = {};\n\n for (const [key, value] of Object.entries(obj)) {\n try {\n if (\n ![\"sid\", \"disabled\", \"autoObservable\", \"promiseState\", \"autoAsyncable\", \"stype\"].includes(key) &&\n // !(value instanceof PromiseState) &&\n !(value instanceof EventEmitter) &&\n !value?.hasOwnProperty(\"$$typeof\")\n ) {\n filteredObj[key] = filterState(value);\n }\n } catch (error) {\n console.error(error);\n return obj;\n }\n }\n\n return filteredObj;\n}\n\nexport class DevTool implements Store {\n sid = \"DevTool\";\n stype = \"Plugin\"\n provider = ({ rootStore }: { rootStore: RootStore }) => <DevToolProvider rootStore={rootStore} />;\n disabled?: boolean = false;\n autoObservable?: boolean = true;\n isOpen = false;\n\n panels: Store[\"pannel\"][] = [\n {\n title: \"Store\",\n render: observer(({ rootStore }: { rootStore: RootStore }) => {\n const state = useLocalObservable<{\n curStore: Store;\n curPromiseStateList: { name: string; promiseState: PromiseState<any, any> }[];\n }>(() => ({\n //@ts-ignore\n curStore: null,\n curPromiseStateList: [],\n }));\n const initialJson = useMemo(() => {\n //@ts-ignore\n if (state.curStore?.toJSON) return JSON.stringify(state.curStore?.toJSON(), null, 2);\n const filteredData = filterState(state.curStore || {});\n return JSON.stringify(toJS(filteredData), null, 2);\n }, [state.curStore]);\n return (\n <div className=\"flex flex-col md:flex-row text-sm\">\n <div>\n <Tabs\n size=\"sm\"\n radius=\"none\"\n variant=\"underlined\"\n items={[{ title: \"Store\", value: \"Store\" }, { title: \"Plugin\", value: \"Plugin\" }]}\n >\n {(item) => {\n const stores = Object.values(rootStore.instance).filter(i => i.stype == item.value && i.sid).sort((a, b) => a.sid.length - b.sid.length);\n return (\n <Tab key={item.title} title={item.title} >\n <div>\n <div className=\"w-full md:w-[300px] space-y-1 pr-2 overflow-auto\">\n {stores.map((store) => {\n return (\n <div\n key={store?.sid}\n className={cn(\"px-2 rounded-md hover:bg-green-600 hover:text-white cursor-pointer\", { \"bg-green-600 text-white\": state.curStore?.sid === store.sid })}\n onClick={() => {\n state.curStore = store;\n }}\n >\n {store.sid}\n </div>\n );\n })}\n </div>\n </div>\n </Tab>\n )\n }}\n </Tabs>\n </div>\n\n <div className=\"mt-4 w-full overflow-auto md:mt-0\">\n <JSONEditor\n className={\"h-full\"}\n height={450}\n initialJson={initialJson}\n onChange={(data) => {\n console.log(\"onChange\", data);\n helper.deepMerge(state.curStore, data);\n }}\n />\n {/* <PromiseStateDebug promiseStateList={state.curPromiseStateList} /> */}\n </div>\n </div>\n );\n }),\n },\n ];\n\n onNewStore({ rootStore }: { rootStore: RootStore }) {\n Object.values(rootStore.instance).forEach((store) => {\n if (store.devtools?.started) return;\n if (store.devtools?.panels) {\n store.devtools.started = true;\n this.panels = [...this.panels, ...store.devtools?.panels];\n }\n });\n }\n\n constructor(args: Partial<DevTool> = {}) {\n Object.assign(this, args);\n }\n}\n\n// const PromiseStateDebug = ({ promiseStateList }: { promiseStateList: { name: string; promiseState: PromiseState<any, any> }[] }) => {\n// if (promiseStateList.length === 0) return null;\n// return (\n// <>\n// <div className=\"mt-6 mb-2 pt-2 border-t-[1px] font-bold dark:border-gray-600\">Debug PromiseState</div>\n// <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4\">\n// {promiseStateList.map((item, index) => {\n// const formData = item.promiseState.debug.input;\n// return (\n// <Card className=\"p-2 dark:border-gray-800\" key={index}>\n// <div className=\"font-bold text-xs\">{item.name}</div>\n// <JSONSchemaForm\n// formState={getFormState({\n// data: formData,\n// onSubmit: (data) => {\n// item.promiseState.call(data);\n// },\n// })}\n// />\n// </Card>\n// );\n// })}\n// </div>\n// </>\n// );\n// };\n\nexport const DevToolProvider = observer(({ rootStore }: { rootStore: RootStore }) => {\n const devTool = rootStore.get(DevTool);\n const minSheetHeight = 500;\n const store = useLocalObservable(() => ({\n sheetHeight: minSheetHeight,\n }));\n return (\n <>\n <div className=\"fixed right-4 bottom-4 z-10\">\n <div\n className=\"p-1 rounded-sm bg-gray-300 hover:bg-gray-400 dark:bg-gray-600 dark:hover:bg-gray-500 cursor-pointer\"\n onClick={() => {\n devTool.isOpen = true;\n }}\n >\n <Wrench size={20} />\n </div>\n </div>\n <Sheet open={devTool.isOpen}>\n <SheetContent\n open={devTool.isOpen}\n side=\"bottom\"\n className=\"p-0 outline-none bg-card dark:border-none\"\n style={{\n height: store.sheetHeight,\n }}\n >\n <div className=\"absolute top-0 left-0 h-[32px] w-full bg-gray-100 dark:bg-gray-800\"></div>\n <SheetClose\n className=\"top-2 right-2\"\n onClick={() => {\n devTool.isOpen = false;\n }}\n />\n <div\n className=\"absolute top-[-8px] left-0 w-full h-[10px] cursor-row-resize\"\n onMouseDown={(e) => {\n const startH = store.sheetHeight;\n const startPageY = e.pageY;\n const onMouseMove = (mouseMoveEvent: MouseEvent) => {\n const diff = startPageY - mouseMoveEvent.pageY;\n const h = startH + diff;\n if (h > minSheetHeight && h < window.innerHeight) {\n store.sheetHeight = h;\n }\n };\n const onMouseUp = () => {\n document.body.removeEventListener(\"mousemove\", onMouseMove);\n };\n document.body.addEventListener(\"mousemove\", onMouseMove);\n document.body.addEventListener(\"mouseup\", onMouseUp, { once: true });\n }}\n />\n <Tabs\n className='w-full'\n size=\"sm\"\n radius=\"none\"\n items={devTool.panels}\n >\n {(panel) => {\n const Component = panel.render || (() => null);\n return (\n <Tab key={panel.title} title={panel.title}>\n <div className=\"p-0\" style={{ height: `calc(${store.sheetHeight}px - 50px)` }}>\n <Component rootStore={rootStore} />\n </div>\n </Tab>\n )\n }}\n </Tabs>\n </SheetContent>\n </Sheet>\n </>\n );\n});\n"]}
|
package/dist/experimental.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as Store, R as RootStore } from './root-
|
|
1
|
+
import { S as Store, R as RootStore } from './root-BPMUmS6H.mjs';
|
|
2
2
|
import React, { ReactNode, HTMLAttributeAnchorTarget } from 'react';
|
|
3
3
|
import 'typed-emitter';
|
|
4
4
|
|
|
@@ -13,10 +13,10 @@ declare class SlotPlugin implements Store {
|
|
|
13
13
|
toJSON(): Record<string, {
|
|
14
14
|
name?: string;
|
|
15
15
|
input?: Record<string, any>;
|
|
16
|
-
render: React.FC
|
|
16
|
+
render: React.FC<{}>;
|
|
17
17
|
}>;
|
|
18
18
|
static Slot: ({ name, ...props }: {
|
|
19
|
-
name
|
|
19
|
+
name;
|
|
20
20
|
} & any) => ReactNode;
|
|
21
21
|
constructor(args?: Partial<SlotPlugin>);
|
|
22
22
|
}
|
|
@@ -187,4 +187,4 @@ declare class JSONViewPlugin implements Store {
|
|
|
187
187
|
static JSONView: (props: JSONViewType) => React.JSX.Element;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
export { AsyncStorage, Collection, DataGroup, Engine, JSONDataType, JSONViewPlugin, JSONViewType, SlotPlugin, StorageParams, StoragePlugin, jwt };
|
|
190
|
+
export { AsyncStorage, Collection, type DataGroup, type Engine, type JSONDataType, JSONViewPlugin, type JSONViewType, SlotPlugin, type StorageParams, StoragePlugin, jwt };
|
package/dist/experimental.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { PromiseState } from './chunk-
|
|
1
|
+
import { PromiseState } from './chunk-GPPSD2BO.mjs';
|
|
2
2
|
import './chunk-IMOLRP7I.mjs';
|
|
3
|
-
import { RootStore } from './chunk-
|
|
3
|
+
import { RootStore } from './chunk-XSGTWROT.mjs';
|
|
4
4
|
import { _ } from './chunk-K7LFG5BA.mjs';
|
|
5
|
-
import { __objRest,
|
|
5
|
+
import { __objRest, __spreadProps, __spreadValues } from './chunk-YOSPWY5K.mjs';
|
|
6
6
|
import React2 from 'react';
|
|
7
7
|
import { makeAutoObservable, toJS, observable } from 'mobx';
|
|
8
8
|
import axios from 'axios';
|
|
@@ -60,8 +60,7 @@ var _SlotPlugin = class _SlotPlugin {
|
|
|
60
60
|
// };
|
|
61
61
|
onNewStore({ rootStore }) {
|
|
62
62
|
Object.values(rootStore.instance).forEach((store) => {
|
|
63
|
-
if (store.isSlotInit)
|
|
64
|
-
return;
|
|
63
|
+
if (store.isSlotInit) return;
|
|
65
64
|
if (store.slots) {
|
|
66
65
|
store.isSlotInit = true;
|
|
67
66
|
this.slotMap = __spreadValues(__spreadValues({}, this.slotMap), store.slots);
|
|
@@ -98,8 +97,7 @@ var _StoragePlugin = class _StoragePlugin {
|
|
|
98
97
|
this.dataMeta[key]._value = value;
|
|
99
98
|
const _engine = engine || ((_a = this.dataMeta[key]) == null ? void 0 : _a.engine) || this.engines.memory;
|
|
100
99
|
RootStore.init().events.emit(`storage.${key}.update`, { key, value });
|
|
101
|
-
if (this.dataMeta[key].onSet)
|
|
102
|
-
this.dataMeta[key].onSet(value);
|
|
100
|
+
if (this.dataMeta[key].onSet) this.dataMeta[key].onSet(value);
|
|
103
101
|
return _engine.set(key, value);
|
|
104
102
|
};
|
|
105
103
|
this.get = (_a) => {
|
|
@@ -266,7 +264,7 @@ var _StoragePlugin = class _StoragePlugin {
|
|
|
266
264
|
}
|
|
267
265
|
static Custom(args) {
|
|
268
266
|
const storagePlugin = RootStore.Get(_StoragePlugin);
|
|
269
|
-
const _a = args; __objRest(_a, ["value", "_value"]);
|
|
267
|
+
const _a = args, { value, _value } = _a; __objRest(_a, ["value", "_value"]);
|
|
270
268
|
const data = storagePlugin.get(args);
|
|
271
269
|
return observable(__spreadProps(__spreadValues(__spreadValues({}, args), data), {
|
|
272
270
|
get value() {
|
|
@@ -497,5 +495,5 @@ _JSONViewPlugin.JSONView = (props) => {
|
|
|
497
495
|
var JSONViewPlugin = _JSONViewPlugin;
|
|
498
496
|
|
|
499
497
|
export { AsyncStorage, Collection, JSONViewPlugin, SlotPlugin, StoragePlugin, jwt };
|
|
500
|
-
//# sourceMappingURL=
|
|
498
|
+
//# sourceMappingURL=experimental.mjs.map
|
|
501
499
|
//# sourceMappingURL=experimental.mjs.map
|
|
@@ -1 +1 @@
|
|
|
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","import { 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}"]}
|
|
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":["React","value"],"mappings":"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","file":"experimental.mjs","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","import { 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,9 +3,9 @@ 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-
|
|
6
|
+
import { T as ThemeType } from './index-CUKoRIdy.mjs';
|
|
7
7
|
import { EditorProps } from '@monaco-editor/react';
|
|
8
|
-
import { S as Store } from './root-
|
|
8
|
+
import { S as Store } from './root-BPMUmS6H.mjs';
|
|
9
9
|
import EventEmitter from 'events';
|
|
10
10
|
import 'typed-emitter';
|
|
11
11
|
|
|
@@ -49,9 +49,9 @@ declare class JSONSchemaValue<T> {
|
|
|
49
49
|
|
|
50
50
|
declare const COMPONENTS: {
|
|
51
51
|
GridLayout: <T extends FormDataType>(props: JSONFormProps<T>) => React$1.JSX.Element;
|
|
52
|
-
TabLayout: <
|
|
53
|
-
ListLayout: <
|
|
54
|
-
SimpleLayout: <
|
|
52
|
+
TabLayout: <T_1 extends FormDataType>(props: JSONFormProps<T_1>) => React$1.JSX.Element;
|
|
53
|
+
ListLayout: <T_2 extends FormDataType>(props: JSONFormProps<T_2>) => React$1.JSX.Element;
|
|
54
|
+
SimpleLayout: <T_3 extends FormDataType>(props: JSONFormProps<T_3>) => React$1.JSX.Element;
|
|
55
55
|
};
|
|
56
56
|
type FormDataType = {
|
|
57
57
|
[key: string]: {
|
|
@@ -381,4 +381,4 @@ declare function getSimpleFormData<T>(data: T, metadata: {
|
|
|
381
381
|
[key: string]: any;
|
|
382
382
|
} & Partial<JSONSchemaFormState<any>>, config: Partial<FormModalStore>, onSet?: (v: T, form: JSONSchemaFormState<T, UiSchema>) => T, theme?: ThemeType): Promise<T>;
|
|
383
383
|
|
|
384
|
-
export { CheckboxWidget, CheckboxWidgetProps, CheckboxWidgetUIOptions, ComplexFormModalStore, DatePickerWidget, DatePickerWidgetProps, DatePickerWidgetUIOptions, EditorWidget, EditorWidgetProps, EditorWidgetUIOptions, FormConfigType, FormDataOfKey, FormDataType, FormKey, FormModalStore, InputWidget, InputWidgetProps, InputWidgetUIOptions, JSONForm, JSONFormProps, JSONSchemaForm, LayoutConfigType, LayoutType, MultipleSelectWidget, MultipleSelectWidgetProps, MultipleSelectWidgetUIOptions, SelectWidget, SelectWidgetProps, SelectWidgetUIOptions, TextareaWidget, TextareaWidgetProps, TextareaWidgetUIOptions, getComplexFormData, getFormData, getFormState, getSimpleFormData };
|
|
384
|
+
export { CheckboxWidget, type CheckboxWidgetProps, type CheckboxWidgetUIOptions, ComplexFormModalStore, DatePickerWidget, type DatePickerWidgetProps, type DatePickerWidgetUIOptions, EditorWidget, type EditorWidgetProps, type EditorWidgetUIOptions, type FormConfigType, type FormDataOfKey, type FormDataType, type FormKey, FormModalStore, InputWidget, type InputWidgetProps, type InputWidgetUIOptions, JSONForm, type JSONFormProps, JSONSchemaForm, type LayoutConfigType, type LayoutType, MultipleSelectWidget, type MultipleSelectWidgetProps, type MultipleSelectWidgetUIOptions, SelectWidget, type SelectWidgetProps, type SelectWidgetUIOptions, TextareaWidget, type TextareaWidgetProps, type TextareaWidgetUIOptions, getComplexFormData, getFormData, getFormState, getSimpleFormData };
|
package/dist/form.mjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { getStyle } from './chunk-GKAU4P5I.mjs';
|
|
2
|
-
import { useStore, RootStore } from './chunk-
|
|
3
|
-
import { helper } from './chunk-
|
|
2
|
+
import { useStore, RootStore } from './chunk-XSGTWROT.mjs';
|
|
3
|
+
import { helper } from './chunk-YBLCIJW4.mjs';
|
|
4
4
|
import { _ } from './chunk-K7LFG5BA.mjs';
|
|
5
|
-
import { cn } from './chunk-
|
|
6
|
-
import { __objRest, __spreadValues, __spreadProps } from './chunk-
|
|
7
|
-
import React7, { useEffect, useMemo, useState,
|
|
8
|
-
import { Modal, ModalContent, ModalHeader, ModalBody,
|
|
9
|
-
import {
|
|
5
|
+
import { cn } from './chunk-6HA5WR5H.mjs';
|
|
6
|
+
import { __objRest, __spreadValues, __spreadProps } from './chunk-YOSPWY5K.mjs';
|
|
7
|
+
import React7, { useEffect, useMemo, useState, useCallback, useRef, createRef } from 'react';
|
|
8
|
+
import { Modal, ModalContent, ModalHeader, ModalBody, Button, Tabs, Tab, Card, Select, SelectItem, Input, Checkbox, Chip, Textarea, DatePicker } from '@nextui-org/react';
|
|
9
|
+
import { ChevronUp, ChevronDown, Check } from 'lucide-react';
|
|
10
10
|
import MonacoEditor from '@monaco-editor/react';
|
|
11
11
|
import validator from '@rjsf/validator-ajv8';
|
|
12
|
-
import { toJS, makeAutoObservable, makeObservable, computed,
|
|
12
|
+
import { toJS, makeAutoObservable, makeObservable, computed, action, observable } from 'mobx';
|
|
13
13
|
import Form from '@rjsf/core';
|
|
14
14
|
import * as Utils from '@rjsf/utils';
|
|
15
15
|
import { observer, useLocalObservable } from 'mobx-react-lite';
|
|
@@ -680,7 +680,8 @@ var renderLayout = (layout, fields, n = 1) => {
|
|
|
680
680
|
}
|
|
681
681
|
});
|
|
682
682
|
};
|
|
683
|
-
var ObjectFieldTemplate = ({ title, idSchema
|
|
683
|
+
var ObjectFieldTemplate = ({ title, idSchema, properties, uiSchema: { layout } }) => {
|
|
684
|
+
const { $id } = idSchema;
|
|
684
685
|
const [opened, setOpened] = useState(false);
|
|
685
686
|
const fields = Object.fromEntries(properties.map((item) => [item.name, item.content]));
|
|
686
687
|
return /* @__PURE__ */ React7.createElement("div", { className: "w-full space-y-2.5" }, $id === "root" ? layout ? renderLayout(layout, fields) : properties.map((element) => {
|
|
@@ -709,8 +710,7 @@ var SubmitButton2 = ({ uiSchema }) => {
|
|
|
709
710
|
};
|
|
710
711
|
var JSONSchemaForm = observer(({ children, formState }) => {
|
|
711
712
|
var _a;
|
|
712
|
-
if (!((_a = formState == null ? void 0 : formState.dynamicData) == null ? void 0 : _a.ready))
|
|
713
|
-
return /* @__PURE__ */ React7.createElement(React7.Fragment, null);
|
|
713
|
+
if (!((_a = formState == null ? void 0 : formState.dynamicData) == null ? void 0 : _a.ready)) return /* @__PURE__ */ React7.createElement(React7.Fragment, null);
|
|
714
714
|
return /* @__PURE__ */ React7.createElement(
|
|
715
715
|
Form,
|
|
716
716
|
{
|
|
@@ -861,10 +861,8 @@ var colSpanLg = {
|
|
|
861
861
|
var Col = React7.forwardRef((props, ref) => {
|
|
862
862
|
const _a = props, { numColSpan = 1, numColSpanSm, numColSpanMd, numColSpanLg, children, className } = _a, other = __objRest(_a, ["numColSpan", "numColSpanSm", "numColSpanMd", "numColSpanLg", "children", "className"]);
|
|
863
863
|
const getColSpan = (numColSpan2, colSpanMapping) => {
|
|
864
|
-
if (!numColSpan2)
|
|
865
|
-
|
|
866
|
-
if (!Object.keys(colSpanMapping).includes(String(numColSpan2)))
|
|
867
|
-
return "";
|
|
864
|
+
if (!numColSpan2) return "";
|
|
865
|
+
if (!Object.keys(colSpanMapping).includes(String(numColSpan2))) return "";
|
|
868
866
|
return colSpanMapping[numColSpan2];
|
|
869
867
|
};
|
|
870
868
|
const getColSpanClassNames = () => {
|
|
@@ -879,10 +877,8 @@ var Col = React7.forwardRef((props, ref) => {
|
|
|
879
877
|
Col.displayName = "Col";
|
|
880
878
|
var col_default = Col;
|
|
881
879
|
var getGridCols = (numCols, gridColsMapping) => {
|
|
882
|
-
if (!numCols)
|
|
883
|
-
|
|
884
|
-
if (!Object.keys(gridColsMapping).includes(String(numCols)))
|
|
885
|
-
return "";
|
|
880
|
+
if (!numCols) return "";
|
|
881
|
+
if (!Object.keys(gridColsMapping).includes(String(numCols))) return "";
|
|
886
882
|
return gridColsMapping[numCols];
|
|
887
883
|
};
|
|
888
884
|
var Grid = React7.forwardRef((props, ref) => {
|
|
@@ -1475,5 +1471,5 @@ async function getSimpleFormData(data, metadata = {}, config, onSet = (v, form)
|
|
|
1475
1471
|
}
|
|
1476
1472
|
|
|
1477
1473
|
export { CheckboxWidget, ComplexFormModalStore, DatePickerWidget, EditorWidget, FormModalStore, InputWidget, JSONForm, JSONSchemaForm, MultipleSelectWidget, SelectWidget, TextareaWidget, getComplexFormData, getFormData, getFormState2 as getFormState, getSimpleFormData };
|
|
1478
|
-
//# sourceMappingURL=
|
|
1474
|
+
//# sourceMappingURL=form.mjs.map
|
|
1479
1475
|
//# sourceMappingURL=form.mjs.map
|