{"version":3,"file":"static/js/1087.82b3e8c4.chunk.js","mappings":"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","sources":["../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx"],"sourcesContent":["import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n for (let key of defaultSearchParams.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides `
`.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a