@dappworks/kit 0.5.37 → 0.5.38
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/aiem.mjs +4 -4
- package/dist/{chunk-2BZKMJZX.mjs → chunk-2N4HH4ZF.mjs} +1 -1
- package/dist/chunk-2N4HH4ZF.mjs.map +1 -0
- package/dist/{chunk-NKGQRF5D.mjs → chunk-C5BPNLKH.mjs} +3 -3
- package/dist/chunk-C5BPNLKH.mjs.map +1 -0
- package/dist/{chunk-5BTB7HRK.mjs → chunk-FJHGIW3I.mjs} +2 -2
- package/dist/chunk-FJHGIW3I.mjs.map +1 -0
- package/dist/{chunk-R66SHRQE.mjs → chunk-GKAU4P5I.mjs} +2 -2
- package/dist/chunk-GKAU4P5I.mjs.map +1 -0
- package/dist/{chunk-KIS52LFU.mjs → chunk-IDKGZ5T4.mjs} +1 -1
- package/dist/chunk-IDKGZ5T4.mjs.map +1 -0
- package/dist/{chunk-7EL2RQI7.mjs → chunk-IMOLRP7I.mjs} +1 -1
- package/dist/chunk-IMOLRP7I.mjs.map +1 -0
- package/dist/{chunk-AVG4JG4V.mjs → chunk-ISV4OEKJ.mjs} +5 -5
- package/dist/chunk-ISV4OEKJ.mjs.map +1 -0
- package/dist/{chunk-2PD23V7H.mjs → chunk-K7LFG5BA.mjs} +1 -1
- package/dist/{chunk-2PD23V7H.mjs.map → chunk-K7LFG5BA.mjs.map} +1 -1
- package/dist/{chunk-7LPSHBBI.mjs → chunk-KB3B3XTN.mjs} +12 -8
- package/dist/chunk-KB3B3XTN.mjs.map +1 -0
- package/dist/{chunk-SPFKGNUY.mjs → chunk-M5Y3VYMJ.mjs} +1 -1
- package/dist/{chunk-SPFKGNUY.mjs.map → chunk-M5Y3VYMJ.mjs.map} +1 -1
- package/dist/{chunk-Z3LJE5QF.mjs → chunk-ONVPCAMQ.mjs} +1 -1
- package/dist/chunk-ONVPCAMQ.mjs.map +1 -0
- package/dist/{chunk-WMV5O3PI.mjs → chunk-QDALAJJK.mjs} +2 -2
- package/dist/chunk-QDALAJJK.mjs.map +1 -0
- package/dist/{chunk-7WJMHFRA.mjs → chunk-R4N52NI2.mjs} +2 -2
- package/dist/chunk-R4N52NI2.mjs.map +1 -0
- package/dist/{chunk-72E76L6J.mjs → chunk-SL5OV6OR.mjs} +3 -3
- package/dist/chunk-SL5OV6OR.mjs.map +1 -0
- package/dist/dev.mjs +3 -3
- package/dist/dev.mjs.map +1 -1
- package/dist/experimental.mjs +4 -4
- package/dist/experimental.mjs.map +1 -1
- package/dist/form.mjs +5 -5
- package/dist/form.mjs.map +1 -1
- package/dist/index.mjs +11 -11
- package/dist/inspector.mjs.map +1 -1
- package/dist/jsoncomponent.mjs.map +1 -1
- package/dist/jsontable.mjs +5 -5
- package/dist/metrics.mjs +5 -5
- package/dist/metrics.mjs.map +1 -1
- package/dist/plugins.mjs +8 -8
- package/dist/plugins.mjs.map +1 -1
- package/dist/ui.mjs +2 -2
- package/dist/ui.mjs.map +1 -1
- package/dist/utils.d.mts +100 -19
- package/dist/utils.mjs +3 -3
- package/dist/wallet.d.mts +4 -1
- package/dist/wallet.mjs +12 -12
- package/dist/wallet.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-2BZKMJZX.mjs.map +0 -1
- package/dist/chunk-5BTB7HRK.mjs.map +0 -1
- package/dist/chunk-72E76L6J.mjs.map +0 -1
- package/dist/chunk-7EL2RQI7.mjs.map +0 -1
- package/dist/chunk-7LPSHBBI.mjs.map +0 -1
- package/dist/chunk-7WJMHFRA.mjs.map +0 -1
- package/dist/chunk-AVG4JG4V.mjs.map +0 -1
- package/dist/chunk-KIS52LFU.mjs.map +0 -1
- package/dist/chunk-NKGQRF5D.mjs.map +0 -1
- package/dist/chunk-R66SHRQE.mjs.map +0 -1
- package/dist/chunk-WMV5O3PI.mjs.map +0 -1
- package/dist/chunk-Z3LJE5QF.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../store/standard/PaginationState.ts"],"names":[],"mappings":";AAAA,SAAS,0BAA0B;AAI5B,IAAM,kBAAN,MAAsB;AAAA,EAK3B,YAAY,MAAyB;AAJrC,gBAAO;AACP,iBAAQ;AACR,iBAAQ;AAGN,WAAO,OAAO,MAAM,IAAI;AACxB,uBAAmB,IAAI;AAAA,EACzB;AAAA,EAEA,IAAI,SAAS;AACX,YAAQ,KAAK,OAAO,KAAK,KAAK;AAAA,EAChC;AAAA,EAEA,aAAa,MAAc;AAAA,EAAC;AAAA,EAE5B,QAAQ,GAAsB;AAC5B,WAAO,OAAO,MAAM,CAAC;AACrB,QAAI,EAAE,MAAM;AACV,WAAK,aAAa,EAAE,IAAI;AAAA,IAC1B;AAAA,EACF;AACF","sourcesContent":["import { makeAutoObservable } from 'mobx';\n\ntype ArgsType = { page: number; limit: number; total: number; onPageChange: (page: number) => void };\n\nexport class PaginationState {\n page = 1;\n limit = 10;\n total = 0;\n\n constructor(args: Partial<ArgsType>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n }\n\n get offset() {\n return (this.page - 1) * this.limit;\n }\n\n onPageChange(page: number) {}\n\n setData(v: Partial<ArgsType>) {\n Object.assign(this, v);\n if (v.page) {\n this.onPageChange(v.page);\n }\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { helper } from './chunk-
|
|
1
|
+
import { helper } from './chunk-R4N52NI2.mjs';
|
|
2
2
|
import { __spreadProps, __spreadValues, __objRest } from './chunk-6F7H4PAA.mjs';
|
|
3
3
|
import { createPublicClient, http, getContract, encodeFunctionData } from 'viem';
|
|
4
4
|
import { iotexTestnet, mainnet, iotex, bsc, polygon } from 'viem/chains';
|
|
@@ -447,4 +447,4 @@ var AIem = _AIem;
|
|
|
447
447
|
|
|
448
448
|
export { AIem, Cache, Fields };
|
|
449
449
|
//# sourceMappingURL=out.js.map
|
|
450
|
-
//# sourceMappingURL=chunk-
|
|
450
|
+
//# sourceMappingURL=chunk-QDALAJJK.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../aiem.ts","../lib/decorators.ts","../constants/abi.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type Chain,\n type GetContractReturnType,\n type Abi,\n type PublicClient,\n type HttpTransport,\n type WalletClient,\n type Transport,\n type Account,\n type MulticallBatchOptions,\n encodeFunctionData,\n http,\n getContract,\n createPublicClient,\n} from \"viem\";\nimport { iotex, mainnet, bsc, polygon, iotexTestnet } from \"viem/chains\";\nimport TTLCache from \"@isaacs/ttlcache\";\nimport { ClassType } from \"./lib/interface\";\nimport { getFieldMetadata } from \"./lib/decorators\";\nimport { helper } from \"./utils\";\nimport BigNumber from \"bignumber.js\";\nimport { ERC20ABI } from \"./constants/abi\";\n\n//@ts-ignore\nBigInt.prototype.toJSON = function () {\n return this.toString();\n};\n\n((iotexTestnet.contracts = {\n multicall3: {\n //@ts-ignore\n address: \"0xb5cecd6894c6f473ec726a176f1512399a2e355d\",\n blockCreated: 24347592,\n },\n}),\n //@ts-ignore\n (mainnet.rpcUrls.default.http = [\"https://rpc.ankr.com/eth\"]));\n//@ts-ignore\nmainnet.rpcUrls.default.webSocket = [\"wss://ethereum-rpc.publicnode.com\"];\n\nexport { Fields } from \"./lib/decorators\";\n\nexport class Cache {\n kv = new TTLCache<string, any>({ max: 10000, ttl: 1000 * 60 });\n\n wrap<T>(key: string, fn: () => T | Promise<T>, config: TTLCache.Options<any, any> = {}): T | Promise<T> {\n if (this.kv.has(key)) {\n // console.log(`load ${key} from cache`)\n return this.kv.get(key);\n }\n\n const result = fn();\n if (result instanceof Promise) {\n const promiseResult = result.then((res) => {\n this.kv.set(key, res, config);\n return res;\n });\n this.kv.set(key, promiseResult, config);\n return promiseResult;\n } else {\n this.kv.set(key, result, config);\n return result;\n }\n }\n}\n\nexport type GetOptions = {\n multicall?: boolean | MulticallBatchOptions;\n rpcUrls?: Chain[\"rpcUrls\"];\n pollingInterval?: number;\n};\n\nexport class AIem<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends { [K in keyof Contracts]?: { [key: string]: `${string}-0x${string}` } }> {\n static cache?: Cache = new Cache();\n cache?: Cache = new Cache();\n contractMap?: Contracts;\n //@ts-ignore\n chainMap?: Chains = {\n [iotex.id]: iotex,\n [mainnet.id]: mainnet,\n [bsc.id]: bsc,\n [polygon.id]: polygon,\n [iotexTestnet.id]: iotexTestnet,\n };\n nameMap?: Addrs;\n contracts: {\n [K in keyof Addrs & keyof Contracts]: {\n //@ts-ignore\n [KK in keyof Addrs[K]]: GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>, any, any>;\n };\n };\n static defaultFuncMap = {\n totalSupply: { ttl: 15 * 1000 },\n symbol: { ttl: 60 * 1000 },\n name: { ttl: 60 * 1000 },\n decimals: { ttl: 60 * 1000 },\n balanceOf: { ttl: 5 * 1000 },\n };\n funcMap?: { [key: string]: { ttl?: number } } = {};\n\n get _cache() {\n return AIem.cache;\n }\n\n //@ts-ignore\n getWallet?: () => WalletClient;\n\n static Set<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends { [K in keyof Contracts]?: { [key: string]: `${string}-0x${string}` } }>(\n args: Pick<AIem<Contracts, Chains, Addrs>, \"contractMap\" | \"chainMap\" | \"nameMap\" | \"getWallet\" | \"cache\" | \"funcMap\">,\n ) {\n return this.init().Set(args);\n }\n\n Set<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends { [K in keyof Contracts]?: { [key: string]: `${string}-0x${string}` } }>(\n args: Pick<AIem<Contracts, Chains, Addrs>, \"contractMap\" | \"chainMap\" | \"nameMap\" | \"getWallet\" | \"cache\" | \"funcMap\">,\n ): AIem<Contracts, Chains, Addrs> {\n const { chainMap = {}, contractMap = {}, funcMap, ...rest } = args || {};\n //@ts-ignore\n this.chainMap = Object.assign({}, this.chainMap || {}, chainMap);\n //@ts-ignore\n this.contractMap = Object.assign({}, this.contractMap || {}, contractMap);\n //@ts-ignore\n this.funcMap = Object.assign({}, this.funcMap || {}, funcMap);\n\n Object.assign(this, rest);\n return this as any;\n }\n\n constructor(args: Pick<AIem<Contracts, Chains, Addrs>, \"contractMap\" | \"chainMap\" | \"nameMap\" | \"getWallet\" | \"cache\" | \"funcMap\"> = {}) {\n this.Set(args);\n\n this.contracts = new Proxy(\n {},\n {\n //@ts-ignore\n get: (target: any, contractName: keyof Addrs & keyof Contracts) => {\n if (target[contractName]) return target[contractName];\n\n if (!this.nameMap[contractName]) {\n throw new Error(`Contract ${String(contractName)} not found`);\n }\n\n target[contractName] = new Proxy(\n {},\n {\n //@ts-ignore\n get: (innerTarget: any, contractAlias: keyof Addrs[keyof Addrs]) => {\n const addressStr = this.nameMap[contractName]?.[contractAlias];\n if (!addressStr) {\n throw new Error(`Alias ${String(contractAlias)} for contract ${String(contractName)} not found`);\n }\n const [chainId, address] = addressStr.split(\"-\");\n\n // Assuming getContractInstance is a function that retrieves a contract instance\n return this.Get(contractName, String(chainId), address as `0x${string}`);\n },\n },\n );\n return target[contractName];\n },\n },\n ) as any;\n }\n\n // WsClient<C extends keyof Chains>(chainId: C): PublicClient<WebSocketTransport, Chain, any, any> {\n // //@ts-ignore\n // return this.cache.wrap(`wsClient-${String(chainId)}`, () => {\n // // const wsUrl = this.chainMap[chainId]?.rpcUrls?.default?.webSocket?.[0]\n // // if (!wsUrl) throw new Error(`rpcUrls.default.webSocket[0] is not defined for chainId ${String(chainId)}`)\n // // //@ts-ignore\n // return createPublicClient({\n // //@ts-ignore\n // chain: this.chainMap[chainId],\n // transport: webSocket()\n // }) as PublicClient<WebSocketTransport, Chain, any, any>\n // })\n // }\n\n static PubClient(chainId: string, options: GetOptions = { multicall: true }): PublicClient<HttpTransport, Chain, any, any> {\n //@ts-ignore\n return this.init().PubClient(chainId, options);\n }\n\n PubClient<C extends keyof Chains>(chainId: C, options: GetOptions = { multicall: true }): PublicClient<HttpTransport, Chain, any, any> {\n const chain = this.chainMap[chainId];\n if (options.rpcUrls) {\n chain.rpcUrls = options.rpcUrls;\n }\n //@ts-ignore\n return this._cache.wrap(`publicClient-${String(chainId)}-${chain.rpcUrls.default.http}-${JSON.stringify(options?.multicall)}-${options?.pollingInterval}`, () => {\n //@ts-ignore\n return createPublicClient({\n //@ts-ignore\n chain,\n ...(options?.multicall\n ? {\n batch: {\n multicall: typeof options.multicall === \"boolean\" ? true : options.multicall,\n },\n }\n : {}),\n ...(options?.pollingInterval\n ? {\n pollingInterval: options.pollingInterval,\n }\n : {\n pollingInterval: 2500,\n }),\n //@ts-ignore\n transport: http(),\n });\n });\n }\n\n //@ts-ignore\n static Get<TAbi extends Abi = any, ReturnType extends GetContractReturnType<TAbi, WalletClient<Transport, Chain, Account>>>(\n abi: TAbi,\n chainId: any,\n address: any,\n wallet?: WalletClient,\n //@ts-ignore\n options?: GetOptions = { multicall: true },\n //@ts-ignore\n ): ReturnType & { encode: ReturnType[\"write\"] } {\n const aiem = this.init();\n if (!wallet) {\n wallet = aiem.getWallet ? aiem.getWallet() : null;\n }\n\n const cacheKey = `contract ${chainId}-${address}-${wallet ? wallet.account.address : null}`;\n return aiem._cache.wrap(cacheKey, () => {\n //@ts-ignore\n const pubClient = aiem.PubClient(chainId, options);\n\n //@ts-ignore\n return aiem.getContract({\n client: {\n //@ts-ignore\n public: pubClient,\n //@ts-ignore\n wallet,\n },\n address,\n abi,\n });\n }) as any;\n }\n\n //@ts-ignore\n Get<K extends keyof Contracts, C extends keyof Chains, Addr extends `0x${string}`>(\n contractName: K,\n chainId: C,\n address: Addr,\n options: GetOptions = { multicall: true },\n //@ts-ignore\n ): GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>> & { encode: GetContractReturnType<Contracts[K], WalletClient<HttpTransport, Chain, Account, any>>[\"write\"] } {\n const wallet = this.getWallet ? this.getWallet() : null;\n //@ts-ignore\n const cacheKey = `contract ${chainId}-${address}-${wallet ? wallet.account.address : null}`;\n return this._cache.wrap(cacheKey, () => {\n //@ts-ignore\n const contract = this.contractMap[contractName];\n //@ts-ignore\n const pubClient = this.PubClient(chainId, options);\n\n //@ts-ignore\n return this.getContract({\n client: {\n //@ts-ignore\n public: pubClient,\n //@ts-ignore\n wallet,\n },\n address,\n abi: contract,\n });\n }) as any;\n }\n\n getContract({\n client,\n address,\n abi,\n }: {\n client: {\n public: PublicClient<HttpTransport, Chain, any, any>;\n wallet?: WalletClient;\n };\n address: `0x${string}`;\n abi: any;\n }) {\n const handler = {\n get: (target: any, funcName: any) => {\n if (funcName == \"encode\") {\n return new Proxy(\n {},\n {\n get(t1, f1) {\n return async (args: any) => {\n // @ts-ignore\n return encodeFunctionData({\n abi,\n functionName: f1,\n args,\n });\n };\n },\n },\n );\n }\n\n if (typeof target[funcName] === \"function\") {\n return async (...args: any[]) => {\n const methodConfig = this.funcMap?.[funcName as string];\n // const cacheKey = `method:${client.public.chain.id}-${address}-${String(funcName)}-${JSON.stringify(args)}`;\n const cacheKey = `call ${client.public.chain.id}-${address}-${funcName}-${JSON.stringify(args)}`;\n\n if (methodConfig) {\n return this.cache.wrap(\n cacheKey,\n () => {\n return target[funcName](...args);\n },\n methodConfig,\n );\n }\n\n return target[funcName](...args);\n };\n }\n return new Proxy(target[funcName], handler);\n },\n };\n\n //@ts-ignore\n const contract = getContract({\n //@ts-ignore\n client,\n address,\n abi,\n });\n return new Proxy(contract, handler) as any;\n }\n\n static init(): AIem<any, any, any> {\n if (!globalThis.aiem) {\n //@ts-ignore\n globalThis.aiem = new AIem();\n }\n\n return globalThis.aiem;\n }\n\n static async getPrice({ chainId = \"4689\", address }: { chainId?: string; address: string }) {\n const priceMap = await this.cache.wrap(\n `token-price`,\n async () => {\n const res = await (await fetch(\"https://api.iopay.me/api/rest/price\")).json();\n return Object.values(res)\n .flat()\n .reduce((p, c: { platforms: string; current_price: number }) => {\n p[`${4689}-${c.platforms.toLowerCase()}`] = c.current_price;\n return p;\n }, {});\n },\n { ttl: 1000 * 60 },\n );\n return priceMap[`${chainId}-${address}`];\n }\n\n static utils = {\n autoFormat: async ({ value, decimals, chainId, address }: { value: string; decimals?: number; chainId: string; address: string }) => {\n if (!decimals) {\n //@ts-ignore\n decimals = await this.cache.wrap(`${chainId}-${address}-decimals`, async () => {\n //@ts-ignore\n return this.Get(ERC20ABI, chainId, address).read.decimals();\n });\n }\n const wrap = helper.number.warpBigNumber(value, decimals, { format: \"0,0.000000\", fallback: \"\" });\n const price = await this.getPrice({ chainId, address: address.toLowerCase() });\n const usd = new BigNumber(wrap.originFormat).multipliedBy(price || 0).toFixed(2);\n return { ...wrap, usd, price };\n },\n };\n\n static QueryMany<E, S extends QuerySelect<E>>(entity: ClassType<E>, select: S) {\n return async (_entities: Partial<E>[]): Promise<QueryReturnType<E, S>[]> => {\n //@ts-ignore\n return this.Query(entity, select)(_entities) as any;\n };\n }\n\n static Query<E, S extends QuerySelect<E>>(entity: ClassType<E>, select: S) {\n return async (entities: Partial<E>): Promise<QueryReturnType<E, S>> => {\n const isArrayInput = Array.isArray(entities);\n\n try {\n const results: Array<QueryReturnType<E, S>> = [];\n\n if (!isArrayInput) {\n //@ts-ignore\n entities = [entities];\n }\n //@ts-ignore\n for (const entityData of entities) {\n const instance = Object.assign(new entity(), entityData);\n // const result: any = {};\n\n const fetchFields = async (obj: any, sel: any) => {\n const promises = [];\n for (const key in sel) {\n // return console.log(key, getFieldMetadata(obj, key))\n // Check if the property is annotated with @Fields.read(), @Fields.custom(), or @Fields.contract()\n const fieldMetadata = getFieldMetadata(obj, key);\n let call: any;\n //@ts-ignore\n const enableMulticall = entity.multicall == false ? false : true;\n // console.log(key, fieldMetadata, instance)\n if (sel[key] == false) {\n call = async () => null;\n } else {\n switch (fieldMetadata?.type) {\n case \"read\":\n if (Array.isArray(sel[key])) {\n //@ts-ignore\n call = () => this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall }).read[key](sel[key]);\n } else {\n //@ts-ignore\n call = () => this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall }).read[key]();\n }\n break;\n case \"write\":\n // @ts-ignore\n obj[key] = encodeFunctionData({\n //@ts-ignore\n abi: entity.abi,\n functionName: key,\n args: sel[key],\n });\n\n break;\n case \"custom\":\n const func = fieldMetadata.func;\n call = () => func(instance);\n break;\n case \"entity\":\n const targetMetadata = getFieldMetadata(instance, fieldMetadata.targetKey);\n\n if (typeof fieldMetadata.targetKey == \"string\") {\n if (targetMetadata?.options?.ttl) {\n //@ts-ignore\n const cacheKey = `call ${instance.chainId}-${instance.address}-${fieldMetadata.targetKey}`;\n //@ts-ignore\n call = () =>\n new Promise(async (resolve) => {\n //@ts-ignore\n const address = await this.cache.wrap(cacheKey, async () =>\n //@ts-ignore\n this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall }).read[fieldMetadata.targetKey](),\n );\n //@ts-ignore\n resolve(this.Query(fieldMetadata.entity(), sel[key])({ address, chainId: instance.chainId }));\n });\n } else {\n call = () =>\n //@ts-ignore\n this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall })\n //@ts-ignore\n .read[fieldMetadata.targetKey]()\n .then((address: any) => {\n // console.log({ address, sel: sel[key] })\n //@ts-ignore\n return this.Query(fieldMetadata.entity(), sel[key])({ address, chainId: instance.chainId });\n });\n }\n } else {\n //@ts-ignore\n call = () =>\n fieldMetadata.targetKey(instance).then((args) => {\n // console.log(args)\n return Array.isArray(args) ? this.QueryMany(fieldMetadata.entity(), sel[key])(args) : this.Query(fieldMetadata.entity(), sel[key])(args);\n });\n }\n break;\n default:\n if (typeof obj[key] == \"function\") {\n call = () => obj[key](...(Array.isArray(sel[key]) ? sel[key] : []));\n }\n break;\n }\n }\n\n if (call) {\n if (fieldMetadata?.options?.ttl) {\n //@ts-ignore\n const cacheKey = `call ${instance.chainId}-${instance.address}-${key}-${JSON.stringify(sel[key])}`;\n promises.push(\n new Promise(async (resolve) => {\n const value = await this.cache.wrap(cacheKey, async () => call().catch((i) => null), fieldMetadata.options);\n obj[key] = value;\n resolve(value);\n }),\n );\n } else {\n promises.push(\n call()\n .then((value) => {\n obj[key] = value;\n })\n .catch((i) => (obj[key] = null)),\n );\n }\n }\n }\n\n await Promise.all(promises);\n };\n\n await fetchFields(instance, select);\n //@ts-ignore\n results.push(instance);\n }\n\n if (isArrayInput) {\n return results as any;\n } else {\n return results[0] as any;\n }\n } catch (error) {\n if (isArrayInput) {\n return [] as any;\n } else {\n return null as any;\n }\n }\n };\n }\n}\nexport type Item<T> = T extends (infer U)[] ? U : T;\n\n// export type QueryResult<E, S extends QuerySelect<E>> =\n// E extends Array<any> ? Promise<Array<QueryReturnType<E[number], S>>> :\n// E extends object ? Promise<QueryReturnType<E, S>> :\n// never;\n\ntype QuerySelect<E> = {\n [K in keyof E]?: E[K] extends (...args: any[]) => any ? Parameters<E[K]> | boolean : E[K] extends object ? QuerySelect<Item<E[K]>> | boolean : boolean;\n};\n\n// type FunctionReturn<T> = T extends (...args: any[]) => any ? Awaited<ReturnType<T>> : T;\n// type NestedReturn<E, S> = E extends object ? S extends object ? QueryReturnType<E, S> : E : E;\n\nexport type QueryReturnType<E, S extends QuerySelect<E>> = {\n [K in keyof E]: K extends keyof S\n ? E[K] extends (...args: any[]) => any\n ? Awaited<ReturnType<E[K]>>\n : E[K] extends object\n ? S[K] extends object\n ? QueryReturnType<E[K], S[K]>\n : E[K]\n : E[K]\n : E[K];\n};\n","import \"reflect-metadata\";\nimport { ClassType } from \"./interface\";\n\nexport const FIELD_KEY = Symbol(\"aiem_field\");\n\nexport interface FieldParams {\n ttl?: number;\n}\n\nexport type ContractParams<T extends any = any, K extends keyof T = keyof T> = K;\n\nconst metadataCache = new WeakMap<any, Map<any, any>>();\n\nexport class Fields {\n static hide(options: any = {}) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"hide\", options });\n };\n }\n\n static read(options: any = {}) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"read\", options });\n };\n }\n\n static write(options: any = {}) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"write\", options });\n };\n }\n\n static custom(func: any = {}) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"custom\", func });\n };\n }\n\n static relation<T = any, R = any>(entity: () => ClassType<R>, options: ((e: T) => Promise<Partial<R> | Partial<R>[]>) | string) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"entity\", entity, targetKey: options });\n };\n }\n\n static contract<T = any, R = any>(entity: () => ClassType<R>, options: ((e: T) => Promise<Partial<R> | Partial<R>[]>) | string) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"entity\", entity, targetKey: options });\n };\n }\n private static setMetadata(target: any, propertyKey: any, metadata: any) {\n let targetMetadata = metadataCache.get(target);\n if (!targetMetadata) {\n targetMetadata = new Map<any, any>();\n metadataCache.set(target, targetMetadata);\n }\n targetMetadata.set(propertyKey, metadata);\n // @ts-ignore \n Reflect.defineMetadata(FIELD_KEY, metadata, target, propertyKey);\n }\n}\n\nexport function getFieldMetadata(target: any, propertyKey: string) {\n const targetMetadata = metadataCache.get(target);\n if (targetMetadata) {\n return targetMetadata.get(propertyKey);\n }\n // @ts-ignore \n return Reflect.getMetadata(FIELD_KEY, target, propertyKey);\n}\n","export const ERC20ABI = [{ \"inputs\": [{ \"internalType\": \"string\", \"name\": \"name\", \"type\": \"string\" }, { \"internalType\": \"string\", \"name\": \"symbol\", \"type\": \"string\" }, { \"internalType\": \"uint256\", \"name\": \"initialSupply\", \"type\": \"uint256\" }, { \"internalType\": \"address\", \"name\": \"owner\", \"type\": \"address\" }], \"stateMutability\": \"nonpayable\", \"type\": \"constructor\" }, { \"anonymous\": false, \"inputs\": [{ \"indexed\": true, \"internalType\": \"address\", \"name\": \"owner\", \"type\": \"address\" }, { \"indexed\": true, \"internalType\": \"address\", \"name\": \"spender\", \"type\": \"address\" }, { \"indexed\": false, \"internalType\": \"uint256\", \"name\": \"value\", \"type\": \"uint256\" }], \"name\": \"Approval\", \"type\": \"event\" }, { \"anonymous\": false, \"inputs\": [{ \"indexed\": true, \"internalType\": \"address\", \"name\": \"from\", \"type\": \"address\" }, { \"indexed\": true, \"internalType\": \"address\", \"name\": \"to\", \"type\": \"address\" }, { \"indexed\": false, \"internalType\": \"uint256\", \"name\": \"value\", \"type\": \"uint256\" }], \"name\": \"Transfer\", \"type\": \"event\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"owner\", \"type\": \"address\" }, { \"internalType\": \"address\", \"name\": \"spender\", \"type\": \"address\" }], \"name\": \"allowance\", \"outputs\": [{ \"internalType\": \"uint256\", \"name\": \"\", \"type\": \"uint256\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"spender\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"amount\", \"type\": \"uint256\" }], \"name\": \"approve\", \"outputs\": [{ \"internalType\": \"bool\", \"name\": \"\", \"type\": \"bool\" }], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"account\", \"type\": \"address\" }], \"name\": \"balanceOf\", \"outputs\": [{ \"internalType\": \"uint256\", \"name\": \"\", \"type\": \"uint256\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"uint256\", \"name\": \"amount\", \"type\": \"uint256\" }], \"name\": \"burn\", \"outputs\": [], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"account\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"amount\", \"type\": \"uint256\" }], \"name\": \"burnFrom\", \"outputs\": [], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [], \"name\": \"decimals\", \"outputs\": [{ \"internalType\": \"uint8\", \"name\": \"\", \"type\": \"uint8\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"spender\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"subtractedValue\", \"type\": \"uint256\" }], \"name\": \"decreaseAllowance\", \"outputs\": [{ \"internalType\": \"bool\", \"name\": \"\", \"type\": \"bool\" }], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"spender\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"addedValue\", \"type\": \"uint256\" }], \"name\": \"increaseAllowance\", \"outputs\": [{ \"internalType\": \"bool\", \"name\": \"\", \"type\": \"bool\" }], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [], \"name\": \"name\", \"outputs\": [{ \"internalType\": \"string\", \"name\": \"\", \"type\": \"string\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [], \"name\": \"symbol\", \"outputs\": [{ \"internalType\": \"string\", \"name\": \"\", \"type\": \"string\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [], \"name\": \"totalSupply\", \"outputs\": [{ \"internalType\": \"uint256\", \"name\": \"\", \"type\": \"uint256\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"recipient\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"amount\", \"type\": \"uint256\" }], \"name\": \"transfer\", \"outputs\": [{ \"internalType\": \"bool\", \"name\": \"\", \"type\": \"bool\" }], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"sender\", \"type\": \"address\" }, { \"internalType\": \"address\", \"name\": \"recipient\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"amount\", \"type\": \"uint256\" }], \"name\": \"transferFrom\", \"outputs\": [{ \"internalType\": \"bool\", \"name\": \"\", \"type\": \"bool\" }], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }] as const;"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ } from './chunk-
|
|
1
|
+
import { _ } from './chunk-K7LFG5BA.mjs';
|
|
2
2
|
import BN, { BigNumber } from 'bignumber.js';
|
|
3
3
|
import JSONFormat from 'json-format';
|
|
4
4
|
import copy from 'copy-to-clipboard';
|
|
@@ -317,4 +317,4 @@ var helper = {
|
|
|
317
317
|
|
|
318
318
|
export { helper };
|
|
319
319
|
//# sourceMappingURL=out.js.map
|
|
320
|
-
//# sourceMappingURL=chunk-
|
|
320
|
+
//# sourceMappingURL=chunk-R4N52NI2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../lib/helper.ts"],"names":[],"mappings":"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","sourcesContent":["import BN, { BigNumber } from \"bignumber.js\";\nimport JSONFormat from \"json-format\";\nimport { _ } from \"./lodash\";\nimport copy from \"copy-to-clipboard\";\nimport numeral from \"numeral\";\nimport { from } from \"@iotexproject/iotex-address-ts\";\n\nconst valMap = {\n undefined: \"\",\n null: \"\",\n false: false,\n};\n\nexport const helper = {\n env: {\n isIopayMobile: () => navigator.userAgent && (navigator.userAgent.includes(\"IoPayAndroid\") || navigator.userAgent.includes(\"IoPayiOs\")),\n isBrowser: () => typeof window === \"object\",\n onBrowser(func) {\n if (this.isBrowser()) {\n func();\n }\n },\n },\n promise: {\n async sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n },\n async runAsync<T, U = Error>(promise: Promise<T>): Promise<[U | null, T | null]> {\n return promise.then<[null, T]>((data: T) => [null, data]).catch<[U, null]>((err) => [err, null]);\n },\n },\n object: {\n crawlObject(object, options) {\n const newObj = JSON.parse(JSON.stringify(object));\n return helper.object.crawl(newObj, options);\n },\n crawl(object, options) {\n Object.keys(object).forEach((i) => {\n if (typeof object[i] === \"object\") {\n helper.object.crawl(object[i], options);\n } else {\n const handler = options[typeof object[i]];\n if (handler) {\n object[i] = handler(object[i]);\n }\n }\n });\n return object;\n },\n },\n json: {\n isJsonString(str: string) {\n if (!str || typeof str !== \"string\") return false;\n if (!str?.includes(\"{\")) return false;\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n },\n safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n },\n },\n deepAssign(target, ...sources) {\n sources.forEach((source) => {\n Object.keys(source).forEach((key) => {\n let descriptor = Object.getOwnPropertyDescriptor(source, key);\n if (descriptor && descriptor?.get) {\n return Object.defineProperty(target, key, descriptor);\n }\n const targetValue = target[key];\n let sourceValue = source[key];\n if (helper.isObject(targetValue) && helper.isObject(sourceValue)) {\n try {\n target[key] = helper.deepAssign(targetValue, sourceValue);\n } catch (e) {\n target[key] = Object.assign(targetValue, sourceValue);\n }\n } else {\n target[key] = sourceValue;\n }\n });\n });\n return target;\n },\n isObject(value) {\n return value != null && typeof value === \"object\";\n },\n deepMerge(obj, newObj) {\n const newVal = _.mergeWith(obj, newObj, (...args) => {\n const [objValue, srcValue] = args;\n if (typeof srcValue === \"object\") {\n return helper.deepMerge(objValue, srcValue);\n }\n return srcValue || valMap[srcValue];\n });\n return newVal;\n },\n img: {\n parse(src: string | undefined) {\n if (!src) return \"/img-404.svg\";\n if (src?.startsWith(\"ipfs\")) {\n return \"https://ipfs.io/ipfs/\" + src.split(\"://\")[1];\n }\n return src;\n },\n },\n string: {\n copy(str: string) {\n copy(str);\n },\n fristUpper(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n },\n firstUpperCase(str: string) {\n return str.replace(/^\\S/, (s) => s.toUpperCase());\n },\n toFixString(str, length) {\n if (str && str.length > length) {\n return str.substr(0, length) + \"...\";\n } else {\n return str;\n }\n },\n truncate(fullStr = \"\", strLen, separator) {\n if (fullStr.length <= strLen) return fullStr;\n\n separator = separator || \"...\";\n\n var sepLen = separator.length,\n charsToShow = strLen - sepLen,\n frontChars = Math.ceil(charsToShow / 2),\n backChars = Math.floor(charsToShow / 2);\n\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n },\n validAbi(abi: string): { abi: any[]; address: string } {\n try {\n JSON.parse(abi);\n const _abi = helper.json.safeParse(abi);\n if (!_abi) {\n return { abi: [], address: \"\" };\n }\n if (Array.isArray(_abi)) {\n return { abi: _abi, address: \"\" };\n } else if (_abi.abi && _abi.address) {\n return { abi: _abi.abi, address: _abi.address };\n } else if (_abi.abi && !_abi.addresses) {\n return { abi: _abi.abi, address: \"\" };\n }\n return { abi: [], address: \"\" };\n } catch (error) {\n return { abi: [], address: \"\" };\n }\n },\n random(count: number) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let result = \"\";\n for (let i = 0; i < count; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return result;\n },\n },\n download: {\n downloadByBlob(name: string, blob: Blob) {\n const a = document.createElement(\"a\");\n const href = window.URL.createObjectURL(blob);\n a.href = href;\n a.download = name;\n a.click();\n },\n downloadJSON(name: string, jsonObj: object) {\n try {\n const jsonStr: string = JSONFormat(jsonObj);\n const blob = new Blob([jsonStr], { type: \"application/json\" });\n this.downloadByBlob(name + \".json\", blob);\n } catch (error) {\n console.error(error);\n }\n },\n },\n number: {\n countNonZeroNumbers: (str: string) => {\n let index = 0;\n const length = str.length;\n for (; index < length && (str[index] === \"0\" || str[index] === \".\"); index += 1);\n return length - index - Number(str.includes(\".\"));\n },\n numberWithCommas(num: number) {\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n },\n getBN: (value: number | string | BN) => {\n return value instanceof BN ? value : typeof value === \"string\" ? new BN(Number(value)) : new BN(value);\n },\n toPrecisionFloor: (str: number | string, options?: { decimals?: number; format?: string; toLocalString?: boolean }) => {\n const { decimals = 6, format = \"\", toLocalString = false } = options || {};\n if (!str || isNaN(Number(str))) return \"\";\n\n if (helper.number.countNonZeroNumbers(String(str)) <= decimals) return String(str);\n const numStr = new BN(str).toFixed();\n let result = \"\";\n let index = 0;\n const numLength = numStr.length;\n\n for (; numStr[index] === \"0\" && index < numLength; index += 1);\n\n if (index === numLength) return \"0\";\n\n if (numStr[index] === \".\") {\n // number < 0\n result = \"0\";\n for (; (numStr[index] === \"0\" || numStr[index] === \".\") && index < numLength; index += 1) {\n result = result + numStr[index];\n }\n }\n let resultNumLength = 0;\n for (; index < numLength && (resultNumLength < decimals || !result.includes(\".\")); index += 1) {\n result = result + numStr[index];\n\n if (numStr[index] !== \".\") resultNumLength += 1;\n }\n if (format) {\n return numeral(Number(result)).format(format);\n }\n\n if (toLocalString) {\n return helper.number.numberWithCommas(Number(new BN(result).toFixed()));\n }\n\n return new BN(result).toFixed();\n },\n\n //format: '0,0'\n warpBigNumber(value: string, decimals = 18, options?: { format?: string; fallback?: string; min?: number }) {\n const { format = \"0.0\", fallback = \"0.000\", min } = options || {};\n if (!value) {\n return {\n value: \"...\",\n format: \"...\",\n originFormat: \"...\",\n decimals: \"0\",\n // isZero: true,\n };\n }\n const BigNumberResponse = { value: new BigNumber(value), decimals };\n return {\n value: BigNumberResponse.value.toFixed(0),\n originFormat: BigNumberResponse.value.div(10 ** decimals).toFixed(),\n format: helper.number.numberFormat(BigNumberResponse.value.div(10 ** decimals).toFixed(), format, { fallback, min }),\n decimals: String(BigNumberResponse.decimals),\n // isZero: BigNumberResponse.value.isZero(),\n };\n },\n //http://numeraljs.com/ format params does not need to deal with decimal places\n //format: '$0,0' '0a' '0,0' '0,0$'\n numberFormat(str: string | number, format: string = \"0,0\", options: { min?: number; fallback?: string } = {}): string {\n const { fallback = \"0.00\" } = options || {};\n\n if (!str || isNaN(Number(str))) return fallback;\n const numStr = new BigNumber(str).toFixed();\n const countNonZeroNumbers = (_str: string) => {\n const decimalPointIndex = _str.indexOf(\".\");\n if (decimalPointIndex === -1) {\n return 0;\n }\n const decimalPart = _str.substring(decimalPointIndex + 1);\n let trailingZerosCount = 0;\n for (let i = 0; i < decimalPart.length; i++) {\n if (decimalPart[i] === \"0\") {\n trailingZerosCount++;\n } else {\n break;\n }\n }\n return trailingZerosCount;\n };\n\n const fractionDigits = countNonZeroNumbers(format);\n const numberFractionDigits = countNonZeroNumbers(numStr);\n if (options?.min) {\n if (new BigNumber(numStr).isLessThan(new BigNumber(options?.min || 0))) {\n return `< ${numeral(options?.min).format(format)}`;\n }\n }\n const fullStr = new BigNumber(numStr).toFixed();\n let preStr = numeral(fullStr.split(\".\")[0]).format(format.split(\".\")[0]);\n const fractionStr = fullStr.split(\".\")?.[1]?.slice(0, fractionDigits + numberFractionDigits);\n\n if (numberFractionDigits >= fractionDigits) {\n return (preStr + \".\" + fractionStr).replace(/\\.?0+$/, \"\");\n }\n\n if (fractionStr?.[fractionDigits - 1] == \"9\") {\n return (preStr + \".\" + fractionStr.slice(0, fractionDigits - 1) + \"9\").replace(/\\.?0+$/, \"\");\n }\n\n const resultStr = numeral(new BigNumber(numStr).toString()).format(format);\n return resultStr.replace(/\\.?0+$/, \"\");\n },\n },\n address: {\n convertAddress: (addressMode: \"io\" | \"0x\", address: string = \"\"): string => {\n try {\n if (addressMode == \"0x\" && helper.address.validateIoAddress(address)) {\n return from(address).stringEth();\n }\n if (addressMode == \"io\" && helper.address.validateEthAddress(address)) {\n return from(address).string();\n }\n } catch (error) { }\n return address;\n },\n validateEthAddress: (address: string) => /^0x[a-fA-F0-9]{40}$/.test(address),\n validateIoAddress: (address: string) => /^io[a-zA-Z0-9]{39}$/.test(address),\n validateAddress: (address: string) => helper.address.validateEthAddress(address) || helper.address.validateIoAddress(address),\n },\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ToastPlugin } from './chunk-
|
|
2
|
-
import { RootStore } from './chunk-
|
|
1
|
+
import { ToastPlugin } from './chunk-IMOLRP7I.mjs';
|
|
2
|
+
import { RootStore } from './chunk-IDKGZ5T4.mjs';
|
|
3
3
|
import { makeAutoObservable } from 'mobx';
|
|
4
4
|
import { EventEmitter } from 'events';
|
|
5
5
|
import { useEffect } from 'react';
|
|
@@ -222,4 +222,4 @@ var PromiseState = class {
|
|
|
222
222
|
|
|
223
223
|
export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState };
|
|
224
224
|
//# sourceMappingURL=out.js.map
|
|
225
|
-
//# sourceMappingURL=chunk-
|
|
225
|
+
//# sourceMappingURL=chunk-SL5OV6OR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../store/standard/base.ts","../store/standard/PromiseState.ts"],"names":["makeAutoObservable"],"mappings":"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","sourcesContent":["import { makeAutoObservable } from \"mobx\";\n\nimport { type RootStore } from \"../root\";\n\nexport abstract class Store {\n sid?: string;\n stype?: string;\n disabled?: boolean;\n autoObservable?: boolean;\n autoAsyncable?: boolean;\n _active?: number;\n\n stores?: Store[];\n\n private pannel?: {\n title: string;\n render: any;\n };\n devtools?: {\n enable?: boolean;\n started?: boolean;\n panels: Store[\"pannel\"][];\n };\n\n private slot?: {\n name?: string;\n input?: Record<string, any>;\n render: React.FC;\n };\n slots?: Record<string, Store[\"slot\"]>;\n\n events?: Record<string, { name: string; handler(args: { e: MouseEvent; v?: any }): any }>;\n\n provider?({ rootStore }: { rootStore: RootStore }): any;\n\n onNewStore?({ rootStore, store }: { rootStore: RootStore; store: Store }): void;\n onAddedStores?({ rootStore }: { rootStore: RootStore }): void;\n onAdded?({ rootStore }: { rootStore: RootStore }): void;\n\n init?(): void;\n JSONView?: Record<string, { name: string; render: React.FC }>;\n\n onKeyBindings?: () => { key: string; fn: () => void }[];\n\n constructor() {\n this._active = this._active ?? 0;\n }\n}\n\nexport type StoreClass<T extends Store> = new (...args: any[]) => T;\n\nexport interface BaseState {\n value: number;\n setValue(value: any): any;\n}\n\nexport class StringState<T extends string> {\n //@ts-ignore\n value: T = null;\n constructor(args: Partial<StringState<T>> = {}) {\n Object.assign(this, args);\n makeAutoObservable(this);\n }\n setValue(value: T) {\n this.value = value;\n }\n}\n\nexport class BooleanState {\n value: boolean = false;\n constructor(args: Partial<BooleanState> = {}) {\n Object.assign(this, args);\n makeAutoObservable(this);\n }\n setValue(value: boolean) {\n this.value = value;\n }\n}\n\nexport class NumberState {\n value: number = 0;\n constructor(args: Partial<NumberState> = {}) {\n Object.assign(this, args);\n makeAutoObservable(this);\n }\n setValue(value: number) {\n this.value = value;\n }\n}\n\nexport class ValueState<T> {\n //@ts-ignore\n _value: T = null;\n constructor(args: Partial<ValueState<T>> = {}) {\n Object.assign(this, args);\n makeAutoObservable(this);\n }\n\n get value() {\n return this.getValue ? this.getValue(this._value) : this._value;\n }\n\n set value(value) {\n this._value = value;\n }\n\n getValue: (value: T) => T;\n\n setValue(value: T) {\n this._value = value;\n }\n}\n\n// export interface Events {\n// data: (data: any) => void;\n// error: (error: any) => void;\n// update: () => void;\n// wait: () => void;\n// }\n","import { EventEmitter } from \"events\";\nimport { makeAutoObservable } from \"mobx\";\nimport { ToastPlugin } from \"../../module/Toast/Toast\";\nimport { RootStore } from \"../root\";\nimport { BaseState, BooleanState, NumberState } from \"./base\";\nimport { useEffect } from \"react\";\n\nexport interface Events {\n data: (data: any) => void;\n error: (error: any) => void;\n select: (index: number) => void;\n update: () => void;\n finally: () => void;\n wait: () => void;\n}\n\nexport class PromiseState<T extends (...args: any[]) => Promise<any>, U = ReturnType<T>> {\n sid = \"PromiseState\";\n key?: string;\n loading = new BooleanState();\n // @ts-ignore\n value?: Awaited<U> = null;\n defaultValue: any = null;\n function: T;\n transform?: (value: any) => Promise<Awaited<U>> | Awaited<U> = null;\n onError?: (error: any) => void | null = null;\n\n autoAlert = true;\n autoUpdate = false;\n autoInit = false;\n autoClean = false;\n context: any = undefined;\n\n successMsg: string = \"\";\n errMsg: string = \"\";\n showUnauthorizedAlert = false;\n\n loadingLock = true;\n\n // event plugin\n event = new EventEmitter();\n\n on<E extends keyof Events>(event: E, listener: Events[E]) {\n this.event.on(event, listener);\n return this;\n }\n\n once<E extends keyof Events>(event: E, listener: Events[E]) {\n this.event.once(event, listener);\n return this;\n }\n\n use<E extends keyof Events>(event: E, listener: Events[E]) {\n useEffect(() => {\n this.event.on(event, listener);\n return () => {\n this.event.off(event, listener);\n };\n }, []);\n\n return () => this.event.off(event, listener);\n }\n\n emit<E extends keyof Events>(event: E, ...args: Parameters<Events[E]>) {\n this.event.emit(event, ...args);\n }\n\n // init plugin\n init: () => Promise<void>;\n\n // list selector plugin\n currentIndex: BaseState = new NumberState({ value: 0 });\n get current() {\n if (Array.isArray(this.value) && this.value.length > 0 && !this.value[this.currentIndex.value]) {\n this.currentIndex.setValue(0);\n }\n //@ts-ignore\n return this.value[this.currentIndex.value];\n }\n\n _onSelect(index: number) {\n this.currentIndex.setValue(index);\n this.event.emit(\"select\", index);\n this.event.emit(\"update\");\n }\n\n onSelect(index: number) {\n this._onSelect(index);\n }\n\n toJSON() {\n return {\n value: this.value,\n };\n }\n\n // @ts-ignore\n async waitItem(): Promise<Awaited<U>[0]> {\n await this.wait();\n return this.current;\n }\n\n // wait hook plugin\n async wait({ call = false } = {}): Promise<Awaited<U>> {\n return new Promise<Awaited<U>>((res, rej) => {\n if (this.value) {\n if (Array.isArray(this.value)) {\n if (this.value.length > 0) {\n res(this.value);\n }\n } else {\n res(this.value);\n }\n }\n\n //@ts-ignore\n if (call && !this.loading.value) this.call();\n this.event.emit(\"wait\");\n this.event.once(\"data\", res);\n this.event.on(\"error\", rej);\n });\n }\n\n // devtool plugin\n debug: { name: string; input: Record<string, any> } = null;\n\n constructor(args: Partial<PromiseState<T, U>> = {}) {\n Object.assign(this, args);\n if (this.defaultValue) {\n this.value = this.defaultValue;\n }\n if (this.key) {\n RootStore.init().add(this, { sid: this.key });\n } else {\n makeAutoObservable(this);\n }\n }\n\n async setValue(val) {\n let _val = val;\n if (this.transform) {\n _val = await this.transform(val);\n }\n this.value = _val;\n this.event.emit(\"data\", val);\n this.event.emit(\"update\");\n }\n\n async getOrCall(...args: Parameters<T>): Promise<Awaited<U>> {\n if (this.value) {\n if (Array.isArray(this.value)) {\n if (this.value.length > 0) {\n return this.value;\n } else {\n return this.call(...args);\n }\n } else {\n return this.value;\n }\n } else {\n return this.call(...args);\n }\n }\n\n async call(...args: Parameters<T>): Promise<Awaited<U>> {\n const toast = RootStore.Get(ToastPlugin);\n try {\n if (this.loadingLock && this.loading.value == true) return;\n this.loading.setValue(true);\n const res = await this.function.apply(this.context, args);\n this.setValue(res);\n if (this.successMsg && res) {\n toast.success(this.successMsg);\n }\n return res;\n } catch (error) {\n if (this.autoAlert) {\n const message = error.message;\n if (message.includes(\"UNAUTHORIZED\")) {\n toast.dismiss();\n if (this.showUnauthorizedAlert) {\n toast.error(message);\n }\n } else {\n this.errMsg = message;\n toast.error(message);\n }\n this.onError?.(error);\n } else {\n if (this.onError) {\n this.onError(error);\n } else {\n this.event.emit(\"error\", error);\n throw error;\n }\n }\n } finally {\n this.event.emit(\"finally\");\n this.loading.setValue(false);\n }\n }\n}\n"]}
|
package/dist/dev.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { helper } from './chunk-
|
|
2
|
-
import { _ } from './chunk-
|
|
3
|
-
import { cn } from './chunk-
|
|
1
|
+
import { helper } from './chunk-R4N52NI2.mjs';
|
|
2
|
+
import { _ } from './chunk-K7LFG5BA.mjs';
|
|
3
|
+
import { cn } from './chunk-M5Y3VYMJ.mjs';
|
|
4
4
|
import { __objRest, __spreadProps, __spreadValues } from './chunk-6F7H4PAA.mjs';
|
|
5
5
|
import * as React3 from 'react';
|
|
6
6
|
import React3__default, { useMemo, useRef } from 'react';
|
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\";\r\n\r\nimport * as React from \"react\";\r\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { X } from \"lucide-react\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst Sheet = SheetPrimitive.Root;\r\n\r\nconst SheetTrigger = SheetPrimitive.Trigger;\r\n\r\n// @ts-ignore\r\nconst SheetPortal = ({ className, ...props }: SheetPrimitive.DialogPortalProps) => <SheetPrimitive.Portal className={cn(className)} {...props} />;\r\nSheetPortal.displayName = SheetPrimitive.Portal.displayName;\r\n\r\nconst SheetOverlay = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Overlay>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>>(({ className, ...props }, ref) => (\r\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} />\r\n));\r\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\r\n\r\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\", {\r\n variants: {\r\n side: {\r\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\r\n bottom: \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\r\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\",\r\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\",\r\n },\r\n },\r\n defaultVariants: {\r\n side: \"right\",\r\n },\r\n});\r\n\r\nconst SheetClose = ({ className, ...props }: SheetPrimitive.DialogCloseProps) => (\r\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}>\r\n <X className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Close</span>\r\n </SheetPrimitive.Close>\r\n);\r\nSheetClose.displayName = \"Close\";\r\n\r\ninterface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> { }\r\n\r\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps & { showOverlay?: boolean; open?: boolean }>(({ side = \"right\", className, children, showOverlay = false, open, ...props }, ref) => {\r\n return (\r\n <SheetPortal>\r\n {showOverlay && <SheetOverlay />}\r\n <div ref={ref} data-state={open ? \"open\" : \"closed\"} className={cn(sheetVariants({ side }), className)} {...props}>\r\n {children}\r\n </div>\r\n </SheetPortal>\r\n );\r\n});\r\nSheetContent.displayName = SheetPrimitive.Content.displayName;\r\n\r\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => <div className={cn(\"flex flex-col space-y-2 text-center sm:text-left\", className)} {...props} />;\r\nSheetHeader.displayName = \"SheetHeader\";\r\n\r\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} />;\r\nSheetFooter.displayName = \"SheetFooter\";\r\n\r\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} />);\r\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\r\n\r\nconst SheetDescription = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Description>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>>(({ className, ...props }, ref) => (\r\n <SheetPrimitive.Description ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\r\n));\r\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\r\n\r\nexport { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, SheetClose };\r\n","import { Sheet, SheetClose, SheetContent } from \"../../components/ui/sheet\";\r\nimport { Tabs, Tab } from \"@nextui-org/react\";\r\nimport { cn } from \"../../lib/utils\";\r\nimport { RootStore } from \"../../store/root\";\r\nimport { PromiseState } from \"../../store/standard/PromiseState\";\r\nimport { Store } from \"../../store/standard/base\";\r\nimport { Wrench } from \"lucide-react\";\r\nimport { observer, useLocalObservable } from \"mobx-react-lite\";\r\nimport { toJS } from \"mobx\";\r\nimport { helper } from \"../../lib/helper\";\r\nimport EventEmitter from \"events\";\r\nimport { useMemo } from \"react\";\r\nimport React from \"react\";\r\nimport { JSONEditor } from \"../../components/JSONEditor\"\r\n\r\nfunction filterState(obj) {\r\n if (obj.toJSON) {\r\n return obj.toJSON()\r\n }\r\n\r\n if (typeof obj !== \"object\" || obj === null) {\r\n return obj;\r\n }\r\n\r\n if (Array.isArray(obj)) {\r\n return obj.map(filterState);\r\n }\r\n\r\n const filteredObj = {};\r\n\r\n for (const [key, value] of Object.entries(obj)) {\r\n try {\r\n if (\r\n ![\"sid\", \"disabled\", \"autoObservable\", \"promiseState\", \"autoAsyncable\", \"stype\"].includes(key) &&\r\n // !(value instanceof PromiseState) &&\r\n !(value instanceof EventEmitter) &&\r\n !value?.hasOwnProperty(\"$$typeof\")\r\n ) {\r\n filteredObj[key] = filterState(value);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n return obj;\r\n }\r\n }\r\n\r\n return filteredObj;\r\n}\r\n\r\nexport class DevTool implements Store {\r\n sid = \"DevTool\";\r\n stype = \"Plugin\"\r\n provider = ({ rootStore }: { rootStore: RootStore }) => <DevToolProvider rootStore={rootStore} />;\r\n disabled?: boolean = false;\r\n autoObservable?: boolean = true;\r\n isOpen = false;\r\n\r\n panels: Store[\"pannel\"][] = [\r\n {\r\n title: \"Store\",\r\n render: observer(({ rootStore }: { rootStore: RootStore }) => {\r\n const state = useLocalObservable<{\r\n curStore: Store;\r\n curPromiseStateList: { name: string; promiseState: PromiseState<any, any> }[];\r\n }>(() => ({\r\n //@ts-ignore\r\n curStore: null,\r\n curPromiseStateList: [],\r\n }));\r\n const initialJson = useMemo(() => {\r\n //@ts-ignore\r\n if (state.curStore?.toJSON) return JSON.stringify(state.curStore?.toJSON(), null, 2);\r\n const filteredData = filterState(state.curStore || {});\r\n return JSON.stringify(toJS(filteredData), null, 2);\r\n }, [state.curStore]);\r\n return (\r\n <div className=\"flex flex-col md:flex-row text-sm\">\r\n <div>\r\n <Tabs\r\n size=\"sm\"\r\n radius=\"none\"\r\n variant=\"underlined\"\r\n items={[{ title: \"Store\", value: \"Store\" }, { title: \"Plugin\", value: \"Plugin\" }]}\r\n >\r\n {(item) => {\r\n const stores = Object.values(rootStore.instance).filter(i => i.stype == item.value && i.sid).sort((a, b) => a.sid.length - b.sid.length);\r\n return (\r\n <Tab key={item.title} title={item.title} >\r\n <div>\r\n <div className=\"w-full md:w-[300px] space-y-1 pr-2 overflow-auto\">\r\n {stores.map((store) => {\r\n return (\r\n <div\r\n key={store?.sid}\r\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 })}\r\n onClick={() => {\r\n state.curStore = store;\r\n }}\r\n >\r\n {store.sid}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n </Tab>\r\n )\r\n }}\r\n </Tabs>\r\n </div>\r\n\r\n <div className=\"mt-4 w-full overflow-auto md:mt-0\">\r\n <JSONEditor\r\n className={\"h-full\"}\r\n height={450}\r\n initialJson={initialJson}\r\n onChange={(data) => {\r\n console.log(\"onChange\", data);\r\n helper.deepMerge(state.curStore, data);\r\n }}\r\n />\r\n {/* <PromiseStateDebug promiseStateList={state.curPromiseStateList} /> */}\r\n </div>\r\n </div>\r\n );\r\n }),\r\n },\r\n ];\r\n\r\n onNewStore({ rootStore }: { rootStore: RootStore }) {\r\n Object.values(rootStore.instance).forEach((store) => {\r\n if (store.devtools?.started) return;\r\n if (store.devtools?.panels) {\r\n store.devtools.started = true;\r\n this.panels = [...this.panels, ...store.devtools?.panels];\r\n }\r\n });\r\n }\r\n\r\n constructor(args: Partial<DevTool> = {}) {\r\n Object.assign(this, args);\r\n }\r\n}\r\n\r\n// const PromiseStateDebug = ({ promiseStateList }: { promiseStateList: { name: string; promiseState: PromiseState<any, any> }[] }) => {\r\n// if (promiseStateList.length === 0) return null;\r\n// return (\r\n// <>\r\n// <div className=\"mt-6 mb-2 pt-2 border-t-[1px] font-bold dark:border-gray-600\">Debug PromiseState</div>\r\n// <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4\">\r\n// {promiseStateList.map((item, index) => {\r\n// const formData = item.promiseState.debug.input;\r\n// return (\r\n// <Card className=\"p-2 dark:border-gray-800\" key={index}>\r\n// <div className=\"font-bold text-xs\">{item.name}</div>\r\n// <JSONSchemaForm\r\n// formState={getFormState({\r\n// data: formData,\r\n// onSubmit: (data) => {\r\n// item.promiseState.call(data);\r\n// },\r\n// })}\r\n// />\r\n// </Card>\r\n// );\r\n// })}\r\n// </div>\r\n// </>\r\n// );\r\n// };\r\n\r\nexport const DevToolProvider = observer(({ rootStore }: { rootStore: RootStore }) => {\r\n const devTool = rootStore.get(DevTool);\r\n const minSheetHeight = 500;\r\n const store = useLocalObservable(() => ({\r\n sheetHeight: minSheetHeight,\r\n }));\r\n return (\r\n <>\r\n <div className=\"fixed right-4 bottom-4 z-10\">\r\n <div\r\n className=\"p-1 rounded-sm bg-gray-300 hover:bg-gray-400 dark:bg-gray-600 dark:hover:bg-gray-500 cursor-pointer\"\r\n onClick={() => {\r\n devTool.isOpen = true;\r\n }}\r\n >\r\n <Wrench size={20} />\r\n </div>\r\n </div>\r\n <Sheet open={devTool.isOpen}>\r\n <SheetContent\r\n open={devTool.isOpen}\r\n side=\"bottom\"\r\n className=\"p-0 outline-none bg-card dark:border-none\"\r\n style={{\r\n height: store.sheetHeight,\r\n }}\r\n >\r\n <div className=\"absolute top-0 left-0 h-[32px] w-full bg-gray-100 dark:bg-gray-800\"></div>\r\n <SheetClose\r\n className=\"top-2 right-2\"\r\n onClick={() => {\r\n devTool.isOpen = false;\r\n }}\r\n />\r\n <div\r\n className=\"absolute top-[-8px] left-0 w-full h-[10px] cursor-row-resize\"\r\n onMouseDown={(e) => {\r\n const startH = store.sheetHeight;\r\n const startPageY = e.pageY;\r\n const onMouseMove = (mouseMoveEvent: MouseEvent) => {\r\n const diff = startPageY - mouseMoveEvent.pageY;\r\n const h = startH + diff;\r\n if (h > minSheetHeight && h < window.innerHeight) {\r\n store.sheetHeight = h;\r\n }\r\n };\r\n const onMouseUp = () => {\r\n document.body.removeEventListener(\"mousemove\", onMouseMove);\r\n };\r\n document.body.addEventListener(\"mousemove\", onMouseMove);\r\n document.body.addEventListener(\"mouseup\", onMouseUp, { once: true });\r\n }}\r\n />\r\n <Tabs\r\n className='w-full'\r\n size=\"sm\"\r\n radius=\"none\"\r\n items={devTool.panels}\r\n >\r\n {(panel) => {\r\n const Component = panel.render || (() => null);\r\n return (\r\n <Tab key={panel.title} title={panel.title}>\r\n <div className=\"p-0\" style={{ height: `calc(${store.sheetHeight}px - 50px)` }}>\r\n <Component rootStore={rootStore} />\r\n </div>\r\n </Tab>\r\n )\r\n }}\r\n </Tabs>\r\n </SheetContent>\r\n </Sheet>\r\n </>\r\n );\r\n});\r\n","\"use client\";\r\n\r\nimport React, { useRef } from \"react\";\r\nimport MonacoEditor from \"@monaco-editor/react\";\r\nimport { _ } from \"../../lib/lodash\";\r\nimport * as jsonpatch from \"fast-json-patch\";\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Button } from '@nextui-org/react';\r\n\r\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 }) => {\r\n const valueRef = useRef<string>(initialJson);\r\n const changeValueRef = useRef(\r\n _.debounce((initialJson: string, currentJson: string) => {\r\n if (onChange) {\r\n try {\r\n const tree1 = JSON.parse(initialJson);\r\n const tree2 = JSON.parse(currentJson);\r\n const diff = jsonpatch.compare(tree1, tree2);\r\n // @ts-ignore\r\n const applyDiff = (diff) => {\r\n const result = {};\r\n for (const change of diff) {\r\n const { op, path, value } = change;\r\n // @ts-ignore\r\n const keys = path.split(\"/\").filter((key) => key !== \"\");\r\n let current = result;\r\n for (let i = 0; i < keys.length - 1; i++) {\r\n const key = keys[i];\r\n // @ts-ignore\r\n if (!current[key]) {\r\n // @ts-ignore\r\n current[key] = {};\r\n }\r\n // @ts-ignore\r\n current = current[key];\r\n }\r\n let lastKey = keys[keys.length - 1];\r\n lastKey = lastKey.replace('~1', '/');\r\n if (op === \"replace\") {\r\n // @ts-ignore\r\n current[lastKey] = value;\r\n }\r\n if (op === \"add\") {\r\n // @ts-ignore\r\n current[lastKey] = value;\r\n }\r\n }\r\n return result;\r\n };\r\n const result = applyDiff(diff);\r\n if (Object.keys(result).length > 0) {\r\n onChange(result);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n }, 1000)\r\n );\r\n\r\n return (\r\n <div className={cn(\"relative w-full\", className)}>\r\n <MonacoEditor\r\n options={{\r\n minimap: {\r\n enabled: false,\r\n },\r\n }}\r\n height={height}\r\n theme=\"vs-dark\"\r\n language=\"json\"\r\n value={initialJson}\r\n onChange={(v) => {\r\n changeValueRef.current?.(initialJson, v);\r\n // @ts-ignore\r\n valueRef.current = v;\r\n }}\r\n />\r\n {onSubmit && (\r\n <Button\r\n className=\"z-50 absolute bottom-[50px] right-[20px]\"\r\n color='primary'\r\n size='sm'\r\n onClick={() => {\r\n try {\r\n const json = JSON.parse(valueRef.current);\r\n onSubmit(json);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }}>\r\n Submit\r\n </Button>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\n"]}
|
|
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"]}
|
package/dist/experimental.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { PromiseState } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import { RootStore } from './chunk-
|
|
4
|
-
import { _ } from './chunk-
|
|
1
|
+
import { PromiseState } from './chunk-SL5OV6OR.mjs';
|
|
2
|
+
import './chunk-IMOLRP7I.mjs';
|
|
3
|
+
import { RootStore } from './chunk-IDKGZ5T4.mjs';
|
|
4
|
+
import { _ } from './chunk-K7LFG5BA.mjs';
|
|
5
5
|
import { __objRest, __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
|
|
6
6
|
import React2 from 'react';
|
|
7
7
|
import { makeAutoObservable, toJS, observable } from 'mobx';
|
|
@@ -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\";\r\nimport { RootStore } from \"../../store/root\";\r\nimport React, { ReactNode } from \"react\";\r\n\r\nexport class SlotPlugin implements Store {\r\n sid = \"SlotPlugin\";\r\n stype = \"Plugin\"\r\n autoObservable?: boolean = false;\r\n\r\n slotMap: Store[\"slots\"] = {};\r\n\r\n // SlotList = observer(() => {\r\n // const collection = RootStore.Get(Collection<Store[\"slot\"]>, { sid: \"SlotPlugin.slots\", args: { data: this.slotMap } });\r\n // //@ts-ignore\r\n // const Component = collection.current.Component;\r\n\r\n // return (\r\n // <div className=\"h-full flex flex-col md:flex-row text-sm\">\r\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\">\r\n // {Object.keys(collection.data).map((i) => (\r\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)}>\r\n // {i}\r\n // </div>\r\n // ))}\r\n // </div>\r\n // <div className=\"mt-4 w-full md:w-[400px] px-4 overflow-auto md:mt-0 md:ml-4\">\r\n // {/* @ts-ignore */}\r\n // <Component {...collection.current.input} />\r\n // {/* @ts-ignore */}\r\n // {collection.current.input && (\r\n // <JSONSchemaForm\r\n // formState={getFormState({\r\n // uiSize: \"small\",\r\n // // @ts-ignore\r\n // data: collection.current.input,\r\n // onSubmit: (data) => {\r\n // console.log(data);\r\n // // @ts-ignore\r\n // collection.setValue(collection.key, { ...collection.current, input: data });\r\n // },\r\n // })}\r\n // />\r\n // )}\r\n // </div>\r\n // </div>\r\n // );\r\n // });\r\n\r\n // devtools = {\r\n // panels: [\r\n // {\r\n // title: \"Slot\",\r\n // render: this.SlotList,\r\n // },\r\n // ],\r\n // };\r\n\r\n onNewStore({ rootStore }: { rootStore: RootStore }) {\r\n Object.values(rootStore.instance).forEach((store) => {\r\n //@ts-ignore\r\n if (store.isSlotInit) return;\r\n if (store.slots) {\r\n //@ts-ignore\r\n store.isSlotInit = true;\r\n //@ts-ignore\r\n this.slotMap = { ...this.slotMap, ...store.slots };\r\n }\r\n });\r\n }\r\n\r\n toJSON() {\r\n return this.slotMap\r\n }\r\n\r\n static Slot = ({ name, ...props }: { name } & any): ReactNode => {\r\n const slotPlugin = RootStore.Get(SlotPlugin);\r\n const slot = slotPlugin.slotMap![name];\r\n //@ts-ignore\r\n const Component: React.FC = slot?.render;\r\n if (!Component) {\r\n //@ts-ignore\r\n return <div></div>;\r\n }\r\n //@ts-ignore\r\n return <Component {...props} />;\r\n };\r\n\r\n constructor(args: Partial<SlotPlugin> = {}) {\r\n Object.assign(this, args);\r\n }\r\n}\r\n","\"use client\";\r\n\r\nimport { RootStore } from \"../../store/root\";\r\nimport { Store } from \"../../store/standard/base\";\r\nimport { makeAutoObservable, observable, toJS } from \"mobx\";\r\nimport { _ } from \"../../lib/lodash\";\r\n// import { AsyncStorage } from \"./Async\";\r\n\r\n// import { JSONForm } from \"../../components/JSONForm\"\r\n\r\nexport type Engine = {\r\n name: string;\r\n get(key): any;\r\n set(key, value): any;\r\n remove(key): any;\r\n};\r\n\r\nexport type DataGroup = Record<\r\n string,\r\n {\r\n index: StorageParams<any>;\r\n children: Record<string, DataGroup>;\r\n }\r\n>;\r\n\r\nexport type StorageParams<T> = {\r\n key: string;\r\n value?: T;\r\n engine?: Engine;\r\n _value?: T;\r\n defaultValue?: T;\r\n debounce?: number;\r\n onInit?(value: T): void;\r\n debounceFn?: any;\r\n onDebounce?(value: T): void;\r\n onSet?(value: T): void;\r\n set?: (value: T) => void;\r\n setValue?: (value: T) => void;\r\n reset?: () => void;\r\n listen?: (func?: (args: { key: string; value: any }) => void) => void;\r\n};\r\nconst memory = {};\r\n\r\nexport class StoragePlugin implements Store {\r\n sid = 'StoragePlugin';\r\n stype = \"Plugin\"\r\n autoObservable?: boolean = true;\r\n static engines = {\r\n memory: {\r\n name: 'memory',\r\n get(key) {\r\n return memory[key];\r\n },\r\n set(key, value) {\r\n return (memory[key] = value);\r\n },\r\n remove(key) {\r\n delete memory[key];\r\n return;\r\n },\r\n },\r\n localStorage: {\r\n name: 'localStorage',\r\n get(key) {\r\n return StoragePlugin.safeParse(globalThis.localStorage.getItem(key));\r\n },\r\n set(key, value) {\r\n return globalThis.localStorage.setItem(key, JSON.stringify(value));\r\n },\r\n remove(key) {\r\n return globalThis.localStorage.removeItem(key);\r\n },\r\n },\r\n // asyncStorage: {\r\n // name: 'asyncStorage',\r\n // get(key) {\r\n // return RootStore.Get(AsyncStorage).get(key);\r\n // },\r\n // set(key, value) {\r\n // return RootStore.Get(AsyncStorage).set(key, value);\r\n // },\r\n // remove(key) {\r\n // return RootStore.Get(AsyncStorage).remove(key);\r\n // },\r\n // },\r\n };\r\n engines = StoragePlugin.engines;\r\n // debounceFn: (val: any) => void;\r\n // data = {};\r\n dataMeta: Record<string, StorageParams<any>> = {};\r\n\r\n get dataGroup() {\r\n const tree = Object.values(this.dataMeta).reduce((p, c) => {\r\n const current = this.dataMeta[c.key];\r\n const path = c.key;\r\n const parentPath = path\r\n .split('.')\r\n .slice(0, path.length - 1)\r\n .join('.');\r\n const key = path.split('.').pop();\r\n if (!p[parentPath]) {\r\n const topPath = !parentPath.includes('.');\r\n _.set(p, parentPath + (topPath ? `.${key}` : ``), {\r\n ...current,\r\n toJSON() {\r\n return typeof current.value === 'object' ? JSON.stringify(toJS(current.value), null, 2) : current.value;\r\n },\r\n });\r\n }\r\n\r\n return p;\r\n }, {});\r\n\r\n return tree;\r\n }\r\n\r\n // StorageTools = observer(() => {\r\n // const collection = RootStore.Get(Collection<any>, { sid: 'StoragePlugin.current', args: { data: this.dataGroup } });\r\n // const data = collection.current as Record<string, StorageParams<any>>;\r\n\r\n // const dataConfig = Object.entries(data).reduce((p, [key, value]) => {\r\n // p[key] = {\r\n // title: `${key} (${value.engine.name})`,\r\n // };\r\n // return p;\r\n // }, {});\r\n\r\n // return (\r\n // <div className=\"h-full flex flex-col md:flex-row text-sm\">\r\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\">\r\n // {Object.keys(collection.data)\r\n // .sort((a, b) => a.length - b.length)\r\n // .map((i) => (\r\n // <div\r\n // key={i}\r\n // className={cn('px-2 rounded-md hover:bg-green-600 hover:text-white cursor-pointer', { 'bg-green-600 text-white': collection.key === i })}\r\n // onClick={() => collection.setKey(i)}\r\n // >\r\n // {i}\r\n // </div>\r\n // ))}\r\n // </div>\r\n // <div className=\"mt-4 w-full overflow-auto md:mt-0\">\r\n // <JSONForm\r\n // formData={{ data: JSON.parse(JSON.stringify(data, null, 2)) }}\r\n // formConfig={{\r\n // data: dataConfig,\r\n // }}\r\n // onChange={(v) => {\r\n // Object.entries(v.data).forEach(([key, value]) => {\r\n // data[key].set(StoragePlugin.safeParse(value));\r\n // });\r\n // return v;\r\n // }}\r\n // // onSet={(v) => {\r\n // // //TODO: only udpate changed filed\r\n // // Object.entries(v).forEach(([key, value]) => {\r\n // // data[key].set(StoragePlugin.safeParse(value));\r\n // // });\r\n // // return v;\r\n // // }}\r\n // />\r\n // </div>\r\n // </div>\r\n // );\r\n // });\r\n\r\n // devtools = {\r\n // panels: [\r\n // {\r\n // title: 'Storage',\r\n // render: this.StorageTools,\r\n // },\r\n // ],\r\n // };\r\n\r\n static safeParse(val: any) {\r\n try {\r\n return JSON.parse(val);\r\n } catch (error) {\r\n return val;\r\n }\r\n }\r\n\r\n set = ({ key, value, engine }: { key: string; value: any; engine?: Engine }) => {\r\n this.dataMeta[key]._value = value;\r\n const _engine = engine || this.dataMeta[key]?.engine || this.engines.memory;\r\n\r\n //@ts-ignore\r\n RootStore.init().events.emit(`storage.${key}.update`, { key, value });\r\n if (this.dataMeta[key].onSet) this.dataMeta[key].onSet(value);\r\n return _engine.set(key, value);\r\n };\r\n\r\n\r\n get = <T,>({ key, value, defaultValue, engine = this.engines.memory, ...other }: StorageParams<T>): StorageParams<T> => {\r\n if (typeof window == 'undefined' && engine.name == 'localStorage') {\r\n engine = this.engines.memory;\r\n }\r\n\r\n if (value && !defaultValue) {\r\n defaultValue = value\r\n }\r\n const that = this;\r\n if (!this.dataMeta[key]) {\r\n const exists = engine.get(key);\r\n if (engine.name == 'asyncStorage') {\r\n console.log('get', key, exists);\r\n }\r\n if (!exists) {\r\n engine.set(key, defaultValue);\r\n }\r\n const _value = engine.get(key);\r\n\r\n this.dataMeta[key] = makeAutoObservable({\r\n key,\r\n engine,\r\n defaultValue,\r\n ...other,\r\n _value,\r\n get value() {\r\n return that.dataMeta[key]._value;\r\n },\r\n set value(value) {\r\n that.set({ key, value });\r\n other.debounce && that.dataMeta[key].debounceFn(value)\r\n },\r\n set(value) {\r\n that.set({ key, value });\r\n other.debounce && that.dataMeta[key].debounceFn(value)\r\n },\r\n setValue(value) {\r\n that.set({ key, value });\r\n },\r\n reset() {\r\n that.set({ key, value: defaultValue });\r\n },\r\n toJSON() {\r\n return that.dataMeta[key]._value;\r\n },\r\n listen(func) {\r\n //@ts-ignore\r\n RootStore.init().events.on(`storage.${key}.update`, (args) => func(args));\r\n },\r\n debounceFn: _.debounce((value) => {\r\n other?.onDebounce(value);\r\n }, other.debounce)\r\n });\r\n if (this.dataMeta[key].onInit) {\r\n this.dataMeta[key].onInit(this.dataMeta[key].value);\r\n }\r\n }\r\n\r\n //@ts-ignore\r\n return this.dataMeta[key];\r\n };\r\n\r\n remove = ({ key, engine = this.engines.memory }: { key?: string; engine?: Engine }): void => {\r\n engine.remove(key);\r\n };\r\n\r\n static Get<T>(args: StorageParams<T>): StorageParams<T> {\r\n const storagePlugin = RootStore.Get(StoragePlugin);\r\n return storagePlugin.get(args);\r\n }\r\n\r\n static Input<T, U extends StorageParams<T>>(args: U): U {\r\n const storagePlugin = RootStore.Get(StoragePlugin);\r\n const data = storagePlugin.get(args);\r\n //@ts-ignore\r\n return observable({\r\n ...args,\r\n ...data,\r\n get value() {\r\n return data.value;\r\n },\r\n set value(value) {\r\n data.set(value);\r\n },\r\n onChange(e) {\r\n data.set(e.target.value);\r\n },\r\n });\r\n }\r\n\r\n static Custom<T, U extends StorageParams<T>>(args: U): U & StorageParams<T> {\r\n const storagePlugin = RootStore.Get(StoragePlugin);\r\n const { value, _value, ...others } = args;\r\n const data = storagePlugin.get(args);\r\n //@ts-ignore\r\n\r\n return observable({\r\n ...args,\r\n ...data,\r\n get value() {\r\n return data.value;\r\n },\r\n set value(value) {\r\n data.set(value);\r\n },\r\n onChange(e) {\r\n data.set(e.target.value);\r\n },\r\n });\r\n }\r\n\r\n constructor(args: Partial<StoragePlugin> = {}) {\r\n Object.assign(this, args);\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { _ } from \"../../lib/lodash\";\r\nimport { RootStore } from \"../../store/root\";\r\nimport { Store } from \"../../store/standard/base\";\r\nimport { PromiseState } from \"../../store/standard/PromiseState\";\r\nimport { StoragePlugin } from \"./Storage\";\r\n\r\n\r\nexport const jwt = StoragePlugin.Get({\r\n key: \"asyncStorage.token\",\r\n value: \"\",\r\n engine: StoragePlugin.engines.localStorage,\r\n});\r\n\r\nexport class AsyncStorage implements Store {\r\n sid = \"AsyncStorage\";\r\n stype = \"Plugin\"\r\n url = `https://dappkit-async-api.deno.dev/project/${process.env.NEXT_PUBLIC_PROJECT_ID}`;\r\n forceUpdate = false;\r\n autoObservable?: boolean = true;\r\n\r\n data = new PromiseState({\r\n context: this,\r\n value: {},\r\n function: async () => {\r\n const res = await axios.get(this.url, {\r\n params: { forceUpdate: this.forceUpdate },\r\n });\r\n //@ts-ignore\r\n return { ...this.data.value, ...res.data };\r\n },\r\n }).on(\"data\", (data) => {\r\n this.syncStorage();\r\n });\r\n\r\n syncStorage() {\r\n const data = this.data.value;\r\n const storage = RootStore.Get(StoragePlugin);\r\n\r\n Object.keys(data).map((key) => {\r\n const value = data[key];\r\n const target = storage.dataMeta[key];\r\n if (target) {\r\n target.set(value);\r\n }\r\n });\r\n }\r\n\r\n // devtools = {\r\n // panels: [\r\n // {\r\n // title: \"AsyncStorage\",\r\n // render: observer(() => {\r\n\r\n // return (\r\n // <div className=\"h-full w-full overflow-auto\">\r\n // <Input\r\n // placeholder=\"Please enter your asyncStorage token here\"\r\n // value={jwt.value}\r\n // onChange={(e) => jwt.set(e.target.value)}\r\n // />\r\n // <JSONEditor\r\n // className=\"h-full\"\r\n // initialJson={JSON.stringify(toJS(this.data.value), null, 2)}\r\n // onChange={(data) => {\r\n // console.log(\"onChange\", data);\r\n // helper.deepMerge(this.data.value, data);\r\n // this.syncStorage();\r\n // }}\r\n // onSubmit={async (data) => {\r\n // if (!jwt.value) {\r\n // RootStore.Get(ToastPlugin).error(\r\n // \"Please enter your asyncStorage token first\",\r\n // );\r\n // } else {\r\n // if (!process.env.NEXT_PUBLIC_PROJECT_ID) {\r\n // RootStore.Get(ToastPlugin).error(\r\n // \"Please set your project id first\",\r\n // );\r\n // }\r\n // await axios.post(\r\n // `https://dappkit-async-api.deno.dev/update/${process.env.NEXT_PUBLIC_PROJECT_ID}`,\r\n // data,\r\n // {\r\n // headers: {\r\n // Authorization: `${jwt.value}`,\r\n // },\r\n // },\r\n // );\r\n // }\r\n // this.forceUpdate = true;\r\n // await this.data.wait({ call: true });\r\n // RootStore.Get(ToastPlugin).success(\"Update success\");\r\n // console.log(\"onSubmit\", data);\r\n // }}\r\n // />\r\n // </div>\r\n // );\r\n // }),\r\n // },\r\n // ],\r\n // };\r\n\r\n constructor(args: Partial<AsyncStorage> = {}) {\r\n Object.assign(this, args);\r\n }\r\n\r\n get(key) {\r\n return _.get(this.data.value, key);\r\n }\r\n\r\n async set(key, value) {\r\n _.set(this.data.value, key, value);\r\n }\r\n\r\n async remove(key) {\r\n _.remove(this.data.value, key);\r\n }\r\n\r\n onNewStore = ({\r\n rootStore,\r\n store,\r\n }: {\r\n rootStore: RootStore;\r\n store: Store;\r\n }) => {\r\n if (store.autoAsyncable) {\r\n this.makeAutoAsyncAble(store);\r\n }\r\n };\r\n\r\n async makeAutoAsyncAble(instance) {\r\n const data = await this.data.wait({ call: true });\r\n if (data[instance.sid]) {\r\n Object.assign(instance, data[instance.sid]);\r\n }\r\n }\r\n}\r\n","import { Store } from '../../../store/standard/base';\r\n\r\nexport class Collection<T = any> implements Store {\r\n sid = 'Collection';\r\n autoObservable = true;\r\n\r\n key: string;\r\n data: {\r\n [key: string]: T;\r\n } = {};\r\n constructor(args: Partial<Collection<T>>) {\r\n Object.assign(this, args);\r\n if (!this.key) {\r\n this.key = Object.keys(this.data)[0];\r\n }\r\n }\r\n get current(): T {\r\n return this.data[this.key];\r\n }\r\n\r\n setKey(key: string) {\r\n this.key = key;\r\n }\r\n setValue(key: string, value: T) {\r\n this.data[key] = value;\r\n }\r\n}\r\n","import React, { HTMLAttributeAnchorTarget } from \"react\";\r\nimport { _ } from \"../../lib/lodash\";\r\nimport { RootStore } from \"../../store\";\r\nimport { Store } from \"../../store/standard/base\";\r\n\r\nexport type JSONViewType = {\r\n className?: string;\r\n children?: any;\r\n data?: Record<string, JSONDataType>;\r\n datas?: Record<string, Record<string, JSONDataType> | JSONDataType[]>;\r\n uiConfig?: {\r\n type: string;\r\n className?: Record<string, string>;\r\n slots?: Record<string, any>;\r\n [key: string]: any;\r\n };\r\n uiConfigs?: Record<string, JSONViewType['uiConfig']>;\r\n};\r\n\r\nexport type JSONDataType = {\r\n title?: string;\r\n icon?: any;\r\n render?: any;\r\n className?: string;\r\n type?: 'divider' | 'checkbox' | 'label' | 'radio';\r\n shortcut?: string;\r\n disabled?: boolean;\r\n children?: Record<string, JSONDataType>;\r\n value?: any;\r\n link?: any;\r\n target?: HTMLAttributeAnchorTarget;\r\n needAuth?: boolean;\r\n events?: Record<string, any>;\r\n onChange?: (args: { e: any; v: any }) => void;\r\n onClick?: (args: { e: any; v: any }) => void;\r\n};\r\n\r\nexport class JSONViewPlugin implements Store {\r\n sid = 'JSONViewPlugin';\r\n autoObservable?: boolean = false;\r\n\r\n JSONView = {\r\n Test: {\r\n name: 'Test',\r\n render: () => <div>Test</div>,\r\n },\r\n };\r\n\r\n onNewStore({ rootStore, store }: { rootStore: RootStore<any>; store: Store }): void {\r\n this.crawl(store);\r\n }\r\n\r\n crawl(store: Store) {\r\n if (store?.JSONView) {\r\n this.JSONView = { ...this.JSONView, ...store.JSONView };\r\n }\r\n }\r\n\r\n static JSONView = (props: JSONViewType) => {\r\n const jsonviewplugin = RootStore.Get(JSONViewPlugin);\r\n\r\n return (\r\n <>\r\n {Object.keys(props.uiConfigs).map((key) => {\r\n const config = props.uiConfigs[key] as any;\r\n const data = _.get(props.datas, key);\r\n const Component = jsonviewplugin.JSONView[config.type].render;\r\n const rootStore = RootStore.init();\r\n Object.values(data).forEach((i: any) => {\r\n if (i.events) {\r\n Object.entries(i.events).forEach(([k, v]) => {\r\n i[k] = (args) => rootStore.events.emit(v as any, { ...args, action: k });\r\n });\r\n }\r\n });\r\n\r\n return <Component key={key} data={data} uiConfig={config} />;\r\n })}\r\n </>\r\n );\r\n };\r\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","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.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { getStyle } from './chunk-
|
|
2
|
-
import { useStore, RootStore } from './chunk-
|
|
3
|
-
import { helper } from './chunk-
|
|
4
|
-
import { _ } from './chunk-
|
|
5
|
-
import { cn } from './chunk-
|
|
1
|
+
import { getStyle } from './chunk-GKAU4P5I.mjs';
|
|
2
|
+
import { useStore, RootStore } from './chunk-IDKGZ5T4.mjs';
|
|
3
|
+
import { helper } from './chunk-R4N52NI2.mjs';
|
|
4
|
+
import { _ } from './chunk-K7LFG5BA.mjs';
|
|
5
|
+
import { cn } from './chunk-M5Y3VYMJ.mjs';
|
|
6
6
|
import { __objRest, __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
|
|
7
7
|
import React7, { useEffect, useMemo, useState, useRef, useCallback, createRef } from 'react';
|
|
8
8
|
import { Modal, ModalContent, ModalHeader, ModalBody, Checkbox, Input, Select, SelectItem, Button, Textarea, DatePicker, Chip, Card, Tabs, Tab } from '@nextui-org/react';
|