cross-state 0.19.3 → 0.20.0
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/cjs/hash.cjs +18 -0
- package/dist/cjs/hash.cjs.map +1 -0
- package/dist/cjs/index.cjs +10 -10
- package/dist/cjs/react/index.cjs +249 -188
- package/dist/cjs/react/index.cjs.map +1 -1
- package/dist/cjs/react/register.cjs +12 -12
- package/dist/cjs/react/register.cjs.map +1 -1
- package/dist/cjs/scope.cjs +572 -19
- package/dist/cjs/scope.cjs.map +1 -1
- package/dist/cjs/{cache.cjs → scope2.cjs} +14 -3
- package/dist/cjs/scope2.cjs.map +1 -0
- package/dist/cjs/store.cjs +26 -5
- package/dist/cjs/store.cjs.map +1 -1
- package/dist/es/hash.mjs +19 -0
- package/dist/es/hash.mjs.map +1 -0
- package/dist/es/index.mjs +6 -6
- package/dist/es/react/index.mjs +245 -184
- package/dist/es/react/index.mjs.map +1 -1
- package/dist/es/react/register.mjs +4 -4
- package/dist/es/scope.mjs +573 -20
- package/dist/es/scope.mjs.map +1 -1
- package/dist/es/{cache.mjs → scope2.mjs} +14 -3
- package/dist/es/scope2.mjs.map +1 -0
- package/dist/es/store.mjs +26 -5
- package/dist/es/store.mjs.map +1 -1
- package/dist/types/core/commonTypes.d.ts +0 -1
- package/dist/types/lib/debounce.d.ts +5 -1
- package/dist/types/react/form/form.d.ts +47 -48
- package/dist/types/react/form/formField.d.ts +0 -1
- package/dist/types/react/form/useFormAutosave.d.ts +9 -0
- package/package.json +17 -17
- package/dist/cjs/cache.cjs.map +0 -1
- package/dist/cjs/useCache.cjs +0 -583
- package/dist/cjs/useCache.cjs.map +0 -1
- package/dist/es/cache.mjs.map +0 -1
- package/dist/es/useCache.mjs +0 -584
- package/dist/es/useCache.mjs.map +0 -1
package/dist/es/cache.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.mjs","sources":["../../src/core/resourceGroup.ts","../../src/lib/instanceCache.ts","../../src/lib/promiseWithState.ts","../../src/core/cache.ts"],"sourcesContent":["import { autobind } from '@lib/autobind';\n\nexport interface Resource {\n invalidateAll(): void;\n clearAll(): void;\n}\n\nexport class ResourceGroup {\n private refMap = new WeakMap<Resource, WeakRef<Resource>>();\n\n private refSet = new Set<WeakRef<Resource>>();\n\n constructor(public readonly name?: string) {\n autobind(ResourceGroup);\n }\n\n add(resource: Resource) {\n const ref = new WeakRef(resource);\n this.refMap.set(resource, ref);\n this.refSet.add(ref);\n }\n\n delete(resource: Resource) {\n const ref = this.refMap.get(resource);\n if (ref) {\n this.refMap.delete(resource);\n this.refSet.delete(ref);\n }\n }\n\n invalidateAll() {\n for (const ref of this.refSet) {\n const resource = ref.deref();\n if (resource) {\n resource.invalidateAll();\n } else {\n this.refSet.delete(ref);\n }\n }\n }\n\n clearAll() {\n for (const ref of this.refSet) {\n const resource = ref.deref();\n if (resource) {\n resource.clearAll();\n } else {\n this.refSet.delete(ref);\n }\n }\n }\n}\n\nexport const allResources = /* @__PURE__ */ new ResourceGroup();\n\nexport function createResourceGroup(name?: string) {\n return new ResourceGroup(name);\n}\n","import { hash } from './hash';\n\nexport class InstanceCache<Args extends any[], T extends object> {\n private cache = new Map<string, { t: number; ref?: T; weakRef: WeakRef<T> }>();\n\n private interval = this.cacheTime\n ? setInterval(() => this.cleanup(), Math.max(this.cacheTime / 10, 1))\n : undefined;\n\n constructor(public readonly factory: (...args: Args) => T, public readonly cacheTime?: number) {}\n\n cleanup() {\n const cutoff = this.now() - (this.cacheTime ?? 0);\n\n for (const [key, entry] of this.cache.entries()) {\n if (entry.ref && entry.t <= cutoff) {\n delete entry.ref;\n }\n\n if (!entry.ref && !entry.weakRef?.deref()) {\n this.cache.delete(key);\n }\n }\n }\n\n get(...args: Args) {\n const key = hash(args);\n let entry = this.cache.get(key);\n let value = entry?.ref ?? entry?.weakRef?.deref();\n\n if (!entry || !value) {\n value = this.factory(...args);\n entry = {\n t: this.now(),\n ref: value,\n weakRef: new WeakRef(value),\n };\n\n this.cache.set(key, entry);\n } else {\n entry.t = this.now();\n entry.ref ??= value;\n }\n\n return value;\n }\n\n values() {\n return [...this.cache.values()]\n .map((entry) => entry.ref ?? entry.weakRef?.deref())\n .filter((value): value is T => !!value);\n }\n\n stop() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n }\n\n stats() {\n return {\n count: this.cache.size,\n withRef: [...this.cache.values()].filter((x) => !!x.ref).length,\n withWeakRef: [...this.cache.values()].filter((x) => !!x.weakRef?.deref()).length,\n };\n }\n\n private now() {\n return performance.now();\n }\n}\n","import { type ErrorState, type PendingState, type ValueState } from './cacheState';\nimport { type MaybePromise } from './maybePromise';\n\nexport class PromiseWithState<T> extends Promise<T> {\n static override resolve(): PromiseWithState<void>;\n\n static override resolve<T>(value: MaybePromise<T>): PromiseWithState<T>;\n\n static override resolve<T>(value?: MaybePromise<T>) {\n return new PromiseWithState<T>(Promise.resolve(value as MaybePromise<T>), {\n status: 'value',\n value: value as T,\n });\n }\n\n static override reject<T = never>(error: unknown) {\n return new PromiseWithState<T>(Promise.reject(error), { status: 'error', error });\n }\n\n constructor(\n value: Promise<T>,\n public state: ValueState<T> | ErrorState | PendingState = { status: 'pending' },\n ) {\n super((resolve) => resolve(value));\n\n value\n .then((value) => {\n this.state = { status: 'value', value };\n })\n .catch((error) => {\n this.state = { status: 'error', error };\n });\n }\n}\n","import type { Duration, Selector, Use } from './commonTypes';\nimport { allResources, type ResourceGroup } from './resourceGroup';\nimport { Store, createStore } from './store';\nimport { autobind } from '@lib/autobind';\nimport type { CacheState, ErrorState, ValueState } from '@lib/cacheState';\nimport { calcDuration } from '@lib/calcDuration';\nimport { InstanceCache } from '@lib/instanceCache';\nimport { makeSelector } from '@lib/makeSelector';\nimport { type MaybePromise } from '@lib/maybePromise';\nimport type { Path, Value } from '@lib/path';\nimport { PromiseWithState } from '@lib/promiseWithState';\n\nexport interface CacheGetOptions {\n update?: 'whenMissing' | 'whenStale' | 'force';\n backgroundUpdate?: boolean;\n}\n\nexport interface CacheFunction<T, Args extends any[] = []> {\n (this: { use: Use }, ...args: Args): Promise<T> | ((cache: { use: Use }) => Promise<T>);\n}\n\nexport interface CacheOptions<T> {\n invalidateAfter?: Duration | ((state: ValueState<T> | ErrorState) => Duration | null) | null;\n invalidateOnWindowFocus?: boolean;\n invalidateOnActivation?: boolean;\n clearOnInvalidate?: boolean;\n clearUnusedAfter?: Duration | null;\n resourceGroup?: ResourceGroup | ResourceGroup[];\n retain?: number;\n}\n\nexport class Cache<T> extends Store<Promise<T>> {\n readonly state = createStore<CacheState<T>>({\n status: 'pending',\n isStale: true,\n isUpdating: false,\n });\n\n protected stalePromise?: Promise<T>;\n\n protected invalidationTimer?: ReturnType<typeof setTimeout>;\n\n constructor(\n getter: CacheFunction<T>,\n public readonly options: CacheOptions<T> = {},\n public readonly derivedFromCache?: {\n cache: Cache<any>;\n selectors: (Selector<any, any> | Path<any>)[];\n },\n _call?: (...args: any[]) => any,\n ) {\n super(\n function () {\n let result = getter.apply(this);\n\n if (result instanceof Function) {\n result = result(this);\n }\n\n return result;\n },\n options,\n undefined,\n _call,\n );\n autobind(Cache);\n\n this.calculationHelper.options.onInvalidate = () =>\n this.invalidate({ invalidateDependencies: false });\n this.watchPromise();\n this.watchFocus();\n }\n\n get({ update = 'whenStale', backgroundUpdate = false }: CacheGetOptions = {}) {\n const promise = this._value?.v;\n const stalePromise = this.stalePromise;\n\n if (\n (update === 'whenMissing' && !promise && !stalePromise) ||\n (update === 'whenStale' && !promise) ||\n update === 'force'\n ) {\n this.calculationHelper.execute();\n\n if ((!promise && !stalePromise) || !backgroundUpdate) {\n return super.get();\n }\n }\n\n if (!promise || (stalePromise && backgroundUpdate)) {\n return stalePromise!;\n }\n\n return promise;\n }\n\n updateValue(value: MaybePromise<T>) {\n this.set(PromiseWithState.resolve(value));\n }\n\n updateError(error: unknown) {\n this.set(PromiseWithState.reject(error));\n }\n\n invalidate({ invalidateDependencies = true }: { invalidateDependencies?: boolean } = {}) {\n const { clearOnInvalidate = createCache.defaultOptions.clearOnInvalidate } = this.options;\n\n if (clearOnInvalidate) {\n return this.clear({ invalidateDependencies });\n }\n\n if (invalidateDependencies) {\n this.calculationHelper.invalidateDependencies();\n }\n\n const { status, isStale, isUpdating } = this.state.get();\n if (status !== 'pending' && !isStale && !isUpdating) {\n this.stalePromise = this._value?.v;\n }\n\n this.state.set((state) => ({\n ...state,\n isStale: true,\n isUpdating: false,\n }));\n\n this.calculationHelper.stop();\n super.reset();\n }\n\n clear({ invalidateDependencies = true }: { invalidateDependencies?: boolean } = {}): void {\n if (invalidateDependencies) {\n this.calculationHelper.invalidateDependencies();\n }\n\n this.state.set({\n status: 'pending',\n isStale: true,\n isUpdating: false,\n });\n delete this.stalePromise;\n\n this.calculationHelper.stop();\n super.reset();\n }\n\n mapValue<S>(selector: Selector<T, S>): Cache<S>;\n\n mapValue<P extends Path<T>>(selector: P): Cache<Value<T, P>>;\n\n mapValue<S>(_selector: Selector<T, S> | Path<any>): Cache<S> {\n const selector = makeSelector(_selector);\n const derivedFromCache = {\n cache: this.derivedFromCache ? this.derivedFromCache.cache : this,\n selectors: this.derivedFromCache\n ? [...this.derivedFromCache.selectors, _selector]\n : [_selector],\n };\n const that = this;\n\n return new Cache(\n async function () {\n const value = await this.use(that);\n return selector(value);\n },\n {},\n derivedFromCache,\n );\n }\n\n protected watchPromise() {\n this.subscribe(\n async (promise) => {\n if (promise instanceof PromiseWithState) {\n this.state.set({\n ...promise.state,\n isStale: false,\n isUpdating: false,\n });\n\n delete this.stalePromise;\n this.setTimers();\n return;\n }\n\n this.state.set((state) => ({\n ...state,\n isUpdating: true,\n }));\n\n this.setTimers();\n\n try {\n const value = await promise;\n\n if (promise !== this._value?.v) {\n return;\n }\n\n this.state.set({\n status: 'value',\n value,\n isStale: false,\n isUpdating: false,\n });\n delete this.stalePromise;\n this.setTimers();\n } catch (error) {\n if (promise !== this._value?.v) {\n return;\n }\n\n this.state.set({\n status: 'error',\n error,\n isStale: false,\n isUpdating: false,\n });\n delete this.stalePromise;\n this.setTimers();\n }\n },\n { passive: true },\n );\n }\n\n protected setTimers() {\n if (this.invalidationTimer) {\n clearTimeout(this.invalidationTimer);\n }\n this.invalidationTimer = undefined;\n\n const state = this.state.get();\n let { invalidateAfter = createCache.defaultOptions.invalidateAfter } = this.options;\n const ref = new WeakRef(this);\n\n if (state.status === 'pending') {\n return;\n }\n\n if (invalidateAfter instanceof Function) {\n invalidateAfter = invalidateAfter(state);\n }\n\n if (invalidateAfter !== null && invalidateAfter !== undefined) {\n this.invalidationTimer = setTimeout(\n () => ref?.deref()?.invalidate(),\n calcDuration(invalidateAfter),\n );\n }\n }\n\n protected watchFocus() {\n const { invalidateOnWindowFocus = createCache.defaultOptions.invalidateOnWindowFocus } =\n this.options;\n\n if (\n !invalidateOnWindowFocus ||\n typeof document === 'undefined' ||\n typeof document.addEventListener === 'undefined'\n ) {\n return;\n }\n\n const ref = new WeakRef(this);\n\n const onFocus = () => {\n const that = ref?.deref();\n if (!that) {\n document.removeEventListener('visibilitychange', onFocus);\n return;\n }\n\n if (!document.hidden) {\n that.invalidate();\n }\n };\n\n document.addEventListener('visibilitychange', onFocus);\n }\n}\n\ntype CreateReturnType<T, Args extends any[]> = {\n (...args: Args): Cache<T>;\n invalidateAll: () => void;\n clearAll: () => void;\n} & ([] extends Args ? Cache<T> : {});\n\nfunction create<T, Args extends any[]>(\n cacheFunction: CacheFunction<T, Args>,\n options?: CacheOptions<T>,\n): CreateReturnType<T, Args> {\n const { clearUnusedAfter = createCache.defaultOptions.clearUnusedAfter, resourceGroup } =\n options ?? {};\n\n let baseInstance: CreateReturnType<T, Args> & Cache<T>;\n\n const instanceCache = new InstanceCache<Args, Cache<T>>(\n (...args: Args): Cache<T> => {\n if (args.length === 0 && baseInstance) {\n return baseInstance;\n }\n\n return new Cache(function () {\n return cacheFunction.apply(this, args);\n }, options);\n },\n clearUnusedAfter ? calcDuration(clearUnusedAfter) : undefined,\n );\n\n const get = (...args: Args) => {\n return instanceCache.get(...args);\n };\n\n const invalidateAll = () => {\n for (const instance of instanceCache.values()) {\n instance.invalidate();\n }\n };\n\n const clearAll = () => {\n for (const instance of instanceCache.values()) {\n instance.clear();\n }\n };\n\n baseInstance = Object.assign(\n new Cache(\n function () {\n return cacheFunction.apply(this);\n },\n options,\n undefined,\n get,\n ),\n {\n invalidateAll,\n clearAll,\n },\n ) as CreateReturnType<T, Args> & Cache<T>;\n\n const groups = Array.isArray(resourceGroup)\n ? resourceGroup\n : resourceGroup\n ? [resourceGroup]\n : [];\n for (const group of groups.concat(allResources)) {\n group.add(baseInstance);\n }\n\n get(...([] as any));\n\n return baseInstance;\n}\n\nexport const createCache = /* @__PURE__ */ Object.assign(create, {\n defaultOptions: {\n invalidateOnWindowFocus: true,\n invalidateOnActivation: true,\n clearUnusedAfter: { days: 1 },\n } as CacheOptions<unknown>,\n});\n"],"names":["value"],"mappings":"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"}
|
package/dist/es/useCache.mjs
DELETED
|
@@ -1,584 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import require$$0, { useRef, useMemo, useCallback, useLayoutEffect, useDebugValue, useContext, createContext, useEffect } from "react";
|
|
3
|
-
import { d as deepEqual, m as makeSelector, c as createStore } from "./store.mjs";
|
|
4
|
-
import { h as hash } from "./scope.mjs";
|
|
5
|
-
var withSelector = { exports: {} };
|
|
6
|
-
var withSelector_production_min = {};
|
|
7
|
-
var shim = { exports: {} };
|
|
8
|
-
var useSyncExternalStoreShim_production_min = {};
|
|
9
|
-
/**
|
|
10
|
-
* @license React
|
|
11
|
-
* use-sync-external-store-shim.production.min.js
|
|
12
|
-
*
|
|
13
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
-
*
|
|
15
|
-
* This source code is licensed under the MIT license found in the
|
|
16
|
-
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/
|
|
18
|
-
var hasRequiredUseSyncExternalStoreShim_production_min;
|
|
19
|
-
function requireUseSyncExternalStoreShim_production_min() {
|
|
20
|
-
if (hasRequiredUseSyncExternalStoreShim_production_min)
|
|
21
|
-
return useSyncExternalStoreShim_production_min;
|
|
22
|
-
hasRequiredUseSyncExternalStoreShim_production_min = 1;
|
|
23
|
-
var e = require$$0;
|
|
24
|
-
function h(a, b) {
|
|
25
|
-
return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;
|
|
26
|
-
}
|
|
27
|
-
var k = "function" === typeof Object.is ? Object.is : h, l = e.useState, m = e.useEffect, n = e.useLayoutEffect, p = e.useDebugValue;
|
|
28
|
-
function q(a, b) {
|
|
29
|
-
var d = b(), f = l({ inst: { value: d, getSnapshot: b } }), c = f[0].inst, g = f[1];
|
|
30
|
-
n(function() {
|
|
31
|
-
c.value = d;
|
|
32
|
-
c.getSnapshot = b;
|
|
33
|
-
r(c) && g({ inst: c });
|
|
34
|
-
}, [a, d, b]);
|
|
35
|
-
m(function() {
|
|
36
|
-
r(c) && g({ inst: c });
|
|
37
|
-
return a(function() {
|
|
38
|
-
r(c) && g({ inst: c });
|
|
39
|
-
});
|
|
40
|
-
}, [a]);
|
|
41
|
-
p(d);
|
|
42
|
-
return d;
|
|
43
|
-
}
|
|
44
|
-
function r(a) {
|
|
45
|
-
var b = a.getSnapshot;
|
|
46
|
-
a = a.value;
|
|
47
|
-
try {
|
|
48
|
-
var d = b();
|
|
49
|
-
return !k(a, d);
|
|
50
|
-
} catch (f) {
|
|
51
|
-
return true;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function t(a, b) {
|
|
55
|
-
return b();
|
|
56
|
-
}
|
|
57
|
-
var u = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? t : q;
|
|
58
|
-
useSyncExternalStoreShim_production_min.useSyncExternalStore = void 0 !== e.useSyncExternalStore ? e.useSyncExternalStore : u;
|
|
59
|
-
return useSyncExternalStoreShim_production_min;
|
|
60
|
-
}
|
|
61
|
-
var useSyncExternalStoreShim_development = {};
|
|
62
|
-
/**
|
|
63
|
-
* @license React
|
|
64
|
-
* use-sync-external-store-shim.development.js
|
|
65
|
-
*
|
|
66
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
67
|
-
*
|
|
68
|
-
* This source code is licensed under the MIT license found in the
|
|
69
|
-
* LICENSE file in the root directory of this source tree.
|
|
70
|
-
*/
|
|
71
|
-
var hasRequiredUseSyncExternalStoreShim_development;
|
|
72
|
-
function requireUseSyncExternalStoreShim_development() {
|
|
73
|
-
if (hasRequiredUseSyncExternalStoreShim_development)
|
|
74
|
-
return useSyncExternalStoreShim_development;
|
|
75
|
-
hasRequiredUseSyncExternalStoreShim_development = 1;
|
|
76
|
-
if (process.env.NODE_ENV !== "production") {
|
|
77
|
-
(function() {
|
|
78
|
-
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
|
|
79
|
-
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
|
|
80
|
-
}
|
|
81
|
-
var React = require$$0;
|
|
82
|
-
var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
83
|
-
function error(format) {
|
|
84
|
-
{
|
|
85
|
-
{
|
|
86
|
-
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
87
|
-
args[_key2 - 1] = arguments[_key2];
|
|
88
|
-
}
|
|
89
|
-
printWarning("error", format, args);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
function printWarning(level, format, args) {
|
|
94
|
-
{
|
|
95
|
-
var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
|
|
96
|
-
var stack = ReactDebugCurrentFrame.getStackAddendum();
|
|
97
|
-
if (stack !== "") {
|
|
98
|
-
format += "%s";
|
|
99
|
-
args = args.concat([stack]);
|
|
100
|
-
}
|
|
101
|
-
var argsWithFormat = args.map(function(item) {
|
|
102
|
-
return String(item);
|
|
103
|
-
});
|
|
104
|
-
argsWithFormat.unshift("Warning: " + format);
|
|
105
|
-
Function.prototype.apply.call(console[level], console, argsWithFormat);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
function is(x, y) {
|
|
109
|
-
return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y;
|
|
110
|
-
}
|
|
111
|
-
var objectIs = typeof Object.is === "function" ? Object.is : is;
|
|
112
|
-
var useState = React.useState, useEffect2 = React.useEffect, useLayoutEffect2 = React.useLayoutEffect, useDebugValue2 = React.useDebugValue;
|
|
113
|
-
var didWarnOld18Alpha = false;
|
|
114
|
-
var didWarnUncachedGetSnapshot = false;
|
|
115
|
-
function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {
|
|
116
|
-
{
|
|
117
|
-
if (!didWarnOld18Alpha) {
|
|
118
|
-
if (React.startTransition !== void 0) {
|
|
119
|
-
didWarnOld18Alpha = true;
|
|
120
|
-
error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release.");
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
var value = getSnapshot();
|
|
125
|
-
{
|
|
126
|
-
if (!didWarnUncachedGetSnapshot) {
|
|
127
|
-
var cachedValue = getSnapshot();
|
|
128
|
-
if (!objectIs(value, cachedValue)) {
|
|
129
|
-
error("The result of getSnapshot should be cached to avoid an infinite loop");
|
|
130
|
-
didWarnUncachedGetSnapshot = true;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
var _useState = useState({
|
|
135
|
-
inst: {
|
|
136
|
-
value,
|
|
137
|
-
getSnapshot
|
|
138
|
-
}
|
|
139
|
-
}), inst = _useState[0].inst, forceUpdate = _useState[1];
|
|
140
|
-
useLayoutEffect2(function() {
|
|
141
|
-
inst.value = value;
|
|
142
|
-
inst.getSnapshot = getSnapshot;
|
|
143
|
-
if (checkIfSnapshotChanged(inst)) {
|
|
144
|
-
forceUpdate({
|
|
145
|
-
inst
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
}, [subscribe, value, getSnapshot]);
|
|
149
|
-
useEffect2(function() {
|
|
150
|
-
if (checkIfSnapshotChanged(inst)) {
|
|
151
|
-
forceUpdate({
|
|
152
|
-
inst
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
var handleStoreChange = function() {
|
|
156
|
-
if (checkIfSnapshotChanged(inst)) {
|
|
157
|
-
forceUpdate({
|
|
158
|
-
inst
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
return subscribe(handleStoreChange);
|
|
163
|
-
}, [subscribe]);
|
|
164
|
-
useDebugValue2(value);
|
|
165
|
-
return value;
|
|
166
|
-
}
|
|
167
|
-
function checkIfSnapshotChanged(inst) {
|
|
168
|
-
var latestGetSnapshot = inst.getSnapshot;
|
|
169
|
-
var prevValue = inst.value;
|
|
170
|
-
try {
|
|
171
|
-
var nextValue = latestGetSnapshot();
|
|
172
|
-
return !objectIs(prevValue, nextValue);
|
|
173
|
-
} catch (error2) {
|
|
174
|
-
return true;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
function useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {
|
|
178
|
-
return getSnapshot();
|
|
179
|
-
}
|
|
180
|
-
var canUseDOM = !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
|
|
181
|
-
var isServerEnvironment = !canUseDOM;
|
|
182
|
-
var shim2 = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore;
|
|
183
|
-
var useSyncExternalStore$2 = React.useSyncExternalStore !== void 0 ? React.useSyncExternalStore : shim2;
|
|
184
|
-
useSyncExternalStoreShim_development.useSyncExternalStore = useSyncExternalStore$2;
|
|
185
|
-
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === "function") {
|
|
186
|
-
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
|
|
187
|
-
}
|
|
188
|
-
})();
|
|
189
|
-
}
|
|
190
|
-
return useSyncExternalStoreShim_development;
|
|
191
|
-
}
|
|
192
|
-
var hasRequiredShim;
|
|
193
|
-
function requireShim() {
|
|
194
|
-
if (hasRequiredShim)
|
|
195
|
-
return shim.exports;
|
|
196
|
-
hasRequiredShim = 1;
|
|
197
|
-
if (process.env.NODE_ENV === "production") {
|
|
198
|
-
shim.exports = requireUseSyncExternalStoreShim_production_min();
|
|
199
|
-
} else {
|
|
200
|
-
shim.exports = requireUseSyncExternalStoreShim_development();
|
|
201
|
-
}
|
|
202
|
-
return shim.exports;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* @license React
|
|
206
|
-
* use-sync-external-store-shim/with-selector.production.min.js
|
|
207
|
-
*
|
|
208
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
209
|
-
*
|
|
210
|
-
* This source code is licensed under the MIT license found in the
|
|
211
|
-
* LICENSE file in the root directory of this source tree.
|
|
212
|
-
*/
|
|
213
|
-
var hasRequiredWithSelector_production_min;
|
|
214
|
-
function requireWithSelector_production_min() {
|
|
215
|
-
if (hasRequiredWithSelector_production_min)
|
|
216
|
-
return withSelector_production_min;
|
|
217
|
-
hasRequiredWithSelector_production_min = 1;
|
|
218
|
-
var h = require$$0, n = requireShim();
|
|
219
|
-
function p(a, b) {
|
|
220
|
-
return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;
|
|
221
|
-
}
|
|
222
|
-
var q = "function" === typeof Object.is ? Object.is : p, r = n.useSyncExternalStore, t = h.useRef, u = h.useEffect, v = h.useMemo, w = h.useDebugValue;
|
|
223
|
-
withSelector_production_min.useSyncExternalStoreWithSelector = function(a, b, e, l, g) {
|
|
224
|
-
var c = t(null);
|
|
225
|
-
if (null === c.current) {
|
|
226
|
-
var f = { hasValue: false, value: null };
|
|
227
|
-
c.current = f;
|
|
228
|
-
} else
|
|
229
|
-
f = c.current;
|
|
230
|
-
c = v(function() {
|
|
231
|
-
function a2(a3) {
|
|
232
|
-
if (!c2) {
|
|
233
|
-
c2 = true;
|
|
234
|
-
d2 = a3;
|
|
235
|
-
a3 = l(a3);
|
|
236
|
-
if (void 0 !== g && f.hasValue) {
|
|
237
|
-
var b2 = f.value;
|
|
238
|
-
if (g(b2, a3))
|
|
239
|
-
return k = b2;
|
|
240
|
-
}
|
|
241
|
-
return k = a3;
|
|
242
|
-
}
|
|
243
|
-
b2 = k;
|
|
244
|
-
if (q(d2, a3))
|
|
245
|
-
return b2;
|
|
246
|
-
var e2 = l(a3);
|
|
247
|
-
if (void 0 !== g && g(b2, e2))
|
|
248
|
-
return b2;
|
|
249
|
-
d2 = a3;
|
|
250
|
-
return k = e2;
|
|
251
|
-
}
|
|
252
|
-
var c2 = false, d2, k, m = void 0 === e ? null : e;
|
|
253
|
-
return [function() {
|
|
254
|
-
return a2(b());
|
|
255
|
-
}, null === m ? void 0 : function() {
|
|
256
|
-
return a2(m());
|
|
257
|
-
}];
|
|
258
|
-
}, [b, e, l, g]);
|
|
259
|
-
var d = r(a, c[0], c[1]);
|
|
260
|
-
u(function() {
|
|
261
|
-
f.hasValue = true;
|
|
262
|
-
f.value = d;
|
|
263
|
-
}, [d]);
|
|
264
|
-
w(d);
|
|
265
|
-
return d;
|
|
266
|
-
};
|
|
267
|
-
return withSelector_production_min;
|
|
268
|
-
}
|
|
269
|
-
var withSelector_development = {};
|
|
270
|
-
/**
|
|
271
|
-
* @license React
|
|
272
|
-
* use-sync-external-store-shim/with-selector.development.js
|
|
273
|
-
*
|
|
274
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
275
|
-
*
|
|
276
|
-
* This source code is licensed under the MIT license found in the
|
|
277
|
-
* LICENSE file in the root directory of this source tree.
|
|
278
|
-
*/
|
|
279
|
-
var hasRequiredWithSelector_development;
|
|
280
|
-
function requireWithSelector_development() {
|
|
281
|
-
if (hasRequiredWithSelector_development)
|
|
282
|
-
return withSelector_development;
|
|
283
|
-
hasRequiredWithSelector_development = 1;
|
|
284
|
-
if (process.env.NODE_ENV !== "production") {
|
|
285
|
-
(function() {
|
|
286
|
-
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
|
|
287
|
-
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
|
|
288
|
-
}
|
|
289
|
-
var React = require$$0;
|
|
290
|
-
var shim2 = requireShim();
|
|
291
|
-
function is(x, y) {
|
|
292
|
-
return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y;
|
|
293
|
-
}
|
|
294
|
-
var objectIs = typeof Object.is === "function" ? Object.is : is;
|
|
295
|
-
var useSyncExternalStore = shim2.useSyncExternalStore;
|
|
296
|
-
var useRef2 = React.useRef, useEffect2 = React.useEffect, useMemo2 = React.useMemo, useDebugValue2 = React.useDebugValue;
|
|
297
|
-
function useSyncExternalStoreWithSelector(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
|
|
298
|
-
var instRef = useRef2(null);
|
|
299
|
-
var inst;
|
|
300
|
-
if (instRef.current === null) {
|
|
301
|
-
inst = {
|
|
302
|
-
hasValue: false,
|
|
303
|
-
value: null
|
|
304
|
-
};
|
|
305
|
-
instRef.current = inst;
|
|
306
|
-
} else {
|
|
307
|
-
inst = instRef.current;
|
|
308
|
-
}
|
|
309
|
-
var _useMemo = useMemo2(function() {
|
|
310
|
-
var hasMemo = false;
|
|
311
|
-
var memoizedSnapshot;
|
|
312
|
-
var memoizedSelection;
|
|
313
|
-
var memoizedSelector = function(nextSnapshot) {
|
|
314
|
-
if (!hasMemo) {
|
|
315
|
-
hasMemo = true;
|
|
316
|
-
memoizedSnapshot = nextSnapshot;
|
|
317
|
-
var _nextSelection = selector(nextSnapshot);
|
|
318
|
-
if (isEqual !== void 0) {
|
|
319
|
-
if (inst.hasValue) {
|
|
320
|
-
var currentSelection = inst.value;
|
|
321
|
-
if (isEqual(currentSelection, _nextSelection)) {
|
|
322
|
-
memoizedSelection = currentSelection;
|
|
323
|
-
return currentSelection;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
memoizedSelection = _nextSelection;
|
|
328
|
-
return _nextSelection;
|
|
329
|
-
}
|
|
330
|
-
var prevSnapshot = memoizedSnapshot;
|
|
331
|
-
var prevSelection = memoizedSelection;
|
|
332
|
-
if (objectIs(prevSnapshot, nextSnapshot)) {
|
|
333
|
-
return prevSelection;
|
|
334
|
-
}
|
|
335
|
-
var nextSelection = selector(nextSnapshot);
|
|
336
|
-
if (isEqual !== void 0 && isEqual(prevSelection, nextSelection)) {
|
|
337
|
-
return prevSelection;
|
|
338
|
-
}
|
|
339
|
-
memoizedSnapshot = nextSnapshot;
|
|
340
|
-
memoizedSelection = nextSelection;
|
|
341
|
-
return nextSelection;
|
|
342
|
-
};
|
|
343
|
-
var maybeGetServerSnapshot = getServerSnapshot === void 0 ? null : getServerSnapshot;
|
|
344
|
-
var getSnapshotWithSelector = function() {
|
|
345
|
-
return memoizedSelector(getSnapshot());
|
|
346
|
-
};
|
|
347
|
-
var getServerSnapshotWithSelector = maybeGetServerSnapshot === null ? void 0 : function() {
|
|
348
|
-
return memoizedSelector(maybeGetServerSnapshot());
|
|
349
|
-
};
|
|
350
|
-
return [getSnapshotWithSelector, getServerSnapshotWithSelector];
|
|
351
|
-
}, [getSnapshot, getServerSnapshot, selector, isEqual]), getSelection = _useMemo[0], getServerSelection = _useMemo[1];
|
|
352
|
-
var value = useSyncExternalStore(subscribe, getSelection, getServerSelection);
|
|
353
|
-
useEffect2(function() {
|
|
354
|
-
inst.hasValue = true;
|
|
355
|
-
inst.value = value;
|
|
356
|
-
}, [value]);
|
|
357
|
-
useDebugValue2(value);
|
|
358
|
-
return value;
|
|
359
|
-
}
|
|
360
|
-
withSelector_development.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector;
|
|
361
|
-
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === "function") {
|
|
362
|
-
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
|
|
363
|
-
}
|
|
364
|
-
})();
|
|
365
|
-
}
|
|
366
|
-
return withSelector_development;
|
|
367
|
-
}
|
|
368
|
-
if (process.env.NODE_ENV === "production") {
|
|
369
|
-
withSelector.exports = requireWithSelector_production_min();
|
|
370
|
-
} else {
|
|
371
|
-
withSelector.exports = requireWithSelector_development();
|
|
372
|
-
}
|
|
373
|
-
var withSelectorExports = withSelector.exports;
|
|
374
|
-
const unwrapProxySymbol = /* @__PURE__ */ Symbol("unwrapProxy");
|
|
375
|
-
function isPlainObject(value) {
|
|
376
|
-
return typeof value === "object" && value !== null && Object.getPrototypeOf(value) === Object.prototype;
|
|
377
|
-
}
|
|
378
|
-
function trackingProxy(value, equals = deepEqual) {
|
|
379
|
-
if (!isPlainObject(value) && !Array.isArray(value)) {
|
|
380
|
-
return [value, (other) => equals(value, other)];
|
|
381
|
-
}
|
|
382
|
-
value = value[unwrapProxySymbol] ?? value;
|
|
383
|
-
const deps = new Array();
|
|
384
|
-
const revokations = new Array();
|
|
385
|
-
let revoked = false;
|
|
386
|
-
function trackComplexProp(function_, ...args) {
|
|
387
|
-
const [proxiedValue, equals2, revoke] = trackingProxy(function_(value, ...args));
|
|
388
|
-
deps.push((otherValue) => {
|
|
389
|
-
if (!isPlainObject(otherValue) && !Array.isArray(otherValue)) {
|
|
390
|
-
return false;
|
|
391
|
-
}
|
|
392
|
-
return equals2(function_(otherValue, ...args));
|
|
393
|
-
});
|
|
394
|
-
if (revoke) {
|
|
395
|
-
revokations.push(revoke);
|
|
396
|
-
}
|
|
397
|
-
return proxiedValue;
|
|
398
|
-
}
|
|
399
|
-
function trackSimpleProp(function_, ...args) {
|
|
400
|
-
const calculatedValue = function_(value, ...args);
|
|
401
|
-
deps.push((otherValue) => {
|
|
402
|
-
return function_(otherValue, ...args) === calculatedValue;
|
|
403
|
-
});
|
|
404
|
-
return calculatedValue;
|
|
405
|
-
}
|
|
406
|
-
const proxy = new Proxy(value, {
|
|
407
|
-
get(target, p, receiver) {
|
|
408
|
-
if (p === unwrapProxySymbol) {
|
|
409
|
-
return value;
|
|
410
|
-
}
|
|
411
|
-
if (revoked) {
|
|
412
|
-
return target[p];
|
|
413
|
-
}
|
|
414
|
-
const { writable, configurable } = Object.getOwnPropertyDescriptor(target, p) ?? {};
|
|
415
|
-
if (writable === false && configurable === false) {
|
|
416
|
-
return target[p];
|
|
417
|
-
}
|
|
418
|
-
return trackComplexProp(Reflect.get, p, receiver);
|
|
419
|
-
},
|
|
420
|
-
getOwnPropertyDescriptor(target, p) {
|
|
421
|
-
const { writable, configurable } = Object.getOwnPropertyDescriptor(target, p) ?? {};
|
|
422
|
-
if (writable === false && configurable === false) {
|
|
423
|
-
return Reflect.getOwnPropertyDescriptor(target, p);
|
|
424
|
-
}
|
|
425
|
-
return trackComplexProp(Reflect.getOwnPropertyDescriptor, p);
|
|
426
|
-
},
|
|
427
|
-
ownKeys() {
|
|
428
|
-
return trackComplexProp(Reflect.ownKeys);
|
|
429
|
-
},
|
|
430
|
-
getPrototypeOf() {
|
|
431
|
-
return trackSimpleProp(Reflect.getPrototypeOf);
|
|
432
|
-
},
|
|
433
|
-
has(_target, p) {
|
|
434
|
-
return trackSimpleProp(Reflect.has, p);
|
|
435
|
-
},
|
|
436
|
-
isExtensible() {
|
|
437
|
-
return trackSimpleProp(Reflect.isExtensible);
|
|
438
|
-
}
|
|
439
|
-
});
|
|
440
|
-
return [
|
|
441
|
-
proxy,
|
|
442
|
-
(other) => !!other && deps.every((equals2) => equals2(other)),
|
|
443
|
-
() => {
|
|
444
|
-
revoked = true;
|
|
445
|
-
revokations.forEach((revoke) => revoke());
|
|
446
|
-
}
|
|
447
|
-
];
|
|
448
|
-
}
|
|
449
|
-
function useStore(store, argument1, argument2) {
|
|
450
|
-
const selector = makeSelector(
|
|
451
|
-
typeof argument1 === "function" || typeof argument1 === "string" ? argument1 : void 0
|
|
452
|
-
);
|
|
453
|
-
const {
|
|
454
|
-
disableTrackingProxy = true,
|
|
455
|
-
equals = deepEqual,
|
|
456
|
-
...options
|
|
457
|
-
} = typeof argument1 === "object" ? argument1 : argument2 ?? {};
|
|
458
|
-
const lastEqualsRef = useRef();
|
|
459
|
-
const { rootStore, mappingSelector } = useMemo(() => {
|
|
460
|
-
var _a;
|
|
461
|
-
const rootStore2 = ((_a = store.derivedFrom) == null ? void 0 : _a.store) ?? store;
|
|
462
|
-
let mappingSelector2 = (x) => x;
|
|
463
|
-
if (store.derivedFrom) {
|
|
464
|
-
mappingSelector2 = (value2) => {
|
|
465
|
-
for (const s of store.derivedFrom.selectors) {
|
|
466
|
-
value2 = makeSelector(s)(value2);
|
|
467
|
-
}
|
|
468
|
-
return value2;
|
|
469
|
-
};
|
|
470
|
-
}
|
|
471
|
-
return { rootStore: rootStore2, mappingSelector: mappingSelector2 };
|
|
472
|
-
}, [store]);
|
|
473
|
-
const subOptions = { ...options, runNow: false, passive: false };
|
|
474
|
-
const subscribe = useCallback(
|
|
475
|
-
(listener) => {
|
|
476
|
-
return rootStore.subscribe(listener, subOptions);
|
|
477
|
-
},
|
|
478
|
-
[rootStore, hash(subOptions)]
|
|
479
|
-
);
|
|
480
|
-
let value = withSelectorExports.useSyncExternalStoreWithSelector(
|
|
481
|
-
//
|
|
482
|
-
subscribe,
|
|
483
|
-
rootStore.get,
|
|
484
|
-
void 0,
|
|
485
|
-
(x) => selector(mappingSelector(x)),
|
|
486
|
-
(_v, newValue) => {
|
|
487
|
-
var _a;
|
|
488
|
-
return ((_a = lastEqualsRef.current) == null ? void 0 : _a.call(lastEqualsRef, newValue)) ?? false;
|
|
489
|
-
}
|
|
490
|
-
);
|
|
491
|
-
let lastEquals = (newValue) => equals(newValue, value);
|
|
492
|
-
let revoke;
|
|
493
|
-
if (!disableTrackingProxy) {
|
|
494
|
-
[value, lastEquals, revoke] = trackingProxy(value, equals);
|
|
495
|
-
}
|
|
496
|
-
useLayoutEffect(() => {
|
|
497
|
-
lastEqualsRef.current = lastEquals;
|
|
498
|
-
revoke == null ? void 0 : revoke();
|
|
499
|
-
});
|
|
500
|
-
useDebugValue(value);
|
|
501
|
-
return value;
|
|
502
|
-
}
|
|
503
|
-
function useProp(store, argument1, argument2, argument3) {
|
|
504
|
-
const selector = typeof argument1 === "function" || typeof argument1 === "string" ? argument1 : void 0;
|
|
505
|
-
const updater = typeof argument2 === "function" ? argument2 : void 0;
|
|
506
|
-
const options = typeof argument1 === "object" ? argument1 : typeof argument2 === "object" ? argument2 : argument3;
|
|
507
|
-
if (selector) {
|
|
508
|
-
store = store.map(selector, updater);
|
|
509
|
-
}
|
|
510
|
-
const value = useStore(store, options);
|
|
511
|
-
return [value, store.set];
|
|
512
|
-
}
|
|
513
|
-
function getScopeContext(scope) {
|
|
514
|
-
scope.context ?? (scope.context = createContext(createStore(scope.defaultValue)));
|
|
515
|
-
return scope.context;
|
|
516
|
-
}
|
|
517
|
-
function ScopeProvider({ scope, store: inputStore, children }) {
|
|
518
|
-
const context = getScopeContext(scope);
|
|
519
|
-
const currentStore = useMemo(
|
|
520
|
-
() => inputStore ?? createStore(scope.defaultValue),
|
|
521
|
-
[scope, inputStore]
|
|
522
|
-
);
|
|
523
|
-
return /* @__PURE__ */ jsx(context.Provider, { value: currentStore, children });
|
|
524
|
-
}
|
|
525
|
-
function useScope(scope) {
|
|
526
|
-
const context = getScopeContext(scope);
|
|
527
|
-
return useContext(context);
|
|
528
|
-
}
|
|
529
|
-
function useScopeStore(scope, options) {
|
|
530
|
-
const store = useScope(scope);
|
|
531
|
-
return useStore(store, options);
|
|
532
|
-
}
|
|
533
|
-
function useScopeProp(scope, options) {
|
|
534
|
-
const store = useScope(scope);
|
|
535
|
-
return useProp(store, options);
|
|
536
|
-
}
|
|
537
|
-
const reactMethods = {
|
|
538
|
-
useStore(options) {
|
|
539
|
-
return useStore(this, options);
|
|
540
|
-
},
|
|
541
|
-
useProp(options) {
|
|
542
|
-
return useProp(this, options);
|
|
543
|
-
}
|
|
544
|
-
};
|
|
545
|
-
function useCache(cache, { passive, updateOnMount, ...options } = {}) {
|
|
546
|
-
const mappedState = useMemo(() => {
|
|
547
|
-
var _a;
|
|
548
|
-
const rootCache = ((_a = cache.derivedFromCache) == null ? void 0 : _a.cache) ?? cache;
|
|
549
|
-
let selector = (x) => x;
|
|
550
|
-
if (cache.derivedFromCache) {
|
|
551
|
-
selector = (value) => {
|
|
552
|
-
for (const s of cache.derivedFromCache.selectors) {
|
|
553
|
-
value = makeSelector(s)(value);
|
|
554
|
-
}
|
|
555
|
-
return value;
|
|
556
|
-
};
|
|
557
|
-
}
|
|
558
|
-
return rootCache.state.map((state) => {
|
|
559
|
-
const value = state.status === "value" ? selector(state.value) : void 0;
|
|
560
|
-
return Object.assign(
|
|
561
|
-
[value, state.error, state.isUpdating, state.isStale],
|
|
562
|
-
{ ...state, value }
|
|
563
|
-
);
|
|
564
|
-
});
|
|
565
|
-
}, [cache]);
|
|
566
|
-
useEffect(() => !passive ? cache.subscribe(() => void 0) : void 0, [cache, passive]);
|
|
567
|
-
useEffect(() => {
|
|
568
|
-
if (updateOnMount) {
|
|
569
|
-
cache.invalidate();
|
|
570
|
-
}
|
|
571
|
-
}, []);
|
|
572
|
-
return useStore(mappedState, options);
|
|
573
|
-
}
|
|
574
|
-
export {
|
|
575
|
-
ScopeProvider as S,
|
|
576
|
-
useScope as a,
|
|
577
|
-
useScopeStore as b,
|
|
578
|
-
useScopeProp as c,
|
|
579
|
-
useStore as d,
|
|
580
|
-
useProp as e,
|
|
581
|
-
reactMethods as r,
|
|
582
|
-
useCache as u
|
|
583
|
-
};
|
|
584
|
-
//# sourceMappingURL=useCache.mjs.map
|