{"version":3,"file":"static/js/8339.fed0f270.js","mappings":"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","sources":["../../../node_modules/.pnpm/zustand@4.4.0_@types+react@18.2.0_immer@9.0.21_react@18.2.0/node_modules/zustand/esm/index.js","../../../node_modules/.pnpm/zustand@4.4.0_@types+react@18.2.0_immer@9.0.21_react@18.2.0/node_modules/zustand/esm/traditional.js","../../../node_modules/.pnpm/zustand@4.4.0_@types+react@18.2.0_immer@9.0.21_react@18.2.0/node_modules/zustand/esm/vanilla.mjs","../../../node_modules/.pnpm/zustand@4.4.1_@types+react@18.2.0_immer@9.0.21_react@18.2.0/node_modules/zustand/esm/middleware.mjs","../../../node_modules/.pnpm/zustand@4.4.1_@types+react@18.2.0_immer@9.0.21_react@18.2.0/node_modules/zustand/esm/vanilla.mjs"],"sourcesContent":["import { createStore } from 'zustand/vanilla';\nexport * from 'zustand/vanilla';\nimport { useDebugValue } from 'react';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';\n\nconst { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;\nfunction useStore(api, selector = api.getState, equalityFn) {\n if (process.env.NODE_ENV !== \"production\" && equalityFn) {\n console.warn(\n \"[DEPRECATED] Use `createWithEqualityFn` from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937\"\n );\n }\n const slice = useSyncExternalStoreWithSelector(\n api.subscribe,\n api.getState,\n api.getServerState || api.getState,\n selector,\n equalityFn\n );\n useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n if (process.env.NODE_ENV !== \"production\" && typeof createState !== \"function\") {\n console.warn(\n \"[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.\"\n );\n }\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useBoundStore = (selector, equalityFn) => useStore(api, selector, equalityFn);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\nvar react = (createState) => {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'`.\"\n );\n }\n return create(createState);\n};\n\nexport { create, react as default, useStore };\n","import { useDebugValue } from 'react';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';\nimport { createStore } from 'zustand/vanilla';\n\nconst { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;\nfunction useStoreWithEqualityFn(api, selector = api.getState, equalityFn) {\n const slice = useSyncExternalStoreWithSelector(\n api.subscribe,\n api.getState,\n api.getServerState || api.getState,\n selector,\n equalityFn\n );\n useDebugValue(slice);\n return slice;\n}\nconst createWithEqualityFnImpl = (createState, defaultEqualityFn) => {\n const api = createStore(createState);\n const useBoundStoreWithEqualityFn = (selector, equalityFn = defaultEqualityFn) => useStoreWithEqualityFn(api, selector, equalityFn);\n Object.assign(useBoundStoreWithEqualityFn, api);\n return useBoundStoreWithEqualityFn;\n};\nconst createWithEqualityFn = (createState, defaultEqualityFn) => createState ? createWithEqualityFnImpl(createState, defaultEqualityFn) : createWithEqualityFnImpl;\n\nexport { createWithEqualityFn, useStoreWithEqualityFn };\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\") ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...a) => api.dispatch(...a), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api)\n return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && enabled) {\n console.warn(\n \"[zustand devtools middleware] Please install/enable Redux devtools extension\"\n );\n }\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording)\n return r;\n const action = nameOrAction === void 0 ? { type: anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format. \n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools)\n return;\n if (typeof api.dispatch !== \"function\")\n return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState)\n return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0)\n f(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nconst combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(\n name,\n JSON.stringify(newValue, options == null ? void 0 : options.replacer)\n ),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst oldImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n getStorage: () => localStorage,\n serialize: JSON.stringify,\n deserialize: JSON.parse,\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage;\n try {\n storage = options.getStorage();\n } catch (e) {\n }\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const thenableSerialize = toThenable(options.serialize);\n const setItem = () => {\n const state = options.partialize({ ...get() });\n let errorInSync;\n const thenable = thenableSerialize({ state, version: options.version }).then(\n (serializedValue) => storage.setItem(options.name, serializedValue)\n ).catch((e) => {\n errorInSync = e;\n });\n if (errorInSync) {\n throw errorInSync;\n }\n return thenable;\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n let stateFromStorage;\n const hydrate = () => {\n var _a;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => cb(get()));\n const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {\n if (storageValue) {\n return options.deserialize(storageValue);\n }\n }).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.getStorage) {\n storage = newOptions.getStorage();\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n hydrate();\n return stateFromStorage || configResult;\n};\nconst newImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persistImpl = (config, baseOptions) => {\n if (\"getStorage\" in baseOptions || \"serialize\" in baseOptions || \"deserialize\" in baseOptions) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead.\"\n );\n }\n return oldImpl(config, baseOptions);\n }\n return newImpl(config, baseOptions);\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\") ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n"],"names":["useSyncExternalStoreWithSelector","useSyncExternalStoreExports","useStore","api","selector","arguments","length","undefined","getState","equalityFn","slice","subscribe","getServerState","useDebugValue","createImpl","createState","createStore","useBoundStore","Object","assign","create","react","useStoreWithEqualityFn","createWithEqualityFnImpl","defaultEqualityFn","useBoundStoreWithEqualityFn","createWithEqualityFn","createStoreImpl","state","listeners","Set","setState","partial","replace","nextState","is","previousState","forEach","listener","add","delete","destroy","console","warn","clear","subscribeWithSelector","fn","set","get","origSubscribe","optListener","options","currentSlice","nextSlice","previousSlice","fireImmediately","createJSONStorage","getStorage","storage","e","getItem","name","_a","parse","str2","JSON","reviver","str","Promise","then","setItem","newValue","stringify","replacer","removeItem","toThenable","input","result","onFulfilled","catch","_onRejected","this","_onFulfilled","onRejected","persist","persistImpl","config","baseOptions","oldImpl","localStorage","serialize","deserialize","partialize","version","merge","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","concat","thenableSerialize","errorInSync","thenable","serializedValue","savedSetState","configResult","stateFromStorage","hydrate","cb","postRehydrationCallback","onRehydrateStorage","call","bind","storageValue","deserializedStorageValue","migrate","error","migratedState","_a2","setOptions","newOptions","clearStorage","getOptions","rehydrate","onHydrate","onFinishHydration","newImpl","_b","skipHydration"],"sourceRoot":""}