@frontify/fondue 12.0.0-beta.53 → 12.0.0-beta.55
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../../node_modules/jotai/esm/index.mjs"],"sourcesContent":["import { createContext, useState, useEffect, useRef, createElement, useContext, useReducer, useDebugValue, useCallback } from 'react';\nimport { atom as atom$1 } from 'jotai/vanilla';\n\nconst SUSPENSE_PROMISE = Symbol();\nconst isSuspensePromise = (promise) => !!promise[SUSPENSE_PROMISE];\nconst isSuspensePromiseAlreadyCancelled = (suspensePromise) => !suspensePromise[SUSPENSE_PROMISE].c;\nconst cancelSuspensePromise = (suspensePromise) => {\n var _a;\n const { b: basePromise, c: cancelPromise } = suspensePromise[SUSPENSE_PROMISE];\n if (cancelPromise) {\n cancelPromise();\n (_a = promiseAbortMap.get(basePromise)) == null ? void 0 : _a();\n }\n};\nconst isEqualSuspensePromise = (oldSuspensePromise, newSuspensePromise) => {\n const oldOriginalPromise = oldSuspensePromise[SUSPENSE_PROMISE].o;\n const newOriginalPromise = newSuspensePromise[SUSPENSE_PROMISE].o;\n return oldOriginalPromise === newOriginalPromise || oldSuspensePromise === newOriginalPromise || isSuspensePromise(oldOriginalPromise) && isEqualSuspensePromise(oldOriginalPromise, newSuspensePromise);\n};\nconst createSuspensePromise = (basePromise, promise) => {\n const suspensePromiseExtra = {\n b: basePromise,\n o: promise,\n c: null\n };\n const suspensePromise = new Promise((resolve) => {\n suspensePromiseExtra.c = () => {\n suspensePromiseExtra.c = null;\n resolve();\n };\n promise.finally(suspensePromiseExtra.c);\n });\n suspensePromise[SUSPENSE_PROMISE] = suspensePromiseExtra;\n return suspensePromise;\n};\nconst copySuspensePromise = (suspensePromise) => createSuspensePromise(\n suspensePromise[SUSPENSE_PROMISE].b,\n suspensePromise[SUSPENSE_PROMISE].o\n);\nconst promiseAbortMap = /* @__PURE__ */ new WeakMap();\nconst registerPromiseAbort = (basePromise, abort) => {\n promiseAbortMap.set(basePromise, abort);\n};\n\nconst hasInitialValue = (atom) => \"init\" in atom;\nconst READ_ATOM = \"r\";\nconst WRITE_ATOM = \"w\";\nconst COMMIT_ATOM = \"c\";\nconst SUBSCRIBE_ATOM = \"s\";\nconst RESTORE_ATOMS = \"h\";\nconst DEV_SUBSCRIBE_STATE = \"n\";\nconst DEV_GET_MOUNTED_ATOMS = \"l\";\nconst DEV_GET_ATOM_STATE = \"a\";\nconst DEV_GET_MOUNTED = \"m\";\nconst createStore = (initialValues) => {\n const committedAtomStateMap = /* @__PURE__ */ new WeakMap();\n const mountedMap = /* @__PURE__ */ new WeakMap();\n const pendingMap = /* @__PURE__ */ new Map();\n let stateListeners;\n let mountedAtoms;\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n stateListeners = /* @__PURE__ */ new Set();\n mountedAtoms = /* @__PURE__ */ new Set();\n }\n if (initialValues) {\n for (const [atom, value] of initialValues) {\n const atomState = {\n v: value,\n r: 0,\n y: true,\n d: /* @__PURE__ */ new Map()\n };\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n Object.freeze(atomState);\n if (!hasInitialValue(atom)) {\n console.warn(\n \"Found initial value for derived atom which can cause unexpected behavior\",\n atom\n );\n }\n }\n committedAtomStateMap.set(atom, atomState);\n }\n }\n const suspensePromiseCacheMap = /* @__PURE__ */ new WeakMap();\n const addSuspensePromiseToCache = (version, atom, suspensePromise) => {\n let cache = suspensePromiseCacheMap.get(atom);\n if (!cache) {\n cache = /* @__PURE__ */ new Map();\n suspensePromiseCacheMap.set(atom, cache);\n }\n suspensePromise.then(() => {\n if (cache.get(version) === suspensePromise) {\n cache.delete(version);\n if (!cache.size) {\n suspensePromiseCacheMap.delete(atom);\n }\n }\n });\n cache.set(version, suspensePromise);\n };\n const cancelAllSuspensePromiseInCache = (atom) => {\n const versionSet = /* @__PURE__ */ new Set();\n const cache = suspensePromiseCacheMap.get(atom);\n if (cache) {\n suspensePromiseCacheMap.delete(atom);\n cache.forEach((suspensePromise, version) => {\n cancelSuspensePromise(suspensePromise);\n versionSet.add(version);\n });\n }\n return versionSet;\n };\n const versionedAtomStateMapMap = /* @__PURE__ */ new WeakMap();\n const getVersionedAtomStateMap = (version) => {\n let versionedAtomStateMap = versionedAtomStateMapMap.get(version);\n if (!versionedAtomStateMap) {\n versionedAtomStateMap = /* @__PURE__ */ new Map();\n versionedAtomStateMapMap.set(version, versionedAtomStateMap);\n }\n return versionedAtomStateMap;\n };\n const getAtomState = (version, atom) => {\n if (version) {\n const versionedAtomStateMap = getVersionedAtomStateMap(version);\n let atomState = versionedAtomStateMap.get(atom);\n if (!atomState) {\n atomState = getAtomState(version.p, atom);\n if (atomState && \"p\" in atomState && isSuspensePromiseAlreadyCancelled(atomState.p)) {\n atomState = void 0;\n }\n if (atomState) {\n versionedAtomStateMap.set(atom, atomState);\n }\n }\n return atomState;\n }\n return committedAtomStateMap.get(atom);\n };\n const setAtomState = (version, atom, atomState) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n Object.freeze(atomState);\n }\n if (version) {\n const versionedAtomStateMap = getVersionedAtomStateMap(version);\n versionedAtomStateMap.set(atom, atomState);\n } else {\n const prevAtomState = committedAtomStateMap.get(atom);\n committedAtomStateMap.set(atom, atomState);\n if (!pendingMap.has(atom)) {\n pendingMap.set(atom, prevAtomState);\n }\n }\n };\n const createReadDependencies = (version, prevReadDependencies = /* @__PURE__ */ new Map(), dependencies) => {\n if (!dependencies) {\n return prevReadDependencies;\n }\n const readDependencies = /* @__PURE__ */ new Map();\n let changed = false;\n dependencies.forEach((atom) => {\n var _a;\n const revision = ((_a = getAtomState(version, atom)) == null ? void 0 : _a.r) || 0;\n readDependencies.set(atom, revision);\n if (prevReadDependencies.get(atom) !== revision) {\n changed = true;\n }\n });\n if (prevReadDependencies.size === readDependencies.size && !changed) {\n return prevReadDependencies;\n }\n return readDependencies;\n };\n const setAtomValue = (version, atom, value, dependencies, suspensePromise) => {\n const atomState = getAtomState(version, atom);\n if (atomState) {\n if (suspensePromise && (!(\"p\" in atomState) || !isEqualSuspensePromise(atomState.p, suspensePromise))) {\n return atomState;\n }\n if (\"p\" in atomState) {\n cancelSuspensePromise(atomState.p);\n }\n }\n const nextAtomState = {\n v: value,\n r: (atomState == null ? void 0 : atomState.r) || 0,\n y: true,\n d: createReadDependencies(version, atomState == null ? void 0 : atomState.d, dependencies)\n };\n let changed = !(atomState == null ? void 0 : atomState.y);\n if (!atomState || !(\"v\" in atomState) || !Object.is(atomState.v, value)) {\n changed = true;\n ++nextAtomState.r;\n if (nextAtomState.d.has(atom)) {\n nextAtomState.d = new Map(nextAtomState.d).set(atom, nextAtomState.r);\n }\n } else if (nextAtomState.d !== atomState.d && (nextAtomState.d.size !== atomState.d.size || !Array.from(nextAtomState.d.keys()).every((a) => atomState.d.has(a)))) {\n changed = true;\n Promise.resolve().then(() => {\n flushPending(version);\n });\n }\n if (atomState && !changed) {\n return atomState;\n }\n setAtomState(version, atom, nextAtomState);\n return nextAtomState;\n };\n const setAtomReadError = (version, atom, error, dependencies, suspensePromise) => {\n const atomState = getAtomState(version, atom);\n if (atomState) {\n if (suspensePromise && (!(\"p\" in atomState) || !isEqualSuspensePromise(atomState.p, suspensePromise))) {\n return atomState;\n }\n if (\"p\" in atomState) {\n cancelSuspensePromise(atomState.p);\n }\n }\n const nextAtomState = {\n e: error,\n r: ((atomState == null ? void 0 : atomState.r) || 0) + 1,\n y: true,\n d: createReadDependencies(version, atomState == null ? void 0 : atomState.d, dependencies)\n };\n setAtomState(version, atom, nextAtomState);\n return nextAtomState;\n };\n const setAtomSuspensePromise = (version, atom, suspensePromise, dependencies) => {\n const atomState = getAtomState(version, atom);\n if (atomState && \"p\" in atomState) {\n if (isEqualSuspensePromise(atomState.p, suspensePromise) && !isSuspensePromiseAlreadyCancelled(atomState.p)) {\n if (!atomState.y) {\n return { ...atomState, y: true };\n }\n return atomState;\n }\n cancelSuspensePromise(atomState.p);\n }\n addSuspensePromiseToCache(version, atom, suspensePromise);\n const nextAtomState = {\n p: suspensePromise,\n r: ((atomState == null ? void 0 : atomState.r) || 0) + 1,\n y: true,\n d: createReadDependencies(version, atomState == null ? void 0 : atomState.d, dependencies)\n };\n setAtomState(version, atom, nextAtomState);\n return nextAtomState;\n };\n const setAtomPromiseOrValue = (version, atom, promiseOrValue, dependencies) => {\n if (promiseOrValue instanceof Promise) {\n const suspensePromise = createSuspensePromise(\n promiseOrValue,\n promiseOrValue.then((value) => {\n setAtomValue(version, atom, value, dependencies, suspensePromise);\n }).catch((e) => {\n if (e instanceof Promise) {\n if (isSuspensePromise(e)) {\n return e.then(() => {\n readAtomState(version, atom, true);\n });\n }\n return e;\n }\n setAtomReadError(version, atom, e, dependencies, suspensePromise);\n })\n );\n return setAtomSuspensePromise(\n version,\n atom,\n suspensePromise,\n dependencies\n );\n }\n return setAtomValue(\n version,\n atom,\n promiseOrValue,\n dependencies\n );\n };\n const setAtomInvalidated = (version, atom) => {\n const atomState = getAtomState(version, atom);\n if (atomState) {\n const nextAtomState = {\n ...atomState,\n y: false\n };\n setAtomState(version, atom, nextAtomState);\n } else if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\"[Bug] could not invalidate non existing atom\", atom);\n }\n };\n const readAtomState = (version, atom, force) => {\n if (!force) {\n const atomState = getAtomState(version, atom);\n if (atomState) {\n if (atomState.y && \"p\" in atomState && !isSuspensePromiseAlreadyCancelled(atomState.p)) {\n return atomState;\n }\n atomState.d.forEach((_, a) => {\n if (a !== atom) {\n if (!mountedMap.has(a)) {\n readAtomState(version, a);\n } else {\n const aState = getAtomState(version, a);\n if (aState && !aState.y) {\n readAtomState(version, a);\n }\n }\n }\n });\n if (Array.from(atomState.d).every(([a, r]) => {\n const aState = getAtomState(version, a);\n return aState && !(\"p\" in aState) && aState.r === r;\n })) {\n if (!atomState.y) {\n return { ...atomState, y: true };\n }\n return atomState;\n }\n }\n }\n const dependencies = /* @__PURE__ */ new Set();\n try {\n const promiseOrValue = atom.read((a) => {\n dependencies.add(a);\n const aState = a === atom ? getAtomState(version, a) : readAtomState(version, a);\n if (aState) {\n if (\"e\" in aState) {\n throw aState.e;\n }\n if (\"p\" in aState) {\n throw aState.p;\n }\n return aState.v;\n }\n if (hasInitialValue(a)) {\n return a.init;\n }\n throw new Error(\"no atom init\");\n });\n return setAtomPromiseOrValue(version, atom, promiseOrValue, dependencies);\n } catch (errorOrPromise) {\n if (errorOrPromise instanceof Promise) {\n const suspensePromise = isSuspensePromise(errorOrPromise) && isSuspensePromiseAlreadyCancelled(errorOrPromise) ? copySuspensePromise(errorOrPromise) : createSuspensePromise(errorOrPromise, errorOrPromise);\n return setAtomSuspensePromise(\n version,\n atom,\n suspensePromise,\n dependencies\n );\n }\n return setAtomReadError(version, atom, errorOrPromise, dependencies);\n }\n };\n const readAtom = (readingAtom, version) => {\n const atomState = readAtomState(version, readingAtom);\n return atomState;\n };\n const addAtom = (version, addingAtom) => {\n let mounted = mountedMap.get(addingAtom);\n if (!mounted) {\n mounted = mountAtom(version, addingAtom);\n }\n return mounted;\n };\n const canUnmountAtom = (atom, mounted) => !mounted.l.size && (!mounted.t.size || mounted.t.size === 1 && mounted.t.has(atom));\n const delAtom = (version, deletingAtom) => {\n const mounted = mountedMap.get(deletingAtom);\n if (mounted && canUnmountAtom(deletingAtom, mounted)) {\n unmountAtom(version, deletingAtom);\n }\n };\n const invalidateDependents = (version, atom) => {\n const mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.t.forEach((dependent) => {\n if (dependent !== atom) {\n setAtomInvalidated(version, dependent);\n invalidateDependents(version, dependent);\n }\n });\n };\n const writeAtomState = (version, atom, update) => {\n let isSync = true;\n const writeGetter = (a, options) => {\n const aState = readAtomState(version, a);\n if (\"e\" in aState) {\n throw aState.e;\n }\n if (\"p\" in aState) {\n if (options == null ? void 0 : options.unstable_promise) {\n return aState.p.then(() => {\n const s = getAtomState(version, a);\n if (s && \"p\" in s && s.p === aState.p) {\n return new Promise((resolve) => setTimeout(resolve)).then(\n () => writeGetter(a, options)\n );\n }\n return writeGetter(a, options);\n });\n }\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.info(\n \"Reading pending atom state in write operation. We throw a promise for now.\",\n a\n );\n }\n throw aState.p;\n }\n if (\"v\" in aState) {\n return aState.v;\n }\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\n \"[Bug] no value found while reading atom in write operation. This is probably a bug.\",\n a\n );\n }\n throw new Error(\"no value found\");\n };\n const setter = (a, v) => {\n let promiseOrVoid2;\n if (a === atom) {\n if (!hasInitialValue(a)) {\n throw new Error(\"atom not writable\");\n }\n const versionSet = cancelAllSuspensePromiseInCache(a);\n versionSet.forEach((cancelledVersion) => {\n if (cancelledVersion !== version) {\n setAtomPromiseOrValue(cancelledVersion, a, v);\n }\n });\n const prevAtomState = getAtomState(version, a);\n const nextAtomState = setAtomPromiseOrValue(version, a, v);\n if (prevAtomState !== nextAtomState) {\n invalidateDependents(version, a);\n }\n } else {\n promiseOrVoid2 = writeAtomState(version, a, v);\n }\n if (!isSync) {\n flushPending(version);\n }\n return promiseOrVoid2;\n };\n const promiseOrVoid = atom.write(writeGetter, setter, update);\n isSync = false;\n return promiseOrVoid;\n };\n const writeAtom = (writingAtom, update, version) => {\n const promiseOrVoid = writeAtomState(version, writingAtom, update);\n flushPending(version);\n return promiseOrVoid;\n };\n const isActuallyWritableAtom = (atom) => !!atom.write;\n const mountAtom = (version, atom, initialDependent) => {\n const mounted = {\n t: new Set(initialDependent && [initialDependent]),\n l: /* @__PURE__ */ new Set()\n };\n mountedMap.set(atom, mounted);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n mountedAtoms.add(atom);\n }\n const atomState = readAtomState(void 0, atom);\n atomState.d.forEach((_, a) => {\n const aMounted = mountedMap.get(a);\n if (aMounted) {\n aMounted.t.add(atom);\n } else {\n if (a !== atom) {\n mountAtom(version, a, atom);\n }\n }\n });\n if (isActuallyWritableAtom(atom) && atom.onMount) {\n const setAtom = (update) => writeAtom(atom, update, version);\n const onUnmount = atom.onMount(setAtom);\n version = void 0;\n if (onUnmount) {\n mounted.u = onUnmount;\n }\n }\n return mounted;\n };\n const unmountAtom = (version, atom) => {\n var _a;\n const onUnmount = (_a = mountedMap.get(atom)) == null ? void 0 : _a.u;\n if (onUnmount) {\n onUnmount();\n }\n mountedMap.delete(atom);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n mountedAtoms.delete(atom);\n }\n const atomState = getAtomState(version, atom);\n if (atomState) {\n if (\"p\" in atomState) {\n cancelSuspensePromise(atomState.p);\n }\n atomState.d.forEach((_, a) => {\n if (a !== atom) {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(version, a);\n }\n }\n }\n });\n } else if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\"[Bug] could not find atom state to unmount\", atom);\n }\n };\n const mountDependencies = (version, atom, atomState, prevReadDependencies) => {\n const dependencies = new Set(atomState.d.keys());\n prevReadDependencies == null ? void 0 : prevReadDependencies.forEach((_, a) => {\n if (dependencies.has(a)) {\n dependencies.delete(a);\n return;\n }\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(version, a);\n }\n }\n });\n dependencies.forEach((a) => {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.add(atom);\n } else if (mountedMap.has(atom)) {\n mountAtom(version, a, atom);\n }\n });\n };\n const flushPending = (version) => {\n if (version) {\n const versionedAtomStateMap = getVersionedAtomStateMap(version);\n versionedAtomStateMap.forEach((atomState, atom) => {\n const committedAtomState = committedAtomStateMap.get(atom);\n if (atomState !== committedAtomState) {\n const mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.l.forEach((listener) => listener(version));\n }\n });\n return;\n }\n while (pendingMap.size) {\n const pending = Array.from(pendingMap);\n pendingMap.clear();\n pending.forEach(([atom, prevAtomState]) => {\n const atomState = getAtomState(void 0, atom);\n if (atomState && atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(void 0, atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n if (prevAtomState && !prevAtomState.y && (atomState == null ? void 0 : atomState.y)) {\n return;\n }\n const mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.l.forEach((listener) => listener());\n });\n }\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n stateListeners.forEach((l) => l());\n }\n };\n const commitVersionedAtomStateMap = (version) => {\n const versionedAtomStateMap = getVersionedAtomStateMap(version);\n versionedAtomStateMap.forEach((atomState, atom) => {\n const prevAtomState = committedAtomStateMap.get(atom);\n if (!prevAtomState || atomState.r > prevAtomState.r || atomState.y !== prevAtomState.y || atomState.r === prevAtomState.r && atomState.d !== prevAtomState.d) {\n committedAtomStateMap.set(atom, atomState);\n if (atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(version, atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n }\n });\n };\n const commitAtom = (_atom, version) => {\n if (version) {\n commitVersionedAtomStateMap(version);\n }\n flushPending(void 0);\n };\n const subscribeAtom = (atom, callback, version) => {\n const mounted = addAtom(version, atom);\n const listeners = mounted.l;\n listeners.add(callback);\n return () => {\n listeners.delete(callback);\n delAtom(version, atom);\n };\n };\n const restoreAtoms = (values, version) => {\n for (const [atom, value] of values) {\n if (hasInitialValue(atom)) {\n setAtomPromiseOrValue(version, atom, value);\n invalidateDependents(version, atom);\n }\n }\n flushPending(version);\n };\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n return {\n [READ_ATOM]: readAtom,\n [WRITE_ATOM]: writeAtom,\n [COMMIT_ATOM]: commitAtom,\n [SUBSCRIBE_ATOM]: subscribeAtom,\n [RESTORE_ATOMS]: restoreAtoms,\n [DEV_SUBSCRIBE_STATE]: (l) => {\n stateListeners.add(l);\n return () => {\n stateListeners.delete(l);\n };\n },\n [DEV_GET_MOUNTED_ATOMS]: () => mountedAtoms.values(),\n [DEV_GET_ATOM_STATE]: (a) => committedAtomStateMap.get(a),\n [DEV_GET_MOUNTED]: (a) => mountedMap.get(a)\n };\n }\n return {\n [READ_ATOM]: readAtom,\n [WRITE_ATOM]: writeAtom,\n [COMMIT_ATOM]: commitAtom,\n [SUBSCRIBE_ATOM]: subscribeAtom,\n [RESTORE_ATOMS]: restoreAtoms\n };\n};\nconst createStoreForExport = (initialValues) => {\n const store = createStore(initialValues);\n const get = (atom) => {\n const atomState = store[READ_ATOM](atom);\n if (\"e\" in atomState) {\n throw atomState.e;\n }\n if (\"p\" in atomState) {\n return void 0;\n }\n return atomState.v;\n };\n const asyncGet = (atom) => new Promise((resolve, reject) => {\n const atomState = store[READ_ATOM](atom);\n if (\"e\" in atomState) {\n reject(atomState.e);\n } else if (\"p\" in atomState) {\n resolve(atomState.p.then(() => asyncGet(atom)));\n } else {\n resolve(atomState.v);\n }\n });\n const set = (atom, update) => store[WRITE_ATOM](atom, update);\n const sub = (atom, callback) => store[SUBSCRIBE_ATOM](atom, callback);\n return {\n get,\n asyncGet,\n set,\n sub,\n SECRET_INTERNAL_store: store\n };\n};\n\nconst createScopeContainer = (initialValues, unstable_createStore) => {\n const store = unstable_createStore ? unstable_createStore(initialValues).SECRET_INTERNAL_store : createStore(initialValues);\n return { s: store };\n};\nconst ScopeContextMap = /* @__PURE__ */ new Map();\nconst getScopeContext = (scope) => {\n if (!ScopeContextMap.has(scope)) {\n ScopeContextMap.set(scope, createContext(createScopeContainer()));\n }\n return ScopeContextMap.get(scope);\n};\n\nconst Provider = ({\n children,\n initialValues,\n scope,\n unstable_createStore,\n unstable_enableVersionedWrite\n}) => {\n const [version, setVersion] = useState({});\n useEffect(() => {\n const scopeContainer = scopeContainerRef.current;\n if (scopeContainer.w) {\n scopeContainer.s[COMMIT_ATOM](null, version);\n delete version.p;\n scopeContainer.v = version;\n }\n }, [version]);\n const scopeContainerRef = useRef();\n if (!scopeContainerRef.current) {\n const scopeContainer = createScopeContainer(\n initialValues,\n unstable_createStore\n );\n if (unstable_enableVersionedWrite) {\n let retrying = 0;\n scopeContainer.w = (write) => {\n setVersion((parentVersion) => {\n const nextVersion = retrying ? parentVersion : { p: parentVersion };\n write(nextVersion);\n return nextVersion;\n });\n };\n scopeContainer.v = version;\n scopeContainer.r = (fn) => {\n ++retrying;\n fn();\n --retrying;\n };\n }\n scopeContainerRef.current = scopeContainer;\n }\n const ScopeContainerContext = getScopeContext(scope);\n return createElement(\n ScopeContainerContext.Provider,\n {\n value: scopeContainerRef.current\n },\n children\n );\n};\n\nfunction atom(read, write) {\n return atom$1(read, write);\n}\n\nfunction useAtomValue(atom, scope) {\n const ScopeContext = getScopeContext(scope);\n const scopeContainer = useContext(ScopeContext);\n const { s: store, v: versionFromProvider } = scopeContainer;\n const getAtomValue = (version2) => {\n const atomState = store[READ_ATOM](atom, version2);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && !atomState.y) {\n throw new Error(\"should not be invalidated\");\n }\n if (\"e\" in atomState) {\n throw atomState.e;\n }\n if (\"p\" in atomState) {\n throw atomState.p;\n }\n if (\"v\" in atomState) {\n return atomState.v;\n }\n throw new Error(\"no atom value\");\n };\n const [[version, valueFromReducer, atomFromReducer], rerenderIfChanged] = useReducer(\n (prev, nextVersion) => {\n const nextValue = getAtomValue(nextVersion);\n if (Object.is(prev[1], nextValue) && prev[2] === atom) {\n return prev;\n }\n return [nextVersion, nextValue, atom];\n },\n versionFromProvider,\n (initialVersion) => {\n const initialValue = getAtomValue(initialVersion);\n return [initialVersion, initialValue, atom];\n }\n );\n let value = valueFromReducer;\n if (atomFromReducer !== atom) {\n rerenderIfChanged(version);\n value = getAtomValue(version);\n }\n useEffect(() => {\n const { v: versionFromProvider2 } = scopeContainer;\n if (versionFromProvider2) {\n store[COMMIT_ATOM](atom, versionFromProvider2);\n }\n const unsubscribe = store[SUBSCRIBE_ATOM](\n atom,\n rerenderIfChanged,\n versionFromProvider2\n );\n rerenderIfChanged(versionFromProvider2);\n return unsubscribe;\n }, [store, atom, scopeContainer]);\n useEffect(() => {\n store[COMMIT_ATOM](atom, version);\n });\n useDebugValue(value);\n return value;\n}\n\nfunction useSetAtom(atom, scope) {\n const ScopeContext = getScopeContext(scope);\n const { s: store, w: versionedWrite } = useContext(ScopeContext);\n const setAtom = useCallback(\n (update) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && !(\"write\" in atom)) {\n throw new Error(\"not writable atom\");\n }\n const write = (version) => store[WRITE_ATOM](atom, update, version);\n return versionedWrite ? versionedWrite(write) : write();\n },\n [store, versionedWrite, atom]\n );\n return setAtom;\n}\n\nfunction useAtom(atom, scope) {\n if (\"scope\" in atom) {\n console.warn(\n \"atom.scope is deprecated. Please do useAtom(atom, scope) instead.\"\n );\n scope = atom.scope;\n }\n return [\n useAtomValue(atom, scope),\n useSetAtom(atom, scope)\n ];\n}\n\nexport { Provider, getScopeContext as SECRET_INTERNAL_getScopeContext, registerPromiseAbort as SECRET_INTERNAL_registerPromiseAbort, atom, createStoreForExport as unstable_createStore, useAtom, useAtomValue, useSetAtom };\n"],"names":["SUSPENSE_PROMISE","isSuspensePromise","promise","isSuspensePromiseAlreadyCancelled","suspensePromise","cancelSuspensePromise","_a","basePromise","cancelPromise","promiseAbortMap","isEqualSuspensePromise","oldSuspensePromise","newSuspensePromise","oldOriginalPromise","newOriginalPromise","createSuspensePromise","suspensePromiseExtra","resolve","copySuspensePromise","hasInitialValue","atom","READ_ATOM","WRITE_ATOM","COMMIT_ATOM","SUBSCRIBE_ATOM","RESTORE_ATOMS","DEV_SUBSCRIBE_STATE","DEV_GET_MOUNTED_ATOMS","DEV_GET_ATOM_STATE","DEV_GET_MOUNTED","createStore","initialValues","committedAtomStateMap","mountedMap","pendingMap","stateListeners","mountedAtoms","value","atomState","suspensePromiseCacheMap","addSuspensePromiseToCache","version","cache","cancelAllSuspensePromiseInCache","versionSet","versionedAtomStateMapMap","getVersionedAtomStateMap","versionedAtomStateMap","getAtomState","setAtomState","prevAtomState","createReadDependencies","prevReadDependencies","dependencies","readDependencies","changed","revision","setAtomValue","nextAtomState","a","flushPending","setAtomReadError","error","setAtomSuspensePromise","setAtomPromiseOrValue","promiseOrValue","e","readAtomState","setAtomInvalidated","force","_","aState","r","errorOrPromise","readAtom","readingAtom","addAtom","addingAtom","mounted","mountAtom","canUnmountAtom","delAtom","deletingAtom","unmountAtom","invalidateDependents","dependent","writeAtomState","update","isSync","writeGetter","options","s","setter","v","promiseOrVoid2","cancelledVersion","promiseOrVoid","writeAtom","writingAtom","isActuallyWritableAtom","initialDependent","aMounted","setAtom","onUnmount","mountDependencies","committedAtomState","listener","pending","l","commitVersionedAtomStateMap","commitAtom","_atom","subscribeAtom","callback","listeners","restoreAtoms","values","createScopeContainer","unstable_createStore","ScopeContextMap","getScopeContext","scope","createContext","Provider","children","unstable_enableVersionedWrite","setVersion","useState","useEffect","scopeContainer","scopeContainerRef","useRef","retrying","write","parentVersion","nextVersion","fn","ScopeContainerContext","createElement","read","atom$1","useAtomValue","ScopeContext","useContext","store","versionFromProvider","getAtomValue","version2","valueFromReducer","atomFromReducer","rerenderIfChanged","useReducer","prev","nextValue","initialVersion","initialValue","versionFromProvider2","unsubscribe","useDebugValue","useSetAtom","versionedWrite","useCallback","useAtom"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../../node_modules/jotai/esm/index.mjs"],"sourcesContent":["import { createContext, useState, useEffect, useRef, createElement, useContext, useReducer, useDebugValue, useCallback } from 'react';\nimport { atom as atom$1 } from 'jotai/vanilla';\n\nconst SUSPENSE_PROMISE = Symbol();\nconst isSuspensePromise = (promise) => !!promise[SUSPENSE_PROMISE];\nconst isSuspensePromiseAlreadyCancelled = (suspensePromise) => !suspensePromise[SUSPENSE_PROMISE].c;\nconst cancelSuspensePromise = (suspensePromise) => {\n var _a;\n const { b: basePromise, c: cancelPromise } = suspensePromise[SUSPENSE_PROMISE];\n if (cancelPromise) {\n cancelPromise();\n (_a = promiseAbortMap.get(basePromise)) == null ? void 0 : _a();\n }\n};\nconst isEqualSuspensePromise = (oldSuspensePromise, newSuspensePromise) => {\n const oldOriginalPromise = oldSuspensePromise[SUSPENSE_PROMISE].o;\n const newOriginalPromise = newSuspensePromise[SUSPENSE_PROMISE].o;\n return oldOriginalPromise === newOriginalPromise || oldSuspensePromise === newOriginalPromise || isSuspensePromise(oldOriginalPromise) && isEqualSuspensePromise(oldOriginalPromise, newSuspensePromise);\n};\nconst createSuspensePromise = (basePromise, promise) => {\n const suspensePromiseExtra = {\n b: basePromise,\n o: promise,\n c: null\n };\n const suspensePromise = new Promise((resolve) => {\n suspensePromiseExtra.c = () => {\n suspensePromiseExtra.c = null;\n resolve();\n };\n promise.finally(suspensePromiseExtra.c);\n });\n suspensePromise[SUSPENSE_PROMISE] = suspensePromiseExtra;\n return suspensePromise;\n};\nconst copySuspensePromise = (suspensePromise) => createSuspensePromise(\n suspensePromise[SUSPENSE_PROMISE].b,\n suspensePromise[SUSPENSE_PROMISE].o\n);\nconst promiseAbortMap = /* @__PURE__ */ new WeakMap();\nconst registerPromiseAbort = (basePromise, abort) => {\n promiseAbortMap.set(basePromise, abort);\n};\n\nconst hasInitialValue = (atom) => \"init\" in atom;\nconst READ_ATOM = \"r\";\nconst WRITE_ATOM = \"w\";\nconst COMMIT_ATOM = \"c\";\nconst SUBSCRIBE_ATOM = \"s\";\nconst RESTORE_ATOMS = \"h\";\nconst DEV_SUBSCRIBE_STATE = \"n\";\nconst DEV_GET_MOUNTED_ATOMS = \"l\";\nconst DEV_GET_ATOM_STATE = \"a\";\nconst DEV_GET_MOUNTED = \"m\";\nconst createStore = (initialValues) => {\n const committedAtomStateMap = /* @__PURE__ */ new WeakMap();\n const mountedMap = /* @__PURE__ */ new WeakMap();\n const pendingMap = /* @__PURE__ */ new Map();\n let stateListeners;\n let mountedAtoms;\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n stateListeners = /* @__PURE__ */ new Set();\n mountedAtoms = /* @__PURE__ */ new Set();\n }\n if (initialValues) {\n for (const [atom, value] of initialValues) {\n const atomState = {\n v: value,\n r: 0,\n y: true,\n // not invalidated\n d: /* @__PURE__ */ new Map()\n };\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n Object.freeze(atomState);\n if (!hasInitialValue(atom)) {\n console.warn(\n \"Found initial value for derived atom which can cause unexpected behavior\",\n atom\n );\n }\n }\n committedAtomStateMap.set(atom, atomState);\n }\n }\n const suspensePromiseCacheMap = /* @__PURE__ */ new WeakMap();\n const addSuspensePromiseToCache = (version, atom, suspensePromise) => {\n let cache = suspensePromiseCacheMap.get(atom);\n if (!cache) {\n cache = /* @__PURE__ */ new Map();\n suspensePromiseCacheMap.set(atom, cache);\n }\n suspensePromise.then(() => {\n if (cache.get(version) === suspensePromise) {\n cache.delete(version);\n if (!cache.size) {\n suspensePromiseCacheMap.delete(atom);\n }\n }\n });\n cache.set(version, suspensePromise);\n };\n const cancelAllSuspensePromiseInCache = (atom) => {\n const versionSet = /* @__PURE__ */ new Set();\n const cache = suspensePromiseCacheMap.get(atom);\n if (cache) {\n suspensePromiseCacheMap.delete(atom);\n cache.forEach((suspensePromise, version) => {\n cancelSuspensePromise(suspensePromise);\n versionSet.add(version);\n });\n }\n return versionSet;\n };\n const versionedAtomStateMapMap = /* @__PURE__ */ new WeakMap();\n const getVersionedAtomStateMap = (version) => {\n let versionedAtomStateMap = versionedAtomStateMapMap.get(version);\n if (!versionedAtomStateMap) {\n versionedAtomStateMap = /* @__PURE__ */ new Map();\n versionedAtomStateMapMap.set(version, versionedAtomStateMap);\n }\n return versionedAtomStateMap;\n };\n const getAtomState = (version, atom) => {\n if (version) {\n const versionedAtomStateMap = getVersionedAtomStateMap(version);\n let atomState = versionedAtomStateMap.get(atom);\n if (!atomState) {\n atomState = getAtomState(version.p, atom);\n if (atomState && \"p\" in atomState && isSuspensePromiseAlreadyCancelled(atomState.p)) {\n atomState = void 0;\n }\n if (atomState) {\n versionedAtomStateMap.set(atom, atomState);\n }\n }\n return atomState;\n }\n return committedAtomStateMap.get(atom);\n };\n const setAtomState = (version, atom, atomState) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n Object.freeze(atomState);\n }\n if (version) {\n const versionedAtomStateMap = getVersionedAtomStateMap(version);\n versionedAtomStateMap.set(atom, atomState);\n } else {\n const prevAtomState = committedAtomStateMap.get(atom);\n committedAtomStateMap.set(atom, atomState);\n if (!pendingMap.has(atom)) {\n pendingMap.set(atom, prevAtomState);\n }\n }\n };\n const createReadDependencies = (version, prevReadDependencies = /* @__PURE__ */ new Map(), dependencies) => {\n if (!dependencies) {\n return prevReadDependencies;\n }\n const readDependencies = /* @__PURE__ */ new Map();\n let changed = false;\n dependencies.forEach((atom) => {\n var _a;\n const revision = ((_a = getAtomState(version, atom)) == null ? void 0 : _a.r) || 0;\n readDependencies.set(atom, revision);\n if (prevReadDependencies.get(atom) !== revision) {\n changed = true;\n }\n });\n if (prevReadDependencies.size === readDependencies.size && !changed) {\n return prevReadDependencies;\n }\n return readDependencies;\n };\n const setAtomValue = (version, atom, value, dependencies, suspensePromise) => {\n const atomState = getAtomState(version, atom);\n if (atomState) {\n if (suspensePromise && (!(\"p\" in atomState) || !isEqualSuspensePromise(atomState.p, suspensePromise))) {\n return atomState;\n }\n if (\"p\" in atomState) {\n cancelSuspensePromise(atomState.p);\n }\n }\n const nextAtomState = {\n v: value,\n r: (atomState == null ? void 0 : atomState.r) || 0,\n y: true,\n // not invalidated\n d: createReadDependencies(version, atomState == null ? void 0 : atomState.d, dependencies)\n };\n let changed = !(atomState == null ? void 0 : atomState.y);\n if (!atomState || !(\"v\" in atomState) || // new value, or\n !Object.is(atomState.v, value)) {\n changed = true;\n ++nextAtomState.r;\n if (nextAtomState.d.has(atom)) {\n nextAtomState.d = new Map(nextAtomState.d).set(atom, nextAtomState.r);\n }\n } else if (nextAtomState.d !== atomState.d && (nextAtomState.d.size !== atomState.d.size || !Array.from(nextAtomState.d.keys()).every((a) => atomState.d.has(a)))) {\n changed = true;\n Promise.resolve().then(() => {\n flushPending(version);\n });\n }\n if (atomState && !changed) {\n return atomState;\n }\n setAtomState(version, atom, nextAtomState);\n return nextAtomState;\n };\n const setAtomReadError = (version, atom, error, dependencies, suspensePromise) => {\n const atomState = getAtomState(version, atom);\n if (atomState) {\n if (suspensePromise && (!(\"p\" in atomState) || !isEqualSuspensePromise(atomState.p, suspensePromise))) {\n return atomState;\n }\n if (\"p\" in atomState) {\n cancelSuspensePromise(atomState.p);\n }\n }\n const nextAtomState = {\n e: error,\n // set read error\n r: ((atomState == null ? void 0 : atomState.r) || 0) + 1,\n y: true,\n // not invalidated\n d: createReadDependencies(version, atomState == null ? void 0 : atomState.d, dependencies)\n };\n setAtomState(version, atom, nextAtomState);\n return nextAtomState;\n };\n const setAtomSuspensePromise = (version, atom, suspensePromise, dependencies) => {\n const atomState = getAtomState(version, atom);\n if (atomState && \"p\" in atomState) {\n if (isEqualSuspensePromise(atomState.p, suspensePromise) && !isSuspensePromiseAlreadyCancelled(atomState.p)) {\n if (!atomState.y) {\n return { ...atomState, y: true };\n }\n return atomState;\n }\n cancelSuspensePromise(atomState.p);\n }\n addSuspensePromiseToCache(version, atom, suspensePromise);\n const nextAtomState = {\n p: suspensePromise,\n r: ((atomState == null ? void 0 : atomState.r) || 0) + 1,\n y: true,\n // not invalidated\n d: createReadDependencies(version, atomState == null ? void 0 : atomState.d, dependencies)\n };\n setAtomState(version, atom, nextAtomState);\n return nextAtomState;\n };\n const setAtomPromiseOrValue = (version, atom, promiseOrValue, dependencies) => {\n if (promiseOrValue instanceof Promise) {\n const suspensePromise = createSuspensePromise(\n promiseOrValue,\n promiseOrValue.then((value) => {\n setAtomValue(version, atom, value, dependencies, suspensePromise);\n }).catch((e) => {\n if (e instanceof Promise) {\n if (isSuspensePromise(e)) {\n return e.then(() => {\n readAtomState(version, atom, true);\n });\n }\n return e;\n }\n setAtomReadError(version, atom, e, dependencies, suspensePromise);\n })\n );\n return setAtomSuspensePromise(\n version,\n atom,\n suspensePromise,\n dependencies\n );\n }\n return setAtomValue(\n version,\n atom,\n promiseOrValue,\n dependencies\n );\n };\n const setAtomInvalidated = (version, atom) => {\n const atomState = getAtomState(version, atom);\n if (atomState) {\n const nextAtomState = {\n ...atomState,\n // copy everything\n y: false\n // invalidated\n };\n setAtomState(version, atom, nextAtomState);\n } else if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\"[Bug] could not invalidate non existing atom\", atom);\n }\n };\n const readAtomState = (version, atom, force) => {\n if (!force) {\n const atomState = getAtomState(version, atom);\n if (atomState) {\n if (atomState.y && // not invalidated\n \"p\" in atomState && !isSuspensePromiseAlreadyCancelled(atomState.p)) {\n return atomState;\n }\n atomState.d.forEach((_, a) => {\n if (a !== atom) {\n if (!mountedMap.has(a)) {\n readAtomState(version, a);\n } else {\n const aState = getAtomState(version, a);\n if (aState && !aState.y) {\n readAtomState(version, a);\n }\n }\n }\n });\n if (Array.from(atomState.d).every(([a, r]) => {\n const aState = getAtomState(version, a);\n return aState && !(\"p\" in aState) && // has no suspense promise\n aState.r === r;\n })) {\n if (!atomState.y) {\n return { ...atomState, y: true };\n }\n return atomState;\n }\n }\n }\n const dependencies = /* @__PURE__ */ new Set();\n try {\n const promiseOrValue = atom.read((a) => {\n dependencies.add(a);\n const aState = a === atom ? getAtomState(version, a) : readAtomState(version, a);\n if (aState) {\n if (\"e\" in aState) {\n throw aState.e;\n }\n if (\"p\" in aState) {\n throw aState.p;\n }\n return aState.v;\n }\n if (hasInitialValue(a)) {\n return a.init;\n }\n throw new Error(\"no atom init\");\n });\n return setAtomPromiseOrValue(version, atom, promiseOrValue, dependencies);\n } catch (errorOrPromise) {\n if (errorOrPromise instanceof Promise) {\n const suspensePromise = isSuspensePromise(errorOrPromise) && isSuspensePromiseAlreadyCancelled(errorOrPromise) ? copySuspensePromise(errorOrPromise) : createSuspensePromise(errorOrPromise, errorOrPromise);\n return setAtomSuspensePromise(\n version,\n atom,\n suspensePromise,\n dependencies\n );\n }\n return setAtomReadError(version, atom, errorOrPromise, dependencies);\n }\n };\n const readAtom = (readingAtom, version) => {\n const atomState = readAtomState(version, readingAtom);\n return atomState;\n };\n const addAtom = (version, addingAtom) => {\n let mounted = mountedMap.get(addingAtom);\n if (!mounted) {\n mounted = mountAtom(version, addingAtom);\n }\n return mounted;\n };\n const canUnmountAtom = (atom, mounted) => !mounted.l.size && (!mounted.t.size || mounted.t.size === 1 && mounted.t.has(atom));\n const delAtom = (version, deletingAtom) => {\n const mounted = mountedMap.get(deletingAtom);\n if (mounted && canUnmountAtom(deletingAtom, mounted)) {\n unmountAtom(version, deletingAtom);\n }\n };\n const invalidateDependents = (version, atom) => {\n const mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.t.forEach((dependent) => {\n if (dependent !== atom) {\n setAtomInvalidated(version, dependent);\n invalidateDependents(version, dependent);\n }\n });\n };\n const writeAtomState = (version, atom, update) => {\n let isSync = true;\n const writeGetter = (a, options) => {\n const aState = readAtomState(version, a);\n if (\"e\" in aState) {\n throw aState.e;\n }\n if (\"p\" in aState) {\n if (options == null ? void 0 : options.unstable_promise) {\n return aState.p.then(() => {\n const s = getAtomState(version, a);\n if (s && \"p\" in s && s.p === aState.p) {\n return new Promise((resolve) => setTimeout(resolve)).then(\n () => writeGetter(a, options)\n );\n }\n return writeGetter(a, options);\n });\n }\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.info(\n \"Reading pending atom state in write operation. We throw a promise for now.\",\n a\n );\n }\n throw aState.p;\n }\n if (\"v\" in aState) {\n return aState.v;\n }\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\n \"[Bug] no value found while reading atom in write operation. This is probably a bug.\",\n a\n );\n }\n throw new Error(\"no value found\");\n };\n const setter = (a, v) => {\n let promiseOrVoid2;\n if (a === atom) {\n if (!hasInitialValue(a)) {\n throw new Error(\"atom not writable\");\n }\n const versionSet = cancelAllSuspensePromiseInCache(a);\n versionSet.forEach((cancelledVersion) => {\n if (cancelledVersion !== version) {\n setAtomPromiseOrValue(cancelledVersion, a, v);\n }\n });\n const prevAtomState = getAtomState(version, a);\n const nextAtomState = setAtomPromiseOrValue(version, a, v);\n if (prevAtomState !== nextAtomState) {\n invalidateDependents(version, a);\n }\n } else {\n promiseOrVoid2 = writeAtomState(version, a, v);\n }\n if (!isSync) {\n flushPending(version);\n }\n return promiseOrVoid2;\n };\n const promiseOrVoid = atom.write(writeGetter, setter, update);\n isSync = false;\n return promiseOrVoid;\n };\n const writeAtom = (writingAtom, update, version) => {\n const promiseOrVoid = writeAtomState(version, writingAtom, update);\n flushPending(version);\n return promiseOrVoid;\n };\n const isActuallyWritableAtom = (atom) => !!atom.write;\n const mountAtom = (version, atom, initialDependent) => {\n const mounted = {\n t: new Set(initialDependent && [initialDependent]),\n l: /* @__PURE__ */ new Set()\n };\n mountedMap.set(atom, mounted);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n mountedAtoms.add(atom);\n }\n const atomState = readAtomState(void 0, atom);\n atomState.d.forEach((_, a) => {\n const aMounted = mountedMap.get(a);\n if (aMounted) {\n aMounted.t.add(atom);\n } else {\n if (a !== atom) {\n mountAtom(version, a, atom);\n }\n }\n });\n if (isActuallyWritableAtom(atom) && atom.onMount) {\n const setAtom = (update) => writeAtom(atom, update, version);\n const onUnmount = atom.onMount(setAtom);\n version = void 0;\n if (onUnmount) {\n mounted.u = onUnmount;\n }\n }\n return mounted;\n };\n const unmountAtom = (version, atom) => {\n var _a;\n const onUnmount = (_a = mountedMap.get(atom)) == null ? void 0 : _a.u;\n if (onUnmount) {\n onUnmount();\n }\n mountedMap.delete(atom);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n mountedAtoms.delete(atom);\n }\n const atomState = getAtomState(version, atom);\n if (atomState) {\n if (\"p\" in atomState) {\n cancelSuspensePromise(atomState.p);\n }\n atomState.d.forEach((_, a) => {\n if (a !== atom) {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(version, a);\n }\n }\n }\n });\n } else if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\"[Bug] could not find atom state to unmount\", atom);\n }\n };\n const mountDependencies = (version, atom, atomState, prevReadDependencies) => {\n const dependencies = new Set(atomState.d.keys());\n prevReadDependencies == null ? void 0 : prevReadDependencies.forEach((_, a) => {\n if (dependencies.has(a)) {\n dependencies.delete(a);\n return;\n }\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(version, a);\n }\n }\n });\n dependencies.forEach((a) => {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.add(atom);\n } else if (mountedMap.has(atom)) {\n mountAtom(version, a, atom);\n }\n });\n };\n const flushPending = (version) => {\n if (version) {\n const versionedAtomStateMap = getVersionedAtomStateMap(version);\n versionedAtomStateMap.forEach((atomState, atom) => {\n const committedAtomState = committedAtomStateMap.get(atom);\n if (atomState !== committedAtomState) {\n const mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.l.forEach((listener) => listener(version));\n }\n });\n return;\n }\n while (pendingMap.size) {\n const pending = Array.from(pendingMap);\n pendingMap.clear();\n pending.forEach(([atom, prevAtomState]) => {\n const atomState = getAtomState(void 0, atom);\n if (atomState && atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(void 0, atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n if (prevAtomState && !prevAtomState.y && // invalidated\n (atomState == null ? void 0 : atomState.y)) {\n return;\n }\n const mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.l.forEach((listener) => listener());\n });\n }\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n stateListeners.forEach((l) => l());\n }\n };\n const commitVersionedAtomStateMap = (version) => {\n const versionedAtomStateMap = getVersionedAtomStateMap(version);\n versionedAtomStateMap.forEach((atomState, atom) => {\n const prevAtomState = committedAtomStateMap.get(atom);\n if (!prevAtomState || atomState.r > prevAtomState.r || atomState.y !== prevAtomState.y || atomState.r === prevAtomState.r && atomState.d !== prevAtomState.d) {\n committedAtomStateMap.set(atom, atomState);\n if (atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(version, atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n }\n });\n };\n const commitAtom = (_atom, version) => {\n if (version) {\n commitVersionedAtomStateMap(version);\n }\n flushPending(void 0);\n };\n const subscribeAtom = (atom, callback, version) => {\n const mounted = addAtom(version, atom);\n const listeners = mounted.l;\n listeners.add(callback);\n return () => {\n listeners.delete(callback);\n delAtom(version, atom);\n };\n };\n const restoreAtoms = (values, version) => {\n for (const [atom, value] of values) {\n if (hasInitialValue(atom)) {\n setAtomPromiseOrValue(version, atom, value);\n invalidateDependents(version, atom);\n }\n }\n flushPending(version);\n };\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n return {\n [READ_ATOM]: readAtom,\n [WRITE_ATOM]: writeAtom,\n [COMMIT_ATOM]: commitAtom,\n [SUBSCRIBE_ATOM]: subscribeAtom,\n [RESTORE_ATOMS]: restoreAtoms,\n [DEV_SUBSCRIBE_STATE]: (l) => {\n stateListeners.add(l);\n return () => {\n stateListeners.delete(l);\n };\n },\n [DEV_GET_MOUNTED_ATOMS]: () => mountedAtoms.values(),\n [DEV_GET_ATOM_STATE]: (a) => committedAtomStateMap.get(a),\n [DEV_GET_MOUNTED]: (a) => mountedMap.get(a)\n };\n }\n return {\n [READ_ATOM]: readAtom,\n [WRITE_ATOM]: writeAtom,\n [COMMIT_ATOM]: commitAtom,\n [SUBSCRIBE_ATOM]: subscribeAtom,\n [RESTORE_ATOMS]: restoreAtoms\n };\n};\nconst createStoreForExport = (initialValues) => {\n const store = createStore(initialValues);\n const get = (atom) => {\n const atomState = store[READ_ATOM](atom);\n if (\"e\" in atomState) {\n throw atomState.e;\n }\n if (\"p\" in atomState) {\n return void 0;\n }\n return atomState.v;\n };\n const asyncGet = (atom) => new Promise((resolve, reject) => {\n const atomState = store[READ_ATOM](atom);\n if (\"e\" in atomState) {\n reject(atomState.e);\n } else if (\"p\" in atomState) {\n resolve(atomState.p.then(() => asyncGet(atom)));\n } else {\n resolve(atomState.v);\n }\n });\n const set = (atom, update) => store[WRITE_ATOM](atom, update);\n const sub = (atom, callback) => store[SUBSCRIBE_ATOM](atom, callback);\n return {\n get,\n asyncGet,\n set,\n sub,\n SECRET_INTERNAL_store: store\n };\n};\n\nconst createScopeContainer = (initialValues, unstable_createStore) => {\n const store = unstable_createStore ? unstable_createStore(initialValues).SECRET_INTERNAL_store : createStore(initialValues);\n return { s: store };\n};\nconst ScopeContextMap = /* @__PURE__ */ new Map();\nconst getScopeContext = (scope) => {\n if (!ScopeContextMap.has(scope)) {\n ScopeContextMap.set(scope, createContext(createScopeContainer()));\n }\n return ScopeContextMap.get(scope);\n};\n\nconst Provider = ({\n children,\n initialValues,\n scope,\n unstable_createStore,\n unstable_enableVersionedWrite\n}) => {\n const [version, setVersion] = useState({});\n useEffect(() => {\n const scopeContainer = scopeContainerRef.current;\n if (scopeContainer.w) {\n scopeContainer.s[COMMIT_ATOM](null, version);\n delete version.p;\n scopeContainer.v = version;\n }\n }, [version]);\n const scopeContainerRef = useRef();\n if (!scopeContainerRef.current) {\n const scopeContainer = createScopeContainer(\n initialValues,\n unstable_createStore\n );\n if (unstable_enableVersionedWrite) {\n let retrying = 0;\n scopeContainer.w = (write) => {\n setVersion((parentVersion) => {\n const nextVersion = retrying ? parentVersion : { p: parentVersion };\n write(nextVersion);\n return nextVersion;\n });\n };\n scopeContainer.v = version;\n scopeContainer.r = (fn) => {\n ++retrying;\n fn();\n --retrying;\n };\n }\n scopeContainerRef.current = scopeContainer;\n }\n const ScopeContainerContext = getScopeContext(scope);\n return createElement(\n ScopeContainerContext.Provider,\n {\n value: scopeContainerRef.current\n },\n children\n );\n};\n\nfunction atom(read, write) {\n return atom$1(read, write);\n}\n\nfunction useAtomValue(atom, scope) {\n const ScopeContext = getScopeContext(scope);\n const scopeContainer = useContext(ScopeContext);\n const { s: store, v: versionFromProvider } = scopeContainer;\n const getAtomValue = (version2) => {\n const atomState = store[READ_ATOM](atom, version2);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && !atomState.y) {\n throw new Error(\"should not be invalidated\");\n }\n if (\"e\" in atomState) {\n throw atomState.e;\n }\n if (\"p\" in atomState) {\n throw atomState.p;\n }\n if (\"v\" in atomState) {\n return atomState.v;\n }\n throw new Error(\"no atom value\");\n };\n const [[version, valueFromReducer, atomFromReducer], rerenderIfChanged] = useReducer(\n (prev, nextVersion) => {\n const nextValue = getAtomValue(nextVersion);\n if (Object.is(prev[1], nextValue) && prev[2] === atom) {\n return prev;\n }\n return [nextVersion, nextValue, atom];\n },\n versionFromProvider,\n (initialVersion) => {\n const initialValue = getAtomValue(initialVersion);\n return [initialVersion, initialValue, atom];\n }\n );\n let value = valueFromReducer;\n if (atomFromReducer !== atom) {\n rerenderIfChanged(version);\n value = getAtomValue(version);\n }\n useEffect(() => {\n const { v: versionFromProvider2 } = scopeContainer;\n if (versionFromProvider2) {\n store[COMMIT_ATOM](atom, versionFromProvider2);\n }\n const unsubscribe = store[SUBSCRIBE_ATOM](\n atom,\n rerenderIfChanged,\n versionFromProvider2\n );\n rerenderIfChanged(versionFromProvider2);\n return unsubscribe;\n }, [store, atom, scopeContainer]);\n useEffect(() => {\n store[COMMIT_ATOM](atom, version);\n });\n useDebugValue(value);\n return value;\n}\n\nfunction useSetAtom(atom, scope) {\n const ScopeContext = getScopeContext(scope);\n const { s: store, w: versionedWrite } = useContext(ScopeContext);\n const setAtom = useCallback(\n (update) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && !(\"write\" in atom)) {\n throw new Error(\"not writable atom\");\n }\n const write = (version) => store[WRITE_ATOM](atom, update, version);\n return versionedWrite ? versionedWrite(write) : write();\n },\n [store, versionedWrite, atom]\n );\n return setAtom;\n}\n\nfunction useAtom(atom, scope) {\n if (\"scope\" in atom) {\n console.warn(\n \"atom.scope is deprecated. Please do useAtom(atom, scope) instead.\"\n );\n scope = atom.scope;\n }\n return [\n useAtomValue(atom, scope),\n // We do wrong type assertion here, which results in throwing an error.\n useSetAtom(atom, scope)\n ];\n}\n\nexport { Provider, getScopeContext as SECRET_INTERNAL_getScopeContext, registerPromiseAbort as SECRET_INTERNAL_registerPromiseAbort, atom, createStoreForExport as unstable_createStore, useAtom, useAtomValue, useSetAtom };\n"],"names":["SUSPENSE_PROMISE","isSuspensePromise","promise","isSuspensePromiseAlreadyCancelled","suspensePromise","cancelSuspensePromise","_a","basePromise","cancelPromise","promiseAbortMap","isEqualSuspensePromise","oldSuspensePromise","newSuspensePromise","oldOriginalPromise","newOriginalPromise","createSuspensePromise","suspensePromiseExtra","resolve","copySuspensePromise","hasInitialValue","atom","READ_ATOM","WRITE_ATOM","COMMIT_ATOM","SUBSCRIBE_ATOM","RESTORE_ATOMS","DEV_SUBSCRIBE_STATE","DEV_GET_MOUNTED_ATOMS","DEV_GET_ATOM_STATE","DEV_GET_MOUNTED","createStore","initialValues","committedAtomStateMap","mountedMap","pendingMap","stateListeners","mountedAtoms","value","atomState","suspensePromiseCacheMap","addSuspensePromiseToCache","version","cache","cancelAllSuspensePromiseInCache","versionSet","versionedAtomStateMapMap","getVersionedAtomStateMap","versionedAtomStateMap","getAtomState","setAtomState","prevAtomState","createReadDependencies","prevReadDependencies","dependencies","readDependencies","changed","revision","setAtomValue","nextAtomState","a","flushPending","setAtomReadError","error","setAtomSuspensePromise","setAtomPromiseOrValue","promiseOrValue","e","readAtomState","setAtomInvalidated","force","_","aState","r","errorOrPromise","readAtom","readingAtom","addAtom","addingAtom","mounted","mountAtom","canUnmountAtom","delAtom","deletingAtom","unmountAtom","invalidateDependents","dependent","writeAtomState","update","isSync","writeGetter","options","s","setter","v","promiseOrVoid2","cancelledVersion","promiseOrVoid","writeAtom","writingAtom","isActuallyWritableAtom","initialDependent","aMounted","setAtom","onUnmount","mountDependencies","committedAtomState","listener","pending","l","commitVersionedAtomStateMap","commitAtom","_atom","subscribeAtom","callback","listeners","restoreAtoms","values","createScopeContainer","unstable_createStore","ScopeContextMap","getScopeContext","scope","createContext","Provider","children","unstable_enableVersionedWrite","setVersion","useState","useEffect","scopeContainer","scopeContainerRef","useRef","retrying","write","parentVersion","nextVersion","fn","ScopeContainerContext","createElement","read","atom$1","useAtomValue","ScopeContext","useContext","store","versionFromProvider","getAtomValue","version2","valueFromReducer","atomFromReducer","rerenderIfChanged","useReducer","prev","nextValue","initialVersion","initialValue","versionFromProvider2","unsubscribe","useDebugValue","useSetAtom","versionedWrite","useCallback","useAtom"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vanilla.es.js","sources":["../../../../node_modules/jotai/esm/vanilla.mjs"],"sourcesContent":["let keyCount = 0;\nfunction atom(read, write) {\n const key = `atom${++keyCount}`;\n const config = {\n toString: () => key\n };\n if (typeof read === \"function\") {\n config.read = read;\n } else {\n config.init = read;\n config.read = (get) => get(config);\n config.write = (get, set, arg) => set(\n config,\n typeof arg === \"function\" ? arg(get(config)) : arg\n );\n }\n if (write) {\n config.write = write;\n }\n return config;\n}\n\nconst hasInitialValue = (atom) => \"init\" in atom;\nconst isActuallyWritableAtom = (atom) => !!atom.write;\nconst cancelPromiseMap = /* @__PURE__ */ new WeakMap();\nconst registerCancelPromise = (promise, cancel) => {\n cancelPromiseMap.set(promise, cancel);\n promise.catch(() => {\n }).finally(() => cancelPromiseMap.delete(promise));\n};\nconst cancelPromise = (promise, next) => {\n const cancel = cancelPromiseMap.get(promise);\n if (cancel) {\n cancelPromiseMap.delete(promise);\n cancel(next);\n }\n};\nconst isEqualAtomValue = (a, b) => \"v\" in a && \"v\" in b && Object.is(a.v, b.v);\nconst isEqualAtomError = (a, b) => \"e\" in a && \"e\" in b && Object.is(a.e, b.e);\nconst hasPromiseAtomValue = (a) => \"v\" in a && a.v instanceof Promise;\nconst returnAtomValue = (atomState) => {\n if (\"e\" in atomState) {\n throw atomState.e;\n }\n return atomState.v;\n};\nconst createStore = () => {\n const atomStateMap = /* @__PURE__ */ new WeakMap();\n const mountedMap = /* @__PURE__ */ new WeakMap();\n const pendingMap = /* @__PURE__ */ new Map();\n let stateListeners;\n let mountedAtoms;\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n stateListeners = /* @__PURE__ */ new Set();\n mountedAtoms = /* @__PURE__ */ new Set();\n }\n const getAtomState = (atom) => atomStateMap.get(atom);\n const setAtomState = (atom, atomState) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n Object.freeze(atomState);\n }\n const prevAtomState = atomStateMap.get(atom);\n atomStateMap.set(atom, atomState);\n if (!pendingMap.has(atom)) {\n pendingMap.set(atom, prevAtomState);\n }\n if (prevAtomState && hasPromiseAtomValue(prevAtomState)) {\n const next = \"v\" in atomState ? atomState.v instanceof Promise ? atomState.v : Promise.resolve(atomState.v) : Promise.reject(atomState.e);\n cancelPromise(prevAtomState.v, next);\n }\n };\n const updateDependencies = (atom, nextAtomState, depSet) => {\n const dependencies = /* @__PURE__ */ new Map();\n let changed = false;\n depSet.forEach((a) => {\n const aState = a === atom ? nextAtomState : getAtomState(a);\n if (aState) {\n dependencies.set(a, aState);\n if (nextAtomState.d.get(a) !== aState) {\n changed = true;\n }\n } else if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\"[Bug] atom state not found\");\n }\n });\n if (changed || nextAtomState.d.size !== dependencies.size) {\n nextAtomState.d = dependencies;\n }\n };\n const setAtomValue = (atom, value, depSet) => {\n const prevAtomState = getAtomState(atom);\n const nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || /* @__PURE__ */ new Map(),\n v: value\n };\n if (depSet) {\n updateDependencies(atom, nextAtomState, depSet);\n }\n if (prevAtomState && isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n const setAtomError = (atom, error, depSet) => {\n const prevAtomState = getAtomState(atom);\n const nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || /* @__PURE__ */ new Map(),\n e: error\n };\n if (depSet) {\n updateDependencies(atom, nextAtomState, depSet);\n }\n if (prevAtomState && isEqualAtomError(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n const readAtomState = (atom) => {\n const atomState = getAtomState(atom);\n if (atomState) {\n atomState.d.forEach((_, a) => {\n if (a !== atom && !mountedMap.has(a)) {\n readAtomState(a);\n }\n });\n if (Array.from(atomState.d).every(\n ([a, s]) => a === atom || getAtomState(a) === s\n )) {\n return atomState;\n }\n }\n const depSet = /* @__PURE__ */ new Set();\n let isSync = true;\n const getter = (a) => {\n depSet.add(a);\n if (a === atom) {\n const aState2 = getAtomState(a);\n if (aState2) {\n return returnAtomValue(aState2);\n }\n if (hasInitialValue(a)) {\n return a.init;\n }\n throw new Error(\"no atom init\");\n }\n const aState = readAtomState(a);\n return returnAtomValue(aState);\n };\n let controller;\n let setSelf;\n const options = {\n get signal() {\n if (!controller) {\n controller = new AbortController();\n }\n return controller.signal;\n },\n get setSelf() {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && !isActuallyWritableAtom(atom)) {\n console.warn(\"setSelf function cannot be used with read-only atom\");\n }\n if (!setSelf && isActuallyWritableAtom(atom)) {\n setSelf = (...args) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && isSync) {\n console.warn(\"setSelf function cannot be called in sync\");\n }\n if (!isSync) {\n return writeAtom(atom, ...args);\n }\n };\n }\n return setSelf;\n }\n };\n try {\n const value = atom.read(getter, options);\n if (value instanceof Promise) {\n let continuePromise;\n const promise = new Promise((resolve, reject) => {\n value.then(\n (v) => {\n promise.status = \"fulfilled\";\n promise.value = v;\n resolve(v);\n },\n (e) => {\n promise.status = \"rejected\";\n promise.reason = e;\n reject(e);\n }\n ).finally(() => {\n setAtomValue(atom, promise, depSet);\n });\n continuePromise = (next) => resolve(next);\n });\n promise.status = \"pending\";\n registerCancelPromise(promise, (next) => {\n if (next) {\n continuePromise(next);\n }\n controller == null ? void 0 : controller.abort();\n });\n return setAtomValue(atom, promise, depSet);\n }\n return setAtomValue(atom, value, depSet);\n } catch (error) {\n return setAtomError(atom, error, depSet);\n } finally {\n isSync = false;\n }\n };\n const readAtom = (atom) => returnAtomValue(readAtomState(atom));\n const addAtom = (atom) => {\n let mounted = mountedMap.get(atom);\n if (!mounted) {\n mounted = mountAtom(atom);\n }\n return mounted;\n };\n const canUnmountAtom = (atom, mounted) => !mounted.l.size && (!mounted.t.size || mounted.t.size === 1 && mounted.t.has(atom));\n const delAtom = (atom) => {\n const mounted = mountedMap.get(atom);\n if (mounted && canUnmountAtom(atom, mounted)) {\n unmountAtom(atom);\n }\n };\n const recomputeDependents = (atom) => {\n const mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.t.forEach((dependent) => {\n if (dependent !== atom) {\n const prevAtomState = getAtomState(dependent);\n const nextAtomState = readAtomState(dependent);\n if (!prevAtomState || !isEqualAtomValue(prevAtomState, nextAtomState)) {\n recomputeDependents(dependent);\n }\n }\n });\n };\n const writeAtomState = (atom, ...args) => {\n let isSync = true;\n const getter = (a) => returnAtomValue(readAtomState(a));\n const setter = (a, ...args2) => {\n let r;\n if (a === atom) {\n if (!hasInitialValue(a)) {\n throw new Error(\"atom not writable\");\n }\n const prevAtomState = getAtomState(a);\n const nextAtomState = setAtomValue(a, args2[0]);\n if (!prevAtomState || !isEqualAtomValue(prevAtomState, nextAtomState)) {\n recomputeDependents(a);\n }\n } else {\n r = writeAtomState(a, ...args2);\n }\n if (!isSync) {\n flushPending();\n }\n return r;\n };\n const result = atom.write(getter, setter, ...args);\n isSync = false;\n return result;\n };\n const writeAtom = (atom, ...args) => {\n const result = writeAtomState(atom, ...args);\n flushPending();\n return result;\n };\n const mountAtom = (atom, initialDependent) => {\n const mounted = {\n t: new Set(initialDependent && [initialDependent]),\n l: /* @__PURE__ */ new Set()\n };\n mountedMap.set(atom, mounted);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n mountedAtoms.add(atom);\n }\n readAtomState(atom).d.forEach((_, a) => {\n const aMounted = mountedMap.get(a);\n if (aMounted) {\n aMounted.t.add(atom);\n } else {\n if (a !== atom) {\n mountAtom(a, atom);\n }\n }\n });\n readAtomState(atom);\n if (isActuallyWritableAtom(atom) && atom.onMount) {\n const onUnmount = atom.onMount((...args) => writeAtom(atom, ...args));\n if (onUnmount) {\n mounted.u = onUnmount;\n }\n }\n return mounted;\n };\n const unmountAtom = (atom) => {\n var _a;\n const onUnmount = (_a = mountedMap.get(atom)) == null ? void 0 : _a.u;\n if (onUnmount) {\n onUnmount();\n }\n mountedMap.delete(atom);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n mountedAtoms.delete(atom);\n }\n const atomState = getAtomState(atom);\n if (atomState) {\n if (hasPromiseAtomValue(atomState)) {\n cancelPromise(atomState.v);\n }\n atomState.d.forEach((_, a) => {\n if (a !== atom) {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n }\n });\n } else if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\"[Bug] could not find atom state to unmount\", atom);\n }\n };\n const mountDependencies = (atom, atomState, prevDependencies) => {\n const depSet = new Set(atomState.d.keys());\n prevDependencies == null ? void 0 : prevDependencies.forEach((_, a) => {\n if (depSet.has(a)) {\n depSet.delete(a);\n return;\n }\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n });\n depSet.forEach((a) => {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.add(atom);\n } else if (mountedMap.has(atom)) {\n mountAtom(a, atom);\n }\n });\n };\n const flushPending = () => {\n while (pendingMap.size) {\n const pending = Array.from(pendingMap);\n pendingMap.clear();\n pending.forEach(([atom, prevAtomState]) => {\n const atomState = getAtomState(atom);\n if (atomState) {\n if (atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n const mounted = mountedMap.get(atom);\n if (mounted && !(prevAtomState && !hasPromiseAtomValue(prevAtomState) && (isEqualAtomValue(prevAtomState, atomState) || isEqualAtomError(prevAtomState, atomState)))) {\n mounted.l.forEach((listener) => listener());\n }\n } else if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\"[Bug] no atom state to flush\");\n }\n });\n }\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n stateListeners.forEach((l) => l());\n }\n };\n const subscribeAtom = (atom, listener) => {\n const mounted = addAtom(atom);\n flushPending();\n const listeners = mounted.l;\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n delAtom(atom);\n };\n };\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom,\n dev_subscribe_state: (l) => {\n stateListeners.add(l);\n return () => {\n stateListeners.delete(l);\n };\n },\n dev_get_mounted_atoms: () => mountedAtoms.values(),\n dev_get_atom_state: (a) => atomStateMap.get(a),\n dev_get_mounted: (a) => mountedMap.get(a),\n dev_restore_atoms: (values) => {\n for (const [atom, value] of values) {\n if (hasInitialValue(atom)) {\n setAtomValue(atom, value);\n recomputeDependents(atom);\n }\n }\n flushPending();\n }\n };\n }\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom\n };\n};\nlet defaultStore;\nconst getDefaultStore = () => {\n if (!defaultStore) {\n defaultStore = createStore();\n }\n return defaultStore;\n};\n\nexport { atom, createStore, getDefaultStore };\n"],"names":["keyCount","atom","read","write","key","config","get","set","arg"],"mappings":"AAAA,IAAIA,IAAW;AACf,SAASC,EAAKC,GAAMC,GAAO;AACzB,QAAMC,IAAM,OAAO,EAAEJ,KACfK,IAAS;AAAA,IACb,UAAU,MAAMD;AAAA,EACpB;AACE,SAAI,OAAOF,KAAS,aAClBG,EAAO,OAAOH,KAEdG,EAAO,OAAOH,GACdG,EAAO,OAAO,CAACC,MAAQA,EAAID,CAAM,GACjCA,EAAO,QAAQ,CAACC,GAAKC,GAAKC,MAAQD;AAAA,IAChCF;AAAA,IACA,OAAOG,KAAQ,aAAaA,EAAIF,EAAID,CAAM,CAAC,IAAIG;AAAA,EACrD,IAEML,MACFE,EAAO,QAAQF,IAEVE;AACT;"}
|
|
1
|
+
{"version":3,"file":"vanilla.es.js","sources":["../../../../node_modules/jotai/esm/vanilla.mjs"],"sourcesContent":["let keyCount = 0;\nfunction atom(read, write) {\n const key = `atom${++keyCount}`;\n const config = {\n toString: () => key\n };\n if (typeof read === \"function\") {\n config.read = read;\n } else {\n config.init = read;\n config.read = (get) => get(config);\n config.write = (get, set, arg) => set(\n config,\n typeof arg === \"function\" ? arg(get(config)) : arg\n );\n }\n if (write) {\n config.write = write;\n }\n return config;\n}\n\nconst hasInitialValue = (atom) => \"init\" in atom;\nconst isActuallyWritableAtom = (atom) => !!atom.write;\nconst cancelPromiseMap = /* @__PURE__ */ new WeakMap();\nconst registerCancelPromise = (promise, cancel) => {\n cancelPromiseMap.set(promise, cancel);\n promise.catch(() => {\n }).finally(() => cancelPromiseMap.delete(promise));\n};\nconst cancelPromise = (promise, next) => {\n const cancel = cancelPromiseMap.get(promise);\n if (cancel) {\n cancelPromiseMap.delete(promise);\n cancel(next);\n }\n};\nconst resolvePromise = (promise, value) => {\n promise.status = \"fulfilled\";\n promise.value = value;\n};\nconst rejectPromise = (promise, e) => {\n promise.status = \"rejected\";\n promise.reason = e;\n};\nconst isEqualAtomValue = (a, b) => \"v\" in a && \"v\" in b && Object.is(a.v, b.v);\nconst isEqualAtomError = (a, b) => \"e\" in a && \"e\" in b && Object.is(a.e, b.e);\nconst hasPromiseAtomValue = (a) => \"v\" in a && a.v instanceof Promise;\nconst returnAtomValue = (atomState) => {\n if (\"e\" in atomState) {\n throw atomState.e;\n }\n return atomState.v;\n};\nconst createStore = () => {\n const atomStateMap = /* @__PURE__ */ new WeakMap();\n const mountedMap = /* @__PURE__ */ new WeakMap();\n const pendingMap = /* @__PURE__ */ new Map();\n let stateListeners;\n let mountedAtoms;\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n stateListeners = /* @__PURE__ */ new Set();\n mountedAtoms = /* @__PURE__ */ new Set();\n }\n const getAtomState = (atom) => atomStateMap.get(atom);\n const setAtomState = (atom, atomState) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n Object.freeze(atomState);\n }\n const prevAtomState = atomStateMap.get(atom);\n atomStateMap.set(atom, atomState);\n if (!pendingMap.has(atom)) {\n pendingMap.set(atom, prevAtomState);\n }\n if (prevAtomState && hasPromiseAtomValue(prevAtomState)) {\n const next = \"v\" in atomState ? atomState.v instanceof Promise ? atomState.v : Promise.resolve(atomState.v) : Promise.reject(atomState.e);\n cancelPromise(prevAtomState.v, next);\n }\n };\n const updateDependencies = (atom, nextAtomState, depSet) => {\n const dependencies = /* @__PURE__ */ new Map();\n let changed = false;\n depSet.forEach((a) => {\n const aState = a === atom ? nextAtomState : getAtomState(a);\n if (aState) {\n dependencies.set(a, aState);\n if (nextAtomState.d.get(a) !== aState) {\n changed = true;\n }\n } else if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\"[Bug] atom state not found\");\n }\n });\n if (changed || nextAtomState.d.size !== dependencies.size) {\n nextAtomState.d = dependencies;\n }\n };\n const setAtomValue = (atom, value, depSet) => {\n const prevAtomState = getAtomState(atom);\n const nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || /* @__PURE__ */ new Map(),\n v: value\n };\n if (depSet) {\n updateDependencies(atom, nextAtomState, depSet);\n }\n if (prevAtomState && isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n const setAtomError = (atom, error, depSet) => {\n const prevAtomState = getAtomState(atom);\n const nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || /* @__PURE__ */ new Map(),\n e: error\n };\n if (depSet) {\n updateDependencies(atom, nextAtomState, depSet);\n }\n if (prevAtomState && isEqualAtomError(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n const readAtomState = (atom) => {\n const atomState = getAtomState(atom);\n if (atomState) {\n atomState.d.forEach((_, a) => {\n if (a !== atom && !mountedMap.has(a)) {\n readAtomState(a);\n }\n });\n if (Array.from(atomState.d).every(\n ([a, s]) => a === atom || getAtomState(a) === s\n )) {\n return atomState;\n }\n }\n const depSet = /* @__PURE__ */ new Set();\n let isSync = true;\n const getter = (a) => {\n depSet.add(a);\n if (a === atom) {\n const aState2 = getAtomState(a);\n if (aState2) {\n return returnAtomValue(aState2);\n }\n if (hasInitialValue(a)) {\n return a.init;\n }\n throw new Error(\"no atom init\");\n }\n const aState = readAtomState(a);\n return returnAtomValue(aState);\n };\n let controller;\n let setSelf;\n const options = {\n get signal() {\n if (!controller) {\n controller = new AbortController();\n }\n return controller.signal;\n },\n get setSelf() {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && !isActuallyWritableAtom(atom)) {\n console.warn(\"setSelf function cannot be used with read-only atom\");\n }\n if (!setSelf && isActuallyWritableAtom(atom)) {\n setSelf = (...args) => {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && isSync) {\n console.warn(\"setSelf function cannot be called in sync\");\n }\n if (!isSync) {\n return writeAtom(atom, ...args);\n }\n };\n }\n return setSelf;\n }\n };\n try {\n const value = atom.read(getter, options);\n if (value instanceof Promise) {\n let continuePromise;\n const promise = new Promise((resolve, reject) => {\n let settled = false;\n value.then(\n (v) => {\n if (!settled) {\n resolvePromise(promise, v);\n resolve(v);\n }\n },\n (e) => {\n if (!settled) {\n rejectPromise(promise, e);\n reject(e);\n }\n }\n ).finally(() => {\n if (!settled) {\n settled = true;\n setAtomValue(atom, promise, depSet);\n }\n });\n continuePromise = (next) => {\n if (!settled) {\n settled = true;\n next.then(\n (v) => resolvePromise(promise, v),\n (e) => rejectPromise(promise, e)\n );\n resolve(next);\n }\n };\n });\n promise.status = \"pending\";\n registerCancelPromise(promise, (next) => {\n if (next) {\n continuePromise(next);\n }\n controller == null ? void 0 : controller.abort();\n });\n return setAtomValue(atom, promise, depSet);\n }\n return setAtomValue(atom, value, depSet);\n } catch (error) {\n return setAtomError(atom, error, depSet);\n } finally {\n isSync = false;\n }\n };\n const readAtom = (atom) => returnAtomValue(readAtomState(atom));\n const addAtom = (atom) => {\n let mounted = mountedMap.get(atom);\n if (!mounted) {\n mounted = mountAtom(atom);\n }\n return mounted;\n };\n const canUnmountAtom = (atom, mounted) => !mounted.l.size && (!mounted.t.size || mounted.t.size === 1 && mounted.t.has(atom));\n const delAtom = (atom) => {\n const mounted = mountedMap.get(atom);\n if (mounted && canUnmountAtom(atom, mounted)) {\n unmountAtom(atom);\n }\n };\n const recomputeDependents = (atom) => {\n const mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.t.forEach((dependent) => {\n if (dependent !== atom) {\n const prevAtomState = getAtomState(dependent);\n const nextAtomState = readAtomState(dependent);\n if (!prevAtomState || !isEqualAtomValue(prevAtomState, nextAtomState)) {\n recomputeDependents(dependent);\n }\n }\n });\n };\n const writeAtomState = (atom, ...args) => {\n let isSync = true;\n const getter = (a) => returnAtomValue(readAtomState(a));\n const setter = (a, ...args2) => {\n let r;\n if (a === atom) {\n if (!hasInitialValue(a)) {\n throw new Error(\"atom not writable\");\n }\n const prevAtomState = getAtomState(a);\n const nextAtomState = setAtomValue(a, args2[0]);\n if (!prevAtomState || !isEqualAtomValue(prevAtomState, nextAtomState)) {\n recomputeDependents(a);\n }\n } else {\n r = writeAtomState(a, ...args2);\n }\n if (!isSync) {\n flushPending();\n }\n return r;\n };\n const result = atom.write(getter, setter, ...args);\n isSync = false;\n return result;\n };\n const writeAtom = (atom, ...args) => {\n const result = writeAtomState(atom, ...args);\n flushPending();\n return result;\n };\n const mountAtom = (atom, initialDependent) => {\n const mounted = {\n t: new Set(initialDependent && [initialDependent]),\n l: /* @__PURE__ */ new Set()\n };\n mountedMap.set(atom, mounted);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n mountedAtoms.add(atom);\n }\n readAtomState(atom).d.forEach((_, a) => {\n const aMounted = mountedMap.get(a);\n if (aMounted) {\n aMounted.t.add(atom);\n } else {\n if (a !== atom) {\n mountAtom(a, atom);\n }\n }\n });\n readAtomState(atom);\n if (isActuallyWritableAtom(atom) && atom.onMount) {\n const onUnmount = atom.onMount((...args) => writeAtom(atom, ...args));\n if (onUnmount) {\n mounted.u = onUnmount;\n }\n }\n return mounted;\n };\n const unmountAtom = (atom) => {\n var _a;\n const onUnmount = (_a = mountedMap.get(atom)) == null ? void 0 : _a.u;\n if (onUnmount) {\n onUnmount();\n }\n mountedMap.delete(atom);\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n mountedAtoms.delete(atom);\n }\n const atomState = getAtomState(atom);\n if (atomState) {\n if (hasPromiseAtomValue(atomState)) {\n cancelPromise(atomState.v);\n }\n atomState.d.forEach((_, a) => {\n if (a !== atom) {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n }\n });\n } else if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\"[Bug] could not find atom state to unmount\", atom);\n }\n };\n const mountDependencies = (atom, atomState, prevDependencies) => {\n const depSet = new Set(atomState.d.keys());\n prevDependencies == null ? void 0 : prevDependencies.forEach((_, a) => {\n if (depSet.has(a)) {\n depSet.delete(a);\n return;\n }\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n });\n depSet.forEach((a) => {\n const mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.add(atom);\n } else if (mountedMap.has(atom)) {\n mountAtom(a, atom);\n }\n });\n };\n const flushPending = () => {\n while (pendingMap.size) {\n const pending = Array.from(pendingMap);\n pendingMap.clear();\n pending.forEach(([atom, prevAtomState]) => {\n const atomState = getAtomState(atom);\n if (atomState) {\n if (atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n const mounted = mountedMap.get(atom);\n if (mounted && !(prevAtomState && !hasPromiseAtomValue(prevAtomState) && (isEqualAtomValue(prevAtomState, atomState) || isEqualAtomError(prevAtomState, atomState)))) {\n mounted.l.forEach((listener) => listener());\n }\n } else if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n console.warn(\"[Bug] no atom state to flush\");\n }\n });\n }\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n stateListeners.forEach((l) => l());\n }\n };\n const subscribeAtom = (atom, listener) => {\n const mounted = addAtom(atom);\n flushPending();\n const listeners = mounted.l;\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n delAtom(atom);\n };\n };\n if ((import.meta.env && import.meta.env.MODE) !== \"production\") {\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom,\n // store dev methods (these are tentative and subject to change)\n dev_subscribe_state: (l) => {\n stateListeners.add(l);\n return () => {\n stateListeners.delete(l);\n };\n },\n dev_get_mounted_atoms: () => mountedAtoms.values(),\n dev_get_atom_state: (a) => atomStateMap.get(a),\n dev_get_mounted: (a) => mountedMap.get(a),\n dev_restore_atoms: (values) => {\n for (const [atom, value] of values) {\n if (hasInitialValue(atom)) {\n setAtomValue(atom, value);\n recomputeDependents(atom);\n }\n }\n flushPending();\n }\n };\n }\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom\n };\n};\nlet defaultStore;\nconst getDefaultStore = () => {\n if (!defaultStore) {\n defaultStore = createStore();\n }\n return defaultStore;\n};\n\nexport { atom, createStore, getDefaultStore };\n"],"names":["keyCount","atom","read","write","key","config","get","set","arg"],"mappings":"AAAA,IAAIA,IAAW;AACf,SAASC,EAAKC,GAAMC,GAAO;AACzB,QAAMC,IAAM,OAAO,EAAEJ,KACfK,IAAS;AAAA,IACb,UAAU,MAAMD;AAAA,EACpB;AACE,SAAI,OAAOF,KAAS,aAClBG,EAAO,OAAOH,KAEdG,EAAO,OAAOH,GACdG,EAAO,OAAO,CAACC,MAAQA,EAAID,CAAM,GACjCA,EAAO,QAAQ,CAACC,GAAKC,GAAKC,MAAQD;AAAA,IAChCF;AAAA,IACA,OAAOG,KAAQ,aAAaA,EAAIF,EAAID,CAAM,CAAC,IAAIG;AAAA,EACrD,IAEML,MACFE,EAAO,QAAQF,IAEVE;AACT;"}
|