{"version":3,"file":"use-query-params-Hs2w4nib.js","sources":["../../node_modules/serialize-query-params/dist/withDefault.js","../../node_modules/serialize-query-params/dist/serialize.js","../../node_modules/serialize-query-params/dist/params.js","../../node_modules/serialize-query-params/dist/objectToSearchString.js","../../node_modules/serialize-query-params/dist/updateLocation.js","../../node_modules/serialize-query-params/dist/encodeQueryParams.js","../../node_modules/serialize-query-params/dist/searchStringToObject.js","../../node_modules/use-query-params/dist/decodedParamCache.js","../../node_modules/use-query-params/dist/inheritedParams.js","../../node_modules/use-query-params/dist/shallowEqual.js","../../node_modules/use-query-params/dist/latestValues.js","../../node_modules/use-query-params/dist/urlName.js","../../node_modules/use-query-params/dist/memoSearchStringToObject.js","../../node_modules/use-query-params/dist/options.js","../../node_modules/use-query-params/dist/QueryParamProvider.js","../../node_modules/use-query-params/dist/removeDefaults.js","../../node_modules/use-query-params/dist/updateSearchString.js","../../node_modules/use-query-params/dist/useQueryParams.js"],"sourcesContent":["function withDefault(param, defaultValue, includeNull = true) {\n const decodeWithDefault = (...args) => {\n const decodedValue = param.decode(...args);\n if (decodedValue === void 0) {\n return defaultValue;\n }\n if (includeNull) {\n if (decodedValue === null) {\n return defaultValue;\n } else {\n return decodedValue;\n }\n }\n return decodedValue;\n };\n return { ...param, default: defaultValue, decode: decodeWithDefault };\n}\nvar withDefault_default = withDefault;\nexport {\n withDefault_default as default,\n withDefault\n};\n//# sourceMappingURL=withDefault.js.map\n","function getEncodedValue(input, allowEmptyString) {\n if (input == null) {\n return input;\n }\n if (input.length === 0 && (!allowEmptyString || allowEmptyString && input !== \"\")) {\n return null;\n }\n const str = input instanceof Array ? input[0] : input;\n if (str == null) {\n return str;\n }\n if (!allowEmptyString && str === \"\") {\n return null;\n }\n return str;\n}\nfunction getEncodedValueArray(input) {\n if (input == null) {\n return input;\n }\n return input instanceof Array ? input : input === \"\" ? [] : [input];\n}\nfunction encodeDate(date) {\n if (date == null) {\n return date;\n }\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n return `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`;\n}\nfunction decodeDate(input) {\n const dateString = getEncodedValue(input);\n if (dateString == null)\n return dateString;\n const parts = dateString.split(\"-\");\n if (parts[1] != null) {\n parts[1] -= 1;\n } else {\n parts[1] = 0;\n parts[2] = 1;\n }\n const decoded = new Date(...parts);\n if (isNaN(decoded.getTime())) {\n return null;\n }\n return decoded;\n}\nfunction encodeDateTime(date) {\n if (date == null) {\n return date;\n }\n return date.toISOString();\n}\nfunction decodeDateTime(input) {\n const dateString = getEncodedValue(input);\n if (dateString == null)\n return dateString;\n const decoded = new Date(dateString);\n if (isNaN(decoded.getTime())) {\n return null;\n }\n return decoded;\n}\nfunction encodeBoolean(bool) {\n if (bool == null) {\n return bool;\n }\n return bool ? \"1\" : \"0\";\n}\nfunction decodeBoolean(input) {\n const boolStr = getEncodedValue(input);\n if (boolStr == null)\n return boolStr;\n if (boolStr === \"1\") {\n return true;\n } else if (boolStr === \"0\") {\n return false;\n }\n return null;\n}\nfunction encodeNumber(num) {\n if (num == null) {\n return num;\n }\n return String(num);\n}\nfunction decodeNumber(input) {\n const numStr = getEncodedValue(input);\n if (numStr == null)\n return numStr;\n if (numStr === \"\")\n return null;\n const result = +numStr;\n return result;\n}\nfunction encodeString(str) {\n if (str == null) {\n return str;\n }\n return String(str);\n}\nfunction decodeString(input) {\n const str = getEncodedValue(input, true);\n if (str == null)\n return str;\n return String(str);\n}\nfunction decodeEnum(input, enumValues) {\n const str = decodeString(input);\n if (str == null)\n return str;\n return enumValues.includes(str) ? str : void 0;\n}\nfunction decodeArrayEnum(input, enumValues) {\n const arr = decodeArray(input);\n if (arr == null)\n return arr;\n if (!arr.length)\n return void 0;\n return arr.every((str) => str != null && enumValues.includes(str)) ? arr : void 0;\n}\nfunction decodeDelimitedArrayEnum(input, enumValues, entrySeparator = \"_\") {\n if (input != null && Array.isArray(input) && !input.length)\n return void 0;\n const arr = decodeDelimitedArray(input, entrySeparator);\n return decodeArrayEnum(arr, enumValues);\n}\nfunction encodeJson(any) {\n if (any == null) {\n return any;\n }\n return JSON.stringify(any);\n}\nfunction decodeJson(input) {\n const jsonStr = getEncodedValue(input);\n if (jsonStr == null)\n return jsonStr;\n let result = null;\n try {\n result = JSON.parse(jsonStr);\n } catch (e) {\n }\n return result;\n}\nfunction encodeArray(array) {\n if (array == null) {\n return array;\n }\n return array;\n}\nfunction decodeArray(input) {\n const arr = getEncodedValueArray(input);\n if (arr == null)\n return arr;\n return arr;\n}\nfunction encodeNumericArray(array) {\n if (array == null) {\n return array;\n }\n return array.map(String);\n}\nfunction decodeNumericArray(input) {\n const arr = decodeArray(input);\n if (arr == null)\n return arr;\n return arr.map((d) => d === \"\" || d == null ? null : +d);\n}\nfunction encodeDelimitedArray(array, entrySeparator = \"_\") {\n if (array == null) {\n return array;\n }\n return array.join(entrySeparator);\n}\nfunction decodeDelimitedArray(input, entrySeparator = \"_\") {\n const arrayStr = getEncodedValue(input, true);\n if (arrayStr == null)\n return arrayStr;\n if (arrayStr === \"\")\n return [];\n return arrayStr.split(entrySeparator);\n}\nconst encodeDelimitedNumericArray = encodeDelimitedArray;\nfunction decodeDelimitedNumericArray(arrayStr, entrySeparator = \"_\") {\n const decoded = decodeDelimitedArray(arrayStr, entrySeparator);\n if (decoded == null)\n return decoded;\n return decoded.map((d) => d === \"\" || d == null ? null : +d);\n}\nfunction encodeObject(obj, keyValSeparator = \"-\", entrySeparator = \"_\") {\n if (obj == null)\n return obj;\n if (!Object.keys(obj).length)\n return \"\";\n return Object.keys(obj).map((key) => `${key}${keyValSeparator}${obj[key]}`).join(entrySeparator);\n}\nfunction decodeObject(input, keyValSeparator = \"-\", entrySeparator = \"_\") {\n const objStr = getEncodedValue(input, true);\n if (objStr == null)\n return objStr;\n if (objStr === \"\")\n return {};\n const obj = {};\n const keyValSeparatorRegExp = new RegExp(`${keyValSeparator}(.*)`);\n objStr.split(entrySeparator).forEach((entryStr) => {\n const [key, value] = entryStr.split(keyValSeparatorRegExp);\n obj[key] = value;\n });\n return obj;\n}\nconst encodeNumericObject = encodeObject;\nfunction decodeNumericObject(input, keyValSeparator = \"-\", entrySeparator = \"_\") {\n const decoded = decodeObject(\n input,\n keyValSeparator,\n entrySeparator\n );\n if (decoded == null)\n return decoded;\n const decodedNumberObj = {};\n for (const key of Object.keys(decoded)) {\n decodedNumberObj[key] = decodeNumber(decoded[key]);\n }\n return decodedNumberObj;\n}\nexport {\n decodeArray,\n decodeArrayEnum,\n decodeBoolean,\n decodeDate,\n decodeDateTime,\n decodeDelimitedArray,\n decodeDelimitedArrayEnum,\n decodeDelimitedNumericArray,\n decodeEnum,\n decodeJson,\n decodeNumber,\n decodeNumericArray,\n decodeNumericObject,\n decodeObject,\n decodeString,\n encodeArray,\n encodeBoolean,\n encodeDate,\n encodeDateTime,\n encodeDelimitedArray,\n encodeDelimitedNumericArray,\n encodeJson,\n encodeNumber,\n encodeNumericArray,\n encodeNumericObject,\n encodeObject,\n encodeString\n};\n//# sourceMappingURL=serialize.js.map\n","import * as Serialize from \"./serialize\";\nconst StringParam = {\n encode: Serialize.encodeString,\n decode: Serialize.decodeString\n};\nconst createEnumParam = (enumValues) => ({\n encode: Serialize.encodeString,\n decode: (input) => Serialize.decodeEnum(input, enumValues)\n});\nconst createEnumArrayParam = (enumValues) => ({\n encode: (text) => Serialize.encodeArray(text == null || Array.isArray(text) ? text : [text]),\n decode: (input) => Serialize.decodeArrayEnum(input, enumValues)\n});\nconst createEnumDelimitedArrayParam = (enumValues, entrySeparator = \"_\") => ({\n encode: (text) => Serialize.encodeDelimitedArray(\n text == null || Array.isArray(text) ? text : [text],\n entrySeparator\n ),\n decode: (input) => Serialize.decodeDelimitedArrayEnum(input, enumValues, entrySeparator)\n});\nconst NumberParam = {\n encode: Serialize.encodeNumber,\n decode: Serialize.decodeNumber\n};\nconst ObjectParam = {\n encode: Serialize.encodeObject,\n decode: Serialize.decodeObject\n};\nconst ArrayParam = {\n encode: Serialize.encodeArray,\n decode: Serialize.decodeArray\n};\nconst NumericArrayParam = {\n encode: Serialize.encodeNumericArray,\n decode: Serialize.decodeNumericArray\n};\nconst JsonParam = {\n encode: Serialize.encodeJson,\n decode: Serialize.decodeJson\n};\nconst DateParam = {\n encode: Serialize.encodeDate,\n decode: Serialize.decodeDate,\n equals: (valueA, valueB) => {\n if (valueA === valueB)\n return true;\n if (valueA == null || valueB == null)\n return valueA === valueB;\n return valueA.getFullYear() === valueB.getFullYear() && valueA.getMonth() === valueB.getMonth() && valueA.getDate() === valueB.getDate();\n }\n};\nconst DateTimeParam = {\n encode: Serialize.encodeDateTime,\n decode: Serialize.decodeDateTime,\n equals: (valueA, valueB) => {\n if (valueA === valueB)\n return true;\n if (valueA == null || valueB == null)\n return valueA === valueB;\n return valueA.valueOf() === valueB.valueOf();\n }\n};\nconst BooleanParam = {\n encode: Serialize.encodeBoolean,\n decode: Serialize.decodeBoolean\n};\nconst NumericObjectParam = {\n encode: Serialize.encodeNumericObject,\n decode: Serialize.decodeNumericObject\n};\nconst DelimitedArrayParam = {\n encode: Serialize.encodeDelimitedArray,\n decode: Serialize.decodeDelimitedArray\n};\nconst DelimitedNumericArrayParam = {\n encode: Serialize.encodeDelimitedNumericArray,\n decode: Serialize.decodeDelimitedNumericArray\n};\nexport {\n ArrayParam,\n BooleanParam,\n DateParam,\n DateTimeParam,\n DelimitedArrayParam,\n DelimitedNumericArrayParam,\n JsonParam,\n NumberParam,\n NumericArrayParam,\n NumericObjectParam,\n ObjectParam,\n StringParam,\n createEnumArrayParam,\n createEnumDelimitedArrayParam,\n createEnumParam\n};\n//# sourceMappingURL=params.js.map\n","function objectToSearchString(encodedParams) {\n const params = new URLSearchParams();\n const entries = Object.entries(encodedParams);\n for (const [key, value] of entries) {\n if (value === void 0)\n continue;\n if (value === null)\n continue;\n if (Array.isArray(value)) {\n for (const item of value) {\n params.append(key, item != null ? item : \"\");\n }\n } else {\n params.append(key, value);\n }\n }\n return params.toString();\n}\nexport {\n objectToSearchString\n};\n//# sourceMappingURL=objectToSearchString.js.map\n","import { objectToSearchString } from \"./objectToSearchString\";\nimport { searchStringToObject } from \".\";\nconst JSON_SAFE_CHARS = `{}[],\":`.split(\"\").map((d) => [d, encodeURIComponent(d)]);\nfunction getHrefFromLocation(location, search) {\n let href = search;\n if (location.href) {\n try {\n const url = new URL(location.href);\n href = `${url.origin}${url.pathname}${search}`;\n } catch (e) {\n href = \"\";\n }\n }\n return href;\n}\nfunction transformSearchStringJsonSafe(searchString) {\n let str = searchString;\n for (let [char, code] of JSON_SAFE_CHARS) {\n str = str.replace(new RegExp(\"\\\\\" + code, \"g\"), char);\n }\n return str;\n}\nfunction updateLocation(encodedQuery, location, objectToSearchStringFn = objectToSearchString) {\n let encodedSearchString = objectToSearchStringFn(encodedQuery);\n const search = encodedSearchString.length ? `?${encodedSearchString}` : \"\";\n const newLocation = {\n ...location,\n key: `${Date.now()}`,\n href: getHrefFromLocation(location, search),\n search,\n query: encodedQuery\n };\n return newLocation;\n}\nfunction updateInLocation(encodedQueryReplacements, location, objectToSearchStringFn = objectToSearchString, searchStringToObjectFn = searchStringToObject) {\n const currQuery = searchStringToObjectFn(location.search);\n const newQuery = {\n ...currQuery,\n ...encodedQueryReplacements\n };\n return updateLocation(newQuery, location, objectToSearchStringFn);\n}\nexport {\n transformSearchStringJsonSafe,\n updateInLocation,\n updateLocation\n};\n//# sourceMappingURL=updateLocation.js.map\n","function encodeQueryParams(paramConfigMap, query) {\n const encodedQuery = {};\n const paramNames = Object.keys(query);\n for (const paramName of paramNames) {\n const decodedValue = query[paramName];\n if (!paramConfigMap[paramName]) {\n encodedQuery[paramName] = decodedValue == null ? decodedValue : String(decodedValue);\n } else {\n encodedQuery[paramName] = paramConfigMap[paramName].encode(query[paramName]);\n }\n }\n return encodedQuery;\n}\nvar encodeQueryParams_default = encodeQueryParams;\nexport {\n encodeQueryParams_default as default,\n encodeQueryParams\n};\n//# sourceMappingURL=encodeQueryParams.js.map\n","function searchStringToObject(searchString) {\n const params = new URLSearchParams(searchString);\n const parsed = {};\n for (let [key, value] of params) {\n if (Object.prototype.hasOwnProperty.call(parsed, key)) {\n if (Array.isArray(parsed[key])) {\n parsed[key].push(value);\n } else {\n parsed[key] = [parsed[key], value];\n }\n } else {\n parsed[key] = value;\n }\n }\n return parsed;\n}\nexport {\n searchStringToObject\n};\n//# sourceMappingURL=searchStringToObject.js.map\n","class DecodedParamCache {\n constructor() {\n this.paramsMap = /* @__PURE__ */ new Map();\n this.registeredParams = /* @__PURE__ */ new Map();\n }\n set(param, stringifiedValue, decodedValue, decode) {\n this.paramsMap.set(param, {\n stringified: stringifiedValue,\n decoded: decodedValue,\n decode\n });\n }\n has(param, stringifiedValue, decode) {\n if (!this.paramsMap.has(param))\n return false;\n const cachedParam = this.paramsMap.get(param);\n if (!cachedParam)\n return false;\n return cachedParam.stringified === stringifiedValue && (decode == null || cachedParam.decode === decode);\n }\n get(param) {\n var _a;\n if (this.paramsMap.has(param))\n return (_a = this.paramsMap.get(param)) == null ? void 0 : _a.decoded;\n return void 0;\n }\n registerParams(paramNames) {\n for (const param of paramNames) {\n const currValue = this.registeredParams.get(param) || 0;\n this.registeredParams.set(param, currValue + 1);\n }\n }\n unregisterParams(paramNames) {\n for (const param of paramNames) {\n const value = (this.registeredParams.get(param) || 0) - 1;\n if (value <= 0) {\n this.registeredParams.delete(param);\n if (this.paramsMap.has(param)) {\n this.paramsMap.delete(param);\n }\n } else {\n this.registeredParams.set(param, value);\n }\n }\n }\n clear() {\n this.paramsMap.clear();\n this.registeredParams.clear();\n }\n}\nconst decodedParamCache = new DecodedParamCache();\nexport {\n DecodedParamCache,\n decodedParamCache\n};\n//# sourceMappingURL=decodedParamCache.js.map\n","import {\n StringParam\n} from \"serialize-query-params\";\nfunction convertInheritedParamStringsToParams(paramConfigMapWithInherit, options) {\n var _a, _b, _c;\n const paramConfigMap = {};\n let hasInherit = false;\n const hookKeys = Object.keys(paramConfigMapWithInherit);\n let paramKeys = hookKeys;\n const includeKnownParams = options.includeKnownParams || options.includeKnownParams !== false && hookKeys.length === 0;\n if (includeKnownParams) {\n const knownKeys = Object.keys((_a = options.params) != null ? _a : {});\n paramKeys.push(...knownKeys);\n }\n for (const key of paramKeys) {\n const param = paramConfigMapWithInherit[key];\n if (param != null && typeof param === \"object\") {\n paramConfigMap[key] = param;\n continue;\n }\n hasInherit = true;\n paramConfigMap[key] = (_c = (_b = options.params) == null ? void 0 : _b[key]) != null ? _c : StringParam;\n }\n if (!hasInherit)\n return paramConfigMapWithInherit;\n return paramConfigMap;\n}\nfunction extendParamConfigForKeys(baseParamConfigMap, paramKeys, inheritedParams, defaultParam) {\n var _a;\n if (!inheritedParams || !paramKeys.length)\n return baseParamConfigMap;\n let paramConfigMap = { ...baseParamConfigMap };\n let hasInherit = false;\n for (const paramKey of paramKeys) {\n if (!Object.prototype.hasOwnProperty.call(paramConfigMap, paramKey)) {\n paramConfigMap[paramKey] = (_a = inheritedParams[paramKey]) != null ? _a : defaultParam;\n hasInherit = true;\n }\n }\n if (!hasInherit)\n return baseParamConfigMap;\n return paramConfigMap;\n}\nexport {\n convertInheritedParamStringsToParams,\n extendParamConfigForKeys\n};\n//# sourceMappingURL=inheritedParams.js.map\n","const hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction shallowEqual(objA, objB, equalMap) {\n var _a, _b;\n if (is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n const isEqual = (_b = (_a = equalMap == null ? void 0 : equalMap[keysA[i]]) == null ? void 0 : _a.equals) != null ? _b : is;\n if (!hasOwnProperty.call(objB, keysA[i]) || !isEqual(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nexport {\n shallowEqual as default\n};\n//# sourceMappingURL=shallowEqual.js.map\n","import shallowEqual from \"./shallowEqual\";\nfunction getLatestDecodedValues(parsedParams, paramConfigMap, decodedParamCache) {\n const decodedValues = {};\n const paramNames = Object.keys(paramConfigMap);\n for (const paramName of paramNames) {\n const paramConfig = paramConfigMap[paramName];\n const encodedValue = parsedParams[paramName];\n let decodedValue;\n if (decodedParamCache.has(paramName, encodedValue, paramConfig.decode)) {\n decodedValue = decodedParamCache.get(paramName);\n } else {\n decodedValue = paramConfig.decode(encodedValue);\n if (paramConfig.equals && decodedParamCache.has(paramName, encodedValue)) {\n const oldDecodedValue = decodedParamCache.get(paramName);\n if (paramConfig.equals(decodedValue, oldDecodedValue)) {\n decodedValue = oldDecodedValue;\n }\n }\n if (decodedValue !== void 0) {\n decodedParamCache.set(\n paramName,\n encodedValue,\n decodedValue,\n paramConfig.decode\n );\n }\n }\n if (decodedValue === void 0 && paramConfig.default !== void 0) {\n decodedValue = paramConfig.default;\n }\n decodedValues[paramName] = decodedValue;\n }\n return decodedValues;\n}\nfunction makeStableGetLatestDecodedValues() {\n let prevDecodedValues;\n function stableGetLatest(parsedParams, paramConfigMap, decodedParamCache) {\n const decodedValues = getLatestDecodedValues(\n parsedParams,\n paramConfigMap,\n decodedParamCache\n );\n if (prevDecodedValues != null && shallowEqual(prevDecodedValues, decodedValues)) {\n return prevDecodedValues;\n }\n prevDecodedValues = decodedValues;\n return decodedValues;\n }\n return stableGetLatest;\n}\nexport {\n getLatestDecodedValues,\n makeStableGetLatestDecodedValues\n};\n//# sourceMappingURL=latestValues.js.map\n","function serializeUrlNameMap(paramConfigMap) {\n let urlNameMapParts;\n for (const paramName in paramConfigMap) {\n if (paramConfigMap[paramName].urlName) {\n const urlName = paramConfigMap[paramName].urlName;\n const part = `${urlName}\\0${paramName}`;\n if (!urlNameMapParts)\n urlNameMapParts = [part];\n else\n urlNameMapParts.push(part);\n }\n }\n return urlNameMapParts ? urlNameMapParts.join(\"\\n\") : void 0;\n}\nfunction deserializeUrlNameMap(urlNameMapStr) {\n if (!urlNameMapStr)\n return void 0;\n return Object.fromEntries(\n urlNameMapStr.split(\"\\n\").map((part) => part.split(\"\\0\"))\n );\n}\nfunction applyUrlNames(encodedValues, paramConfigMap) {\n var _a;\n let newEncodedValues = {};\n for (const paramName in encodedValues) {\n if (((_a = paramConfigMap[paramName]) == null ? void 0 : _a.urlName) != null) {\n newEncodedValues[paramConfigMap[paramName].urlName] = encodedValues[paramName];\n } else {\n newEncodedValues[paramName] = encodedValues[paramName];\n }\n }\n return newEncodedValues;\n}\nexport {\n applyUrlNames,\n deserializeUrlNameMap,\n serializeUrlNameMap\n};\n//# sourceMappingURL=urlName.js.map\n","import shallowEqual from \"./shallowEqual\";\nimport { deserializeUrlNameMap } from \"./urlName\";\nlet cachedSearchString;\nlet cachedUrlNameMapString;\nlet cachedSearchStringToObjectFn;\nlet cachedParsedQuery = {};\nconst memoSearchStringToObject = (searchStringToObject, searchString, urlNameMapStr) => {\n if (cachedSearchString === searchString && cachedSearchStringToObjectFn === searchStringToObject && cachedUrlNameMapString === urlNameMapStr) {\n return cachedParsedQuery;\n }\n cachedSearchString = searchString;\n cachedSearchStringToObjectFn = searchStringToObject;\n const newParsedQuery = searchStringToObject(searchString != null ? searchString : \"\");\n cachedUrlNameMapString = urlNameMapStr;\n const urlNameMap = deserializeUrlNameMap(urlNameMapStr);\n for (let [key, value] of Object.entries(newParsedQuery)) {\n if (urlNameMap == null ? void 0 : urlNameMap[key]) {\n delete newParsedQuery[key];\n key = urlNameMap[key];\n newParsedQuery[key] = value;\n }\n const oldValue = cachedParsedQuery[key];\n if (shallowEqual(value, oldValue)) {\n newParsedQuery[key] = oldValue;\n }\n }\n cachedParsedQuery = newParsedQuery;\n return newParsedQuery;\n};\nexport {\n memoSearchStringToObject\n};\n//# sourceMappingURL=memoSearchStringToObject.js.map\n","import {\n searchStringToObject,\n objectToSearchString\n} from \"serialize-query-params\";\nconst defaultOptions = {\n searchStringToObject,\n objectToSearchString,\n updateType: \"pushIn\",\n includeKnownParams: void 0,\n includeAllParams: false,\n removeDefaultsFromUrl: false,\n enableBatching: false,\n skipUpdateWhenNoChange: true\n};\nfunction mergeOptions(parentOptions, currOptions) {\n if (currOptions == null) {\n currOptions = {};\n }\n const merged = { ...parentOptions, ...currOptions };\n if (currOptions.params && parentOptions.params) {\n merged.params = { ...parentOptions.params, ...currOptions.params };\n }\n return merged;\n}\nexport {\n defaultOptions,\n mergeOptions\n};\n//# sourceMappingURL=options.js.map\n","import * as React from \"react\";\nimport {\n mergeOptions,\n defaultOptions\n} from \"./options\";\nconst providerlessContextValue = {\n adapter: {},\n options: defaultOptions\n};\nconst QueryParamContext = React.createContext(\n providerlessContextValue\n);\nfunction useQueryParamContext() {\n const value = React.useContext(QueryParamContext);\n if (value === void 0 || value === providerlessContextValue) {\n throw new Error(\"useQueryParams must be used within a QueryParamProvider\");\n }\n return value;\n}\nfunction QueryParamProviderInner({\n children,\n adapter,\n options\n}) {\n const { adapter: parentAdapter, options: parentOptions } = React.useContext(QueryParamContext);\n const value = React.useMemo(() => {\n return {\n adapter: adapter != null ? adapter : parentAdapter,\n options: mergeOptions(\n parentOptions,\n options\n )\n };\n }, [adapter, options, parentAdapter, parentOptions]);\n return /* @__PURE__ */ React.createElement(QueryParamContext.Provider, {\n value\n }, children);\n}\nfunction QueryParamProvider({\n children,\n adapter,\n options\n}) {\n const Adapter = adapter;\n return Adapter ? /* @__PURE__ */ React.createElement(Adapter, null, (adapter2) => /* @__PURE__ */ React.createElement(QueryParamProviderInner, {\n adapter: adapter2,\n options\n }, children)) : /* @__PURE__ */ React.createElement(QueryParamProviderInner, {\n options\n }, children);\n}\nvar QueryParamProvider_default = QueryParamProvider;\nexport {\n QueryParamContext,\n QueryParamProvider,\n QueryParamProvider_default as default,\n useQueryParamContext\n};\n//# sourceMappingURL=QueryParamProvider.js.map\n","function removeDefaults(encodedValues, paramConfigMap) {\n var _a;\n for (const paramName in encodedValues) {\n if (((_a = paramConfigMap[paramName]) == null ? void 0 : _a.default) !== void 0 && encodedValues[paramName] !== void 0) {\n const encodedDefault = paramConfigMap[paramName].encode(\n paramConfigMap[paramName].default\n );\n if (encodedDefault === encodedValues[paramName]) {\n encodedValues[paramName] = void 0;\n }\n }\n }\n}\nexport {\n removeDefaults\n};\n//# sourceMappingURL=removeDefaults.js.map\n","import {\n encodeQueryParams\n} from \"serialize-query-params\";\nimport { decodedParamCache } from \"./decodedParamCache\";\nimport { extendParamConfigForKeys } from \"./inheritedParams\";\nimport { getLatestDecodedValues } from \"./latestValues\";\nimport { memoSearchStringToObject } from \"./memoSearchStringToObject\";\nimport { removeDefaults } from \"./removeDefaults\";\nimport { applyUrlNames } from \"./urlName\";\nfunction getUpdatedSearchString({\n changes,\n updateType,\n currentSearchString,\n paramConfigMap: baseParamConfigMap,\n options\n}) {\n const { searchStringToObject, objectToSearchString } = options;\n if (updateType == null)\n updateType = options.updateType;\n let encodedChanges;\n const parsedParams = memoSearchStringToObject(\n searchStringToObject,\n currentSearchString\n );\n const paramConfigMap = extendParamConfigForKeys(\n baseParamConfigMap,\n Object.keys(changes),\n options.params\n );\n let changesToUse;\n if (typeof changes === \"function\") {\n const latestValues = getLatestDecodedValues(\n parsedParams,\n paramConfigMap,\n decodedParamCache\n );\n changesToUse = changes(latestValues);\n } else {\n changesToUse = changes;\n }\n encodedChanges = encodeQueryParams(paramConfigMap, changesToUse);\n if (options.removeDefaultsFromUrl) {\n removeDefaults(encodedChanges, paramConfigMap);\n }\n encodedChanges = applyUrlNames(encodedChanges, paramConfigMap);\n let newSearchString;\n if (updateType === \"push\" || updateType === \"replace\") {\n newSearchString = objectToSearchString(encodedChanges);\n } else {\n newSearchString = objectToSearchString({\n ...parsedParams,\n ...encodedChanges\n });\n }\n if ((newSearchString == null ? void 0 : newSearchString.length) && newSearchString[0] !== \"?\") {\n newSearchString = `?${newSearchString}`;\n }\n return newSearchString != null ? newSearchString : \"\";\n}\nfunction updateSearchString({\n searchString,\n adapter,\n navigate,\n updateType\n}) {\n const currentLocation = adapter.location;\n const newLocation = {\n ...currentLocation,\n search: searchString\n };\n if (navigate) {\n if (typeof updateType === \"string\" && updateType.startsWith(\"replace\")) {\n adapter.replace(newLocation);\n } else {\n adapter.push(newLocation);\n }\n }\n}\nconst immediateTask = (task) => task();\nconst timeoutTask = (task) => setTimeout(() => task(), 0);\nconst updateQueue = [];\nfunction enqueueUpdate(args, { immediate } = {}) {\n updateQueue.push(args);\n let scheduleTask = immediate ? immediateTask : timeoutTask;\n if (updateQueue.length === 1) {\n scheduleTask(() => {\n const updates = updateQueue.slice();\n updateQueue.length = 0;\n const initialSearchString = updates[0].currentSearchString;\n let searchString;\n for (let i = 0; i < updates.length; ++i) {\n const modifiedUpdate = i === 0 ? updates[i] : { ...updates[i], currentSearchString: searchString };\n searchString = getUpdatedSearchString(modifiedUpdate);\n }\n if (args.options.skipUpdateWhenNoChange && searchString === initialSearchString) {\n return;\n }\n updateSearchString({\n searchString: searchString != null ? searchString : \"\",\n adapter: updates[updates.length - 1].adapter,\n navigate: true,\n updateType: updates[updates.length - 1].updateType\n });\n });\n }\n}\nexport {\n enqueueUpdate,\n getUpdatedSearchString,\n updateSearchString\n};\n//# sourceMappingURL=updateSearchString.js.map\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n StringParam\n} from \"serialize-query-params\";\nimport { decodedParamCache } from \"./decodedParamCache\";\nimport {\n extendParamConfigForKeys,\n convertInheritedParamStringsToParams\n} from \"./inheritedParams\";\nimport { makeStableGetLatestDecodedValues } from \"./latestValues\";\nimport { memoSearchStringToObject } from \"./memoSearchStringToObject\";\nimport { mergeOptions } from \"./options\";\nimport { useQueryParamContext } from \"./QueryParamProvider\";\nimport { enqueueUpdate } from \"./updateSearchString\";\nimport { serializeUrlNameMap } from \"./urlName\";\nfunction useQueryParams(arg1, arg2) {\n const { adapter, options: contextOptions } = useQueryParamContext();\n const [stableGetLatest] = useState(makeStableGetLatestDecodedValues);\n const { paramConfigMap: paramConfigMapWithInherit, options } = parseArguments(\n arg1,\n arg2\n );\n const mergedOptions = useMemo(() => {\n return mergeOptions(contextOptions, options);\n }, [contextOptions, options]);\n let paramConfigMap = convertInheritedParamStringsToParams(\n paramConfigMapWithInherit,\n mergedOptions\n );\n const parsedParams = memoSearchStringToObject(\n mergedOptions.searchStringToObject,\n adapter.location.search,\n serializeUrlNameMap(paramConfigMap)\n );\n if (mergedOptions.includeAllParams) {\n paramConfigMap = extendParamConfigForKeys(\n paramConfigMap,\n Object.keys(parsedParams),\n mergedOptions.params,\n StringParam\n );\n }\n const decodedValues = stableGetLatest(\n parsedParams,\n paramConfigMap,\n decodedParamCache\n );\n const paramKeyString = Object.keys(paramConfigMap).join(\"\\0\");\n useEffect(() => {\n const paramNames = paramKeyString.split(\"\\0\");\n decodedParamCache.registerParams(paramNames);\n return () => {\n decodedParamCache.unregisterParams(paramNames);\n };\n }, [paramKeyString]);\n const callbackDependencies = {\n adapter,\n paramConfigMap,\n options: mergedOptions\n };\n const callbackDependenciesRef = useRef(callbackDependencies);\n if (callbackDependenciesRef.current == null) {\n callbackDependenciesRef.current = callbackDependencies;\n }\n useEffect(() => {\n callbackDependenciesRef.current.adapter = adapter;\n callbackDependenciesRef.current.paramConfigMap = paramConfigMap;\n callbackDependenciesRef.current.options = mergedOptions;\n }, [adapter, paramConfigMap, mergedOptions]);\n const [setQuery] = useState(() => {\n const setQuery2 = (changes, updateType) => {\n const { adapter: adapter2, paramConfigMap: paramConfigMap2, options: options2 } = callbackDependenciesRef.current;\n if (updateType == null)\n updateType = options2.updateType;\n enqueueUpdate(\n {\n changes,\n updateType,\n currentSearchString: adapter2.location.search,\n paramConfigMap: paramConfigMap2,\n options: options2,\n adapter: adapter2\n },\n { immediate: !options2.enableBatching }\n );\n };\n return setQuery2;\n });\n return [decodedValues, setQuery];\n}\nvar useQueryParams_default = useQueryParams;\nfunction parseArguments(arg1, arg2) {\n let paramConfigMap;\n let options;\n if (arg1 === void 0) {\n paramConfigMap = {};\n options = arg2;\n } else if (Array.isArray(arg1)) {\n paramConfigMap = Object.fromEntries(\n arg1.map((key) => [key, \"inherit\"])\n );\n options = arg2;\n } else {\n paramConfigMap = arg1;\n options = arg2;\n }\n return { paramConfigMap, options };\n}\nexport {\n useQueryParams_default as default,\n useQueryParams\n};\n//# sourceMappingURL=useQueryParams.js.map\n"],"names":["withDefault","param","defaultValue","includeNull","args","decodedValue","getEncodedValue","input","allowEmptyString","str","getEncodedValueArray","encodeString","decodeString","encodeArray","array","decodeArray","arr","StringParam","Serialize.encodeString","Serialize.decodeString","ArrayParam","Serialize.encodeArray","Serialize.decodeArray","objectToSearchString","encodedParams","params","entries","key","value","item","d","encodeQueryParams","paramConfigMap","query","encodedQuery","paramNames","paramName","searchStringToObject","searchString","parsed","DecodedParamCache","stringifiedValue","decode","cachedParam","_a","currValue","decodedParamCache","convertInheritedParamStringsToParams","paramConfigMapWithInherit","options","_b","_c","hasInherit","hookKeys","paramKeys","knownKeys","extendParamConfigForKeys","baseParamConfigMap","inheritedParams","defaultParam","paramKey","hasOwnProperty","is","x","y","shallowEqual","objA","objB","equalMap","keysA","keysB","i","isEqual","getLatestDecodedValues","parsedParams","decodedValues","paramConfig","encodedValue","oldDecodedValue","makeStableGetLatestDecodedValues","prevDecodedValues","stableGetLatest","serializeUrlNameMap","urlNameMapParts","part","deserializeUrlNameMap","urlNameMapStr","applyUrlNames","encodedValues","newEncodedValues","cachedSearchString","cachedUrlNameMapString","cachedSearchStringToObjectFn","cachedParsedQuery","memoSearchStringToObject","newParsedQuery","urlNameMap","oldValue","defaultOptions","mergeOptions","parentOptions","currOptions","merged","providerlessContextValue","QueryParamContext","React.createContext","useQueryParamContext","React.useContext","QueryParamProviderInner","children","adapter","parentAdapter","React.useMemo","React.createElement","QueryParamProvider","Adapter","adapter2","removeDefaults","getUpdatedSearchString","changes","updateType","currentSearchString","encodedChanges","changesToUse","latestValues","newSearchString","updateSearchString","navigate","newLocation","immediateTask","task","timeoutTask","updateQueue","enqueueUpdate","immediate","scheduleTask","updates","initialSearchString","modifiedUpdate","useQueryParams","arg1","arg2","contextOptions","useState","parseArguments","mergedOptions","useMemo","paramKeyString","useEffect","callbackDependencies","callbackDependenciesRef","useRef","setQuery","paramConfigMap2","options2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}