remix-validated-form 4.6.1-beta.0 → 4.6.1
Sign up to get free protection for your applications and to get access to all the features.
- package/.turbo/turbo-build.log +10 -10
- package/browser/ValidatedForm.js +3 -3
- package/browser/hooks.d.ts +8 -8
- package/browser/internal/flatten.d.ts +1 -1
- package/browser/internal/flatten.js +2 -2
- package/browser/internal/getInputProps.js +2 -2
- package/browser/internal/hooks.d.ts +4 -2
- package/browser/internal/hooks.js +3 -3
- package/browser/internal/logic/requestSubmit.d.ts +1 -1
- package/browser/internal/state/arrayUtil.js +5 -6
- package/browser/internal/state/createFormStore.js +5 -6
- package/browser/internal/state/fieldArray.js +1 -1
- package/browser/internal/util.js +2 -2
- package/browser/unreleased/formStateHooks.d.ts +2 -2
- package/browser/userFacingFormContext.d.ts +1 -1
- package/browser/validation/createValidator.js +2 -2
- package/dist/remix-validated-form.cjs.js +4 -4
- package/dist/remix-validated-form.cjs.js.map +1 -1
- package/dist/remix-validated-form.es.js +35 -54
- package/dist/remix-validated-form.es.js.map +1 -1
- package/dist/remix-validated-form.umd.js +4 -4
- package/dist/remix-validated-form.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/internal/flatten.ts +2 -2
- package/stats.html +1 -1
package/.turbo/turbo-build.log
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
[2K[1G[2m$ vite build[22m
|
2
2
|
[36mvite v2.9.5 [32mbuilding for production...[36m[39m
|
3
3
|
transforming...
|
4
|
-
[32m✓[39m
|
4
|
+
[32m✓[39m 289 modules transformed.
|
5
5
|
rendering chunks...
|
6
|
-
[90m[37m[2mdist/[22m[90m[39m[36mremix-validated-form.cjs.js [39m [
|
7
|
-
[90m[37m[2mdist/[22m[90m[39m[90mremix-validated-form.cjs.js.map[39m [
|
8
|
-
[90m[37m[2mdist/[22m[90m[39m[36mremix-validated-form.es.js [39m [
|
9
|
-
[90m[37m[2mdist/[22m[90m[39m[90mremix-validated-form.es.js.map[39m [
|
10
|
-
|
11
|
-
|
12
|
-
[90m[37m[2mdist/[22m[90m[39m[36mremix-validated-form.umd.js [39m [2m56.65 KiB / gzip: 21.04 KiB[22m
|
13
|
-
[90m[37m[2mdist/[22m[90m[39m[90mremix-validated-form.umd.js.map[39m [2m351.78 KiB[22m
|
6
|
+
[90m[37m[2mdist/[22m[90m[39m[36mremix-validated-form.cjs.js [39m [2m32.64 KiB / gzip: 11.34 KiB[22m
|
7
|
+
[90m[37m[2mdist/[22m[90m[39m[90mremix-validated-form.cjs.js.map[39m [2m167.89 KiB[22m
|
8
|
+
[90m[37m[2mdist/[22m[90m[39m[36mremix-validated-form.es.js [39m [2m66.80 KiB / gzip: 15.63 KiB[22m
|
9
|
+
[90m[37m[2mdist/[22m[90m[39m[90mremix-validated-form.es.js.map[39m [2m165.46 KiB[22m
|
10
|
+
[90m[37m[2mdist/[22m[90m[39m[36mremix-validated-form.umd.js [39m [2m32.83 KiB / gzip: 11.41 KiB[22m
|
11
|
+
[90m[37m[2mdist/[22m[90m[39m[90mremix-validated-form.umd.js.map[39m [2m167.84 KiB[22m
|
14
12
|
[32m[39m
|
15
13
|
[32m[36m[vite:dts][39m[32m Start generate declaration files...[39m
|
16
|
-
[32m[36m[vite:dts][39m[32m Declaration files built in
|
14
|
+
[32m[36m[vite:dts][39m[32m Declaration files built in 2759ms.[39m
|
17
15
|
[32m[39m
|
16
|
+
No name was provided for external module 'react' in output.globals – guessing 'React'
|
17
|
+
No name was provided for external module '@remix-run/react' in output.globals – guessing 'react'
|
package/browser/ValidatedForm.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
2
2
|
import { Form as RemixForm, useSubmit, } from "@remix-run/react";
|
3
|
-
import uniq from "lodash/uniq";
|
4
3
|
import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
|
4
|
+
import * as R from "remeda";
|
5
5
|
import { useIsSubmitting, useIsValid } from "./hooks";
|
6
6
|
import { FORM_ID_FIELD } from "./internal/constants";
|
7
7
|
import { InternalFormContext, } from "./internal/formContext";
|
@@ -26,7 +26,7 @@ const focusFirstInvalidInput = (fieldErrors, customFocusHandlers, formElement) =
|
|
26
26
|
})
|
27
27
|
.filter(nonNull)
|
28
28
|
.filter((name) => name in fieldErrors);
|
29
|
-
const uniqueNamesInOrder = uniq(namesInOrder);
|
29
|
+
const uniqueNamesInOrder = R.uniq(namesInOrder);
|
30
30
|
for (const fieldName of uniqueNamesInOrder) {
|
31
31
|
if (customFocusHandlers.has(fieldName)) {
|
32
32
|
customFocusHandlers.getAll(fieldName).forEach((handler) => {
|
@@ -206,5 +206,5 @@ export function ValidatedForm({ validator, onSubmit, children, fetcher, action,
|
|
206
206
|
if (event.defaultPrevented)
|
207
207
|
return;
|
208
208
|
reset();
|
209
|
-
}, children: _jsx(InternalFormContext.Provider, { value: contextValue, children: _jsxs(_Fragment, { children: [_jsx(FormResetter, { formRef: formRef, resetAfterSubmit: resetAfterSubmit }
|
209
|
+
}, children: _jsx(InternalFormContext.Provider, { value: contextValue, children: _jsxs(_Fragment, { children: [_jsx(FormResetter, { formRef: formRef, resetAfterSubmit: resetAfterSubmit }), subaction && (_jsx("input", { type: "hidden", value: subaction, name: "subaction" })), id && _jsx("input", { type: "hidden", value: id, name: FORM_ID_FIELD }), children] }) }) }));
|
210
210
|
}
|
package/browser/hooks.d.ts
CHANGED
@@ -6,13 +6,13 @@ import { GetInputProps, ValidationBehaviorOptions } from "./internal/getInputPro
|
|
6
6
|
*
|
7
7
|
* @param formId
|
8
8
|
*/
|
9
|
-
export declare const useIsSubmitting: (formId?: string
|
9
|
+
export declare const useIsSubmitting: (formId?: string) => boolean;
|
10
10
|
/**
|
11
11
|
* Returns whether or not the current form is valid.
|
12
12
|
*
|
13
13
|
* @param formId the id of the form. Only necessary if being used outside a ValidatedForm.
|
14
14
|
*/
|
15
|
-
export declare const useIsValid: (formId?: string
|
15
|
+
export declare const useIsValid: (formId?: string) => boolean;
|
16
16
|
export declare type FieldProps = {
|
17
17
|
/**
|
18
18
|
* The validation error message if there is one.
|
@@ -52,16 +52,16 @@ export declare const useField: (name: string, options?: {
|
|
52
52
|
* when the input needs to receive focus due to a validation error.
|
53
53
|
* This is useful for custom components that use a hidden input.
|
54
54
|
*/
|
55
|
-
handleReceiveFocus?: (
|
55
|
+
handleReceiveFocus?: () => void;
|
56
56
|
/**
|
57
57
|
* Allows you to specify when a field gets validated (when using getInputProps)
|
58
58
|
*/
|
59
|
-
validationBehavior?: Partial<ValidationBehaviorOptions
|
59
|
+
validationBehavior?: Partial<ValidationBehaviorOptions>;
|
60
60
|
/**
|
61
61
|
* The formId of the form you want to use.
|
62
62
|
* This is not necesary if the input is used inside a form.
|
63
63
|
*/
|
64
|
-
formId?: string
|
65
|
-
}
|
66
|
-
export declare const useControlField: <T>(name: string, formId?: string
|
67
|
-
export declare const useUpdateControlledField: (formId?: string
|
64
|
+
formId?: string;
|
65
|
+
}) => FieldProps;
|
66
|
+
export declare const useControlField: <T>(name: string, formId?: string) => readonly [T, (value: T) => void];
|
67
|
+
export declare const useUpdateControlledField: (formId?: string) => (field: string, value: unknown) => void;
|
@@ -1 +1 @@
|
|
1
|
-
export declare const objectFromPathEntries: (entries: [string, any][]) =>
|
1
|
+
export declare const objectFromPathEntries: (entries: [string, any][]) => Record<string, any>;
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import
|
1
|
+
import { setPath } from "setGet";
|
2
2
|
import { MultiValueMap } from "./MultiValueMap";
|
3
3
|
export const objectFromPathEntries = (entries) => {
|
4
4
|
const map = new MultiValueMap();
|
5
5
|
entries.forEach(([key, value]) => map.add(key, value));
|
6
|
-
return [...map.entries()].reduce((acc, [key, value]) =>
|
6
|
+
return [...map.entries()].reduce((acc, [key, value]) => setPath(acc, key, value.length === 1 ? value[0] : value), {});
|
7
7
|
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import * as R from "remeda";
|
2
2
|
import { getCheckboxChecked } from "./logic/getCheckboxChecked";
|
3
3
|
import { getRadioChecked } from "./logic/getRadioChecked";
|
4
4
|
const defaultValidationBehavior = {
|
@@ -46,6 +46,6 @@ export const createGetInputProps = ({ clearError, validate, defaultValue, touche
|
|
46
46
|
// We should only set the defaultValue if the input is uncontrolled.
|
47
47
|
inputProps.defaultValue = defaultValue;
|
48
48
|
}
|
49
|
-
return omitBy(inputProps, (value) => value === undefined);
|
49
|
+
return R.omitBy(inputProps, (value) => value === undefined);
|
50
50
|
};
|
51
51
|
};
|
@@ -2,7 +2,7 @@ import { FieldErrors, ValidationErrorResponseData } from "..";
|
|
2
2
|
import { InternalFormContextValue } from "./formContext";
|
3
3
|
import { Hydratable } from "./hydratable";
|
4
4
|
import { InternalFormId } from "./state/types";
|
5
|
-
export declare const useInternalFormContext: (formId?: string | symbol
|
5
|
+
export declare const useInternalFormContext: (formId?: string | symbol, hookName?: string) => InternalFormContextValue;
|
6
6
|
export declare function useErrorResponseForForm({ fetcher, subaction, formId, }: InternalFormContextValue): ValidationErrorResponseData | null;
|
7
7
|
export declare const useFieldErrorsForForm: (context: InternalFormContextValue) => Hydratable<FieldErrors | undefined>;
|
8
8
|
export declare const useDefaultValuesFromLoader: ({ formId, }: InternalFormContextValue) => any;
|
@@ -21,7 +21,9 @@ export declare const useInternalHasBeenSubmitted: (formId: InternalFormId) => bo
|
|
21
21
|
export declare const useValidateField: (formId: InternalFormId) => (fieldName: string) => Promise<string | null>;
|
22
22
|
export declare const useValidate: (formId: InternalFormId) => () => Promise<import("..").ValidationResult<unknown>>;
|
23
23
|
export declare const useRegisterReceiveFocus: (formId: InternalFormId) => (fieldName: string, handler: () => void) => () => void;
|
24
|
-
export declare const useSyncedDefaultValues: (formId: InternalFormId) => {
|
24
|
+
export declare const useSyncedDefaultValues: (formId: InternalFormId) => {
|
25
|
+
[fieldName: string]: any;
|
26
|
+
};
|
25
27
|
export declare const useSetTouched: ({ formId }: InternalFormContextValue) => (field: string, touched: boolean) => void;
|
26
28
|
export declare const useTouchedFields: (formId: InternalFormId) => import("..").TouchedFields;
|
27
29
|
export declare const useFieldErrors: (formId: InternalFormId) => FieldErrors;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { useActionData, useMatches, useTransition } from "@remix-run/react";
|
2
|
-
import lodashGet from "lodash/get";
|
3
2
|
import { useCallback, useContext } from "react";
|
3
|
+
import { getPath } from "setGet";
|
4
4
|
import invariant from "tiny-invariant";
|
5
5
|
import { formDefaultValuesKey } from "./constants";
|
6
6
|
import { InternalFormContext } from "./formContext";
|
@@ -92,11 +92,11 @@ export const useClearError = (context) => {
|
|
92
92
|
const { formId } = context;
|
93
93
|
return useFormStore(formId, (state) => state.clearFieldError);
|
94
94
|
};
|
95
|
-
export const useCurrentDefaultValueForField = (formId, field) => useFormStore(formId, (state) =>
|
95
|
+
export const useCurrentDefaultValueForField = (formId, field) => useFormStore(formId, (state) => getPath(state.currentDefaultValues, field));
|
96
96
|
export const useFieldDefaultValue = (name, context) => {
|
97
97
|
const defaultValues = useDefaultValuesForForm(context);
|
98
98
|
const state = useCurrentDefaultValueForField(context.formId, name);
|
99
|
-
return defaultValues.map((val) =>
|
99
|
+
return defaultValues.map((val) => getPath(val, name)).hydrateTo(state);
|
100
100
|
};
|
101
101
|
export const useInternalIsSubmitting = (formId) => useFormStore(formId, (state) => state.isSubmitting);
|
102
102
|
export const useInternalIsValid = (formId) => useFormStore(formId, (state) => state.isValid());
|
@@ -2,4 +2,4 @@
|
|
2
2
|
* Ponyfill of the HTMLFormElement.requestSubmit() method.
|
3
3
|
* Based on polyfill from: https://github.com/javan/form-request-submit-polyfill/blob/main/form-request-submit-polyfill.js
|
4
4
|
*/
|
5
|
-
export declare const requestSubmit: (element: HTMLFormElement, submitter?: HTMLElement
|
5
|
+
export declare const requestSubmit: (element: HTMLFormElement, submitter?: HTMLElement) => void;
|
@@ -1,15 +1,14 @@
|
|
1
|
-
import
|
2
|
-
import lodashSet from "lodash/set";
|
1
|
+
import { getPath, setPath } from "setGet";
|
3
2
|
import invariant from "tiny-invariant";
|
4
3
|
////
|
5
4
|
// All of these array helpers are written in a way that mutates the original array.
|
6
5
|
// This is because we're working with immer.
|
7
6
|
////
|
8
7
|
export const getArray = (values, field) => {
|
9
|
-
const value =
|
8
|
+
const value = getPath(values, field);
|
10
9
|
if (value === undefined || value === null) {
|
11
10
|
const newValue = [];
|
12
|
-
|
11
|
+
setPath(values, field, newValue);
|
13
12
|
return newValue;
|
14
13
|
}
|
15
14
|
invariant(Array.isArray(value), `FieldArray: defaultValue value for ${field} must be an array, null, or undefined`);
|
@@ -71,8 +70,8 @@ export const mutateAsArray = (field, obj, mutate) => {
|
|
71
70
|
for (const [key, value] of Object.entries(obj)) {
|
72
71
|
if (key.startsWith(field) && key !== field) {
|
73
72
|
beforeKeys.add(key);
|
73
|
+
setPath(arr, key.substring(field.length), value);
|
74
74
|
}
|
75
|
-
lodashSet(arr, key.substring(field.length), value);
|
76
75
|
}
|
77
76
|
mutate(arr);
|
78
77
|
for (const key of beforeKeys) {
|
@@ -80,7 +79,7 @@ export const mutateAsArray = (field, obj, mutate) => {
|
|
80
79
|
}
|
81
80
|
const newKeys = getDeepArrayPaths(arr);
|
82
81
|
for (const key of newKeys) {
|
83
|
-
const val =
|
82
|
+
const val = getPath(arr, key);
|
84
83
|
obj[`${field}${key}`] = val;
|
85
84
|
}
|
86
85
|
};
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import
|
2
|
-
import lodashSet from "lodash/set";
|
1
|
+
import { getPath, setPath } from "setGet";
|
3
2
|
import invariant from "tiny-invariant";
|
4
3
|
import create from "zustand";
|
5
4
|
import { immer } from "zustand/middleware/immer";
|
@@ -177,16 +176,16 @@ const createFormState = (set, get) => ({
|
|
177
176
|
const isNested = Object.keys(state.controlledFields.refCounts).some((key) => fieldName.startsWith(key) && key !== fieldName);
|
178
177
|
// When nested within a field array, we should leave resetting up to the field array
|
179
178
|
if (!isNested) {
|
180
|
-
|
181
|
-
|
179
|
+
setPath(state.controlledFields.values, fieldName, getPath((_b = state.formProps) === null || _b === void 0 ? void 0 : _b.defaultValues, fieldName));
|
180
|
+
setPath(state.currentDefaultValues, fieldName, getPath((_c = state.formProps) === null || _c === void 0 ? void 0 : _c.defaultValues, fieldName));
|
182
181
|
}
|
183
182
|
delete state.controlledFields.refCounts[fieldName];
|
184
183
|
});
|
185
184
|
},
|
186
|
-
getValue: (fieldName) =>
|
185
|
+
getValue: (fieldName) => getPath(get().controlledFields.values, fieldName),
|
187
186
|
setValue: (fieldName, value) => {
|
188
187
|
set((state) => {
|
189
|
-
|
188
|
+
setPath(state.controlledFields.values, fieldName, value);
|
190
189
|
});
|
191
190
|
get().controlledFields.kickoffValueUpdate(fieldName);
|
192
191
|
},
|
@@ -70,5 +70,5 @@ export function useFieldArray(name, { formId, validationBehavior } = {}) {
|
|
70
70
|
export const FieldArray = ({ name, children, formId, validationBehavior, }) => {
|
71
71
|
const context = useInternalFormContext(formId, "FieldArray");
|
72
72
|
const [value, helpers, error] = useInternalFieldArray(context, name, validationBehavior);
|
73
|
-
return _jsx(_Fragment, { children: children(value, helpers, error) }
|
73
|
+
return _jsx(_Fragment, { children: children(value, helpers, error) });
|
74
74
|
};
|
package/browser/internal/util.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import isEqual from "lodash/isEqual";
|
2
1
|
import { useEffect, useLayoutEffect, useRef } from "react";
|
2
|
+
import * as R from "remeda";
|
3
3
|
export const omit = (obj, ...keys) => {
|
4
4
|
const result = { ...obj };
|
5
5
|
for (const key of keys) {
|
@@ -22,7 +22,7 @@ export const mergeRefs = (refs) => {
|
|
22
22
|
export const useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
23
23
|
export const useDeepEqualsMemo = (item) => {
|
24
24
|
const ref = useRef(item);
|
25
|
-
const areEqual = ref.current === item ||
|
25
|
+
const areEqual = ref.current === item || R.equals(ref.current, item);
|
26
26
|
useEffect(() => {
|
27
27
|
if (!areEqual) {
|
28
28
|
ref.current = item;
|
@@ -16,7 +16,7 @@ export declare type FormState = {
|
|
16
16
|
*
|
17
17
|
* @param formId the id of the form. Only necessary if being used outside a ValidatedForm.
|
18
18
|
*/
|
19
|
-
export declare const useFormState: (formId?: string
|
19
|
+
export declare const useFormState: (formId?: string) => FormState;
|
20
20
|
export declare type FormHelpers = {
|
21
21
|
/**
|
22
22
|
* Clear the error of the specified field.
|
@@ -61,4 +61,4 @@ export declare type FormHelpers = {
|
|
61
61
|
*
|
62
62
|
* @param formId the id of the form. Only necessary if being used outside a ValidatedForm.
|
63
63
|
*/
|
64
|
-
export declare const useFormHelpers: (formId?: string
|
64
|
+
export declare const useFormHelpers: (formId?: string) => FormHelpers;
|
@@ -82,4 +82,4 @@ export declare type FormContextValue = {
|
|
82
82
|
/**
|
83
83
|
* Provides access to some of the internal state of the form.
|
84
84
|
*/
|
85
|
-
export declare const useFormContext: (formId?: string
|
85
|
+
export declare const useFormContext: (formId?: string) => FormContextValue;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import * as R from "remeda";
|
2
2
|
import { FORM_ID_FIELD } from "../internal/constants";
|
3
3
|
import { objectFromPathEntries } from "../internal/flatten";
|
4
4
|
const preprocessFormData = (data) => {
|
@@ -8,7 +8,7 @@ const preprocessFormData = (data) => {
|
|
8
8
|
return objectFromPathEntries([...data.entries()]);
|
9
9
|
return objectFromPathEntries(Object.entries(data));
|
10
10
|
};
|
11
|
-
const omitInternalFields = (data) => omit(data, FORM_ID_FIELD);
|
11
|
+
const omitInternalFields = (data) => R.omit(data, [FORM_ID_FIELD]);
|
12
12
|
/**
|
13
13
|
* Used to create a validator for a form.
|
14
14
|
* It provides built-in handling for unflattening nested objects and
|
@@ -1,4 +1,4 @@
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var p=require("react"),
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var p=require("react"),K=require("@remix-run/react");function Ht(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var P=Ht(p),Lt=globalThis&&globalThis.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,u;n<o;n++)(u||!(n in t))&&(u||(u=Array.prototype.slice.call(t,0,n)),u[n]=t[n]);return e.concat(u||Array.prototype.slice.call(t))};function Q(e,t,r){var n=e.length-t.length,o=Array.from(t);if(n===0)return e.apply(void 0,o);if(n===1){var u=function(s){return e.apply(void 0,Lt([s],o,!1))};return(r||e.lazy)&&(u.lazy=r||e.lazy,u.lazyArgs=t),u}throw new Error("Wrong number of arguments")}function zt(e,t,r){return e.reduce(function(n,o,u){var s=r?t(o,u,e):t(o);return s.hasMany===!0?n.push.apply(n,s.next):s.hasNext===!0&&n.push(s.next),n},[])}var Qe=Array.isArray,Ze=Object.keys,Bt=Object.prototype.hasOwnProperty;function Ee(){return Q(qt,arguments)}function qt(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var r=Qe(e),n=Qe(t),o=void 0,u=void 0,s=void 0;if(r&&n){if(u=e.length,u!==t.length)return!1;for(o=u;o--!==0;)if(!Ee(e[o],t[o]))return!1;return!0}if(r!==n)return!1;var i=e instanceof Date,a=t instanceof Date;if(i!==a)return!1;if(i&&a)return e.getTime()===t.getTime();var l=e instanceof RegExp,c=t instanceof RegExp;if(l!==c)return!1;if(l&&c)return e.toString()===t.toString();var v=Ze(e);if(u=v.length,u!==Ze(t).length)return!1;for(o=u;o--!==0;)if(!Bt.call(t,v[o]))return!1;for(o=u;o--!==0;)if(s=v[o],!Ee(e[s],t[s]))return!1;return!0}return e!==e&&t!==t}function Kt(){return Q(Wt,arguments)}function Wt(e,t){var r=new Set(t);return Object.entries(e).reduce(function(n,o){var u=o[0],s=o[1];return r.has(u)||(n[u]=s),n},{})}function Gt(){return Q(Jt,arguments)}function Jt(e,t){return Object.keys(e).reduce(function(r,n){return t(e[n],n)||(r[n]=e[n]),r},{})}function Xt(){return Q(Qt,arguments)}function Qt(e,t,r){for(var n=e,o=0,u=t;o<u.length;o++){var s=u[o];if(n==null||n[s]==null)return r;n=n[s]}return n}function W(){return Q(Zt,arguments,W.lazy)}function Zt(e){return zt(e,W.lazy())}(function(e){function t(){var r=new Set;return function(n){return r.has(n)?{done:!1,hasNext:!1}:(r.add(n),{done:!1,hasNext:!0,next:n})}}e.lazy=t})(W||(W={}));const Yt=(e="on",t)=>{if(Array.isArray(t))return t.some(r=>r===!0||r===e);if(typeof t=="boolean")return t;if(typeof t=="string")return t===e},Nt=(e="on",t)=>{if(typeof t=="string")return t===e},er={initial:"onBlur",whenTouched:"onChange",whenSubmitted:"onChange"},tr=({clearError:e,validate:t,defaultValue:r,touched:n,setTouched:o,hasBeenSubmitted:u,validationBehavior:s,name:i})=>{const a={...er,...s};return(l={})=>{const c=u?a.whenSubmitted:n?a.whenTouched:a.initial,v={...l,onChange:(...h)=>{var f;return c==="onChange"?t():e(),(f=l==null?void 0:l.onChange)==null?void 0:f.call(l,...h)},onBlur:(...h)=>{var f;return c==="onBlur"&&t(),o(!0),(f=l==null?void 0:l.onBlur)==null?void 0:f.call(l,...h)},name:i};return l.type==="checkbox"?v.defaultChecked=Yt(l.value,r):l.type==="radio"?v.defaultChecked=Nt(l.value,r):l.value===void 0&&(v.defaultValue=r),Gt(v,h=>h===void 0)}},Oe=e=>{if(e.length===0)return[];const t=e.match(/^\[(.+?)\](.*)$/)||e.match(/^\.?([^\.\[\]]+)(.*)$/);if(t){const[r,n,o]=t;return[/^\d+$/.test(n)?Number(n):n,...Oe(o)]}return[e]};function $(e,t,r){return rr(e,Oe(t),r)}function rr(e,t,r){var s;const n=t.slice(0,-1),o=t[t.length-1];let u=e;for(let i=0;i<n.length;i++){const a=n[i];if(u[a]===void 0){const l=(s=n[i+1])!=null?s:o;u[a]=typeof l=="number"?[]:{}}u=u[a]}return u[o]=r,e}const _=(e,t)=>Xt(e,Oe(t),void 0);var nr=!0,de="Invariant failed";function j(e,t){if(!e){if(nr)throw new Error(de);var r=typeof t=="function"?t():t,n=r?de+": "+r:de;throw new Error(n)}}const q="__rvfInternalFormId",or="__rvfInternalFormDefaults",ct=e=>`${or}_${e}`,ft=p.createContext(null),Ce=e=>({hydrateTo:()=>e,map:t=>Ce(t(e))}),Ae=()=>({hydrateTo:e=>e,map:()=>Ae()}),ur=(e,t)=>t?Ae():Ce(e),z={serverData:Ce,hydratedData:Ae,from:ur},Ye=e=>{let t;const r=new Set,n=(a,l)=>{const c=typeof a=="function"?a(t):a;if(c!==t){const v=t;t=l?c:Object.assign({},t,c),r.forEach(h=>h(t,v))}},o=()=>t,i={setState:n,getState:o,subscribe:a=>(r.add(a),()=>r.delete(a)),destroy:()=>r.clear()};return t=e(n,o,i),i},sr=e=>e?Ye(e):Ye;var dt={exports:{}},mt={},vt={exports:{}},ht={};/**
|
2
2
|
* @license React
|
3
3
|
* use-sync-external-store-shim.production.min.js
|
4
4
|
*
|
@@ -6,7 +6,7 @@
|
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
9
|
-
*/var
|
9
|
+
*/var x=P.default;function ir(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var lr=typeof Object.is=="function"?Object.is:ir,ar=x.useState,cr=x.useEffect,fr=x.useLayoutEffect,dr=x.useDebugValue;function mr(e,t){var r=t(),n=ar({inst:{value:r,getSnapshot:t}}),o=n[0].inst,u=n[1];return fr(function(){o.value=r,o.getSnapshot=t,me(o)&&u({inst:o})},[e,r,t]),cr(function(){return me(o)&&u({inst:o}),e(function(){me(o)&&u({inst:o})})},[e]),dr(r),r}function me(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!lr(e,r)}catch{return!0}}function vr(e,t){return t()}var hr=typeof window=="undefined"||typeof window.document=="undefined"||typeof window.document.createElement=="undefined"?vr:mr;ht.useSyncExternalStore=x.useSyncExternalStore!==void 0?x.useSyncExternalStore:hr;vt.exports=ht;/**
|
10
10
|
* @license React
|
11
11
|
* use-sync-external-store-shim/with-selector.production.min.js
|
12
12
|
*
|
@@ -14,7 +14,7 @@
|
|
14
14
|
*
|
15
15
|
* This source code is licensed under the MIT license found in the
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
17
|
-
*/var ce=P.default,br=ht.exports;function gr(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Er=typeof Object.is=="function"?Object.is:gr,Sr=br.useSyncExternalStore,Vr=ce.useRef,Pr=ce.useEffect,wr=ce.useMemo,Ir=ce.useDebugValue;vt.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var u=Vr(null);if(u.current===null){var s={hasValue:!1,value:null};u.current=s}else s=u.current;u=wr(function(){function a(f){if(!l){if(l=!0,c=f,f=n(f),o!==void 0&&s.hasValue){var F=s.value;if(o(F,f))return v=F}return v=f}if(F=v,Er(c,f))return F;var y=n(f);return o!==void 0&&o(F,y)?F:(c=f,v=y)}var l=!1,c,v,h=r===void 0?null:r;return[function(){return a(t())},h===null?void 0:function(){return a(h())}]},[t,r,n,o]);var i=Sr(e,u[0],u[1]);return Pr(function(){s.hasValue=!0,s.value=i},[i]),Ir(i),i};mt.exports=vt;function Dr(e,t=e.getState,r){const n=mt.exports.useSyncExternalStoreWithSelector(e.subscribe,e.getState,e.getServerState||e.getState,t,r);return p.useDebugValue(n),n}const et=e=>{const t=typeof e=="function"?ar(e):e,r=(n,o)=>Dr(t,n,o);return Object.assign(r,t),r},Or=e=>e?et(e):et;var Cr=Or;function w(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map(function(o){return"'"+o+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function x(e){return!!e&&!!e[S]}function U(e){return!!e&&(function(t){if(!t||typeof t!="object")return!1;var r=Object.getPrototypeOf(t);if(r===null)return!0;var n=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return n===Object||typeof n=="function"&&Function.toString.call(n)===Ur}(e)||Array.isArray(e)||!!e[lt]||!!e.constructor[lt]||je(e)||ke(e))}function J(e,t,r){r===void 0&&(r=!1),L(e)===0?(r?Object.keys:$e)(e).forEach(function(n){r&&typeof n=="symbol"||t(n,e[n],e)}):e.forEach(function(n,o){return t(o,n,e)})}function L(e){var t=e[S];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:je(e)?2:ke(e)?3:0}function Se(e,t){return L(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Ar(e,t){return L(e)===2?e.get(t):e[t]}function yt(e,t,r){var n=L(e);n===2?e.set(t,r):n===3?(e.delete(t),e.add(r)):e[t]=r}function Tr(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function je(e){return Rr&&e instanceof Map}function ke(e){return Mr&&e instanceof Set}function R(e){return e.o||e.t}function _e(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=$r(e);delete t[S];for(var r=$e(t),n=0;n<r.length;n++){var o=r[n],u=t[o];u.writable===!1&&(u.writable=!0,u.configurable=!0),(u.get||u.set)&&(t[o]={configurable:!0,writable:!0,enumerable:u.enumerable,value:e[o]})}return Object.create(Object.getPrototypeOf(e),t)}function Re(e,t){return t===void 0&&(t=!1),Me(e)||x(e)||!U(e)||(L(e)>1&&(e.set=e.add=e.clear=e.delete=jr),Object.freeze(e),t&&J(e,function(r,n){return Re(n,!0)},!0)),e}function jr(){w(2)}function Me(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function D(e){var t=xr[e];return t||w(18,e),t}function tt(){return X}function he(e,t){t&&(D("Patches"),e.u=[],e.s=[],e.v=t)}function ie(e){Ve(e),e.p.forEach(kr),e.p=null}function Ve(e){e===X&&(X=e.l)}function rt(e){return X={p:[],l:X,h:e,m:!0,_:0}}function kr(e){var t=e[S];t.i===0||t.i===1?t.j():t.O=!0}function pe(e,t){t._=t.p.length;var r=t.p[0],n=e!==void 0&&e!==r;return t.h.g||D("ES5").S(t,e,n),n?(r[S].P&&(ie(t),w(4)),U(e)&&(e=le(t,e),t.l||ae(t,e)),t.u&&D("Patches").M(r[S].t,e,t.u,t.s)):e=le(t,r,[]),ie(t),t.u&&t.v(t.u,t.s),e!==Ft?e:void 0}function le(e,t,r){if(Me(t))return t;var n=t[S];if(!n)return J(t,function(u,s){return nt(e,n,t,u,s,r)},!0),t;if(n.A!==e)return t;if(!n.P)return ae(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var o=n.i===4||n.i===5?n.o=_e(n.k):n.o;J(n.i===3?new Set(o):o,function(u,s){return nt(e,n,o,u,s,r)}),ae(e,o,!1),r&&e.u&&D("Patches").R(n,r,e.u,e.s)}return n.o}function nt(e,t,r,n,o,u){if(x(o)){var s=le(e,o,u&&t&&t.i!==3&&!Se(t.D,n)?u.concat(n):void 0);if(yt(r,n,s),!x(s))return;e.m=!1}if(U(o)&&!Me(o)){if(!e.h.F&&e._<1)return;le(e,o),t&&t.A.l||ae(e,o)}}function ae(e,t,r){r===void 0&&(r=!1),e.h.F&&e.m&&Re(t,r)}function ye(e,t){var r=e[S];return(r?R(r):e)[t]}function ot(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function Pe(e){e.P||(e.P=!0,e.l&&Pe(e.l))}function Fe(e){e.o||(e.o=_e(e.t))}function we(e,t,r){var n=je(t)?D("MapSet").N(t,r):ke(t)?D("MapSet").T(t,r):e.g?function(o,u){var s=Array.isArray(o),i={i:s?1:0,A:u?u.A:tt(),P:!1,I:!1,D:{},l:u,t:o,k:null,o:null,j:null,C:!1},a=i,l=Ie;s&&(a=[i],l=B);var c=Proxy.revocable(a,l),v=c.revoke,h=c.proxy;return i.k=h,i.j=v,h}(t,r):D("ES5").J(t,r);return(r?r.A:tt()).p.push(n),n}function _r(e){return x(e)||w(22,e),function t(r){if(!U(r))return r;var n,o=r[S],u=L(r);if(o){if(!o.P&&(o.i<4||!D("ES5").K(o)))return o.t;o.I=!0,n=ut(r,u),o.I=!1}else n=ut(r,u);return J(n,function(s,i){o&&Ar(o.t,s)===i||yt(n,s,t(i))}),u===3?new Set(n):n}(e)}function ut(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return _e(e)}var st,X,Ue=typeof Symbol!="undefined"&&typeof Symbol("x")=="symbol",Rr=typeof Map!="undefined",Mr=typeof Set!="undefined",it=typeof Proxy!="undefined"&&Proxy.revocable!==void 0&&typeof Reflect!="undefined",Ft=Ue?Symbol.for("immer-nothing"):((st={})["immer-nothing"]=!0,st),lt=Ue?Symbol.for("immer-draftable"):"__$immer_draftable",S=Ue?Symbol.for("immer-state"):"__$immer_state",Ur=""+Object.prototype.constructor,$e=typeof Reflect!="undefined"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,$r=Object.getOwnPropertyDescriptors||function(e){var t={};return $e(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)}),t},xr={},Ie={get:function(e,t){if(t===S)return e;var r=R(e);if(!Se(r,t))return function(o,u,s){var i,a=ot(u,s);return a?"value"in a?a.value:(i=a.get)===null||i===void 0?void 0:i.call(o.k):void 0}(e,r,t);var n=r[t];return e.I||!U(n)?n:n===ye(e.t,t)?(Fe(e),e.o[t]=we(e.A.h,n,e)):n},has:function(e,t){return t in R(e)},ownKeys:function(e){return Reflect.ownKeys(R(e))},set:function(e,t,r){var n=ot(R(e),t);if(n!=null&&n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=ye(R(e),t),u=o==null?void 0:o[S];if(u&&u.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(Tr(r,o)&&(r!==void 0||Se(e.t,t)))return!0;Fe(e),Pe(e)}return e.o[t]===r&&typeof r!="number"&&(r!==void 0||t in e.o)||(e.o[t]=r,e.D[t]=!0,!0)},deleteProperty:function(e,t){return ye(e.t,t)!==void 0||t in e.t?(e.D[t]=!1,Fe(e),Pe(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=R(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty:function(){w(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){w(12)}},B={};J(Ie,function(e,t){B[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),B.deleteProperty=function(e,t){return B.set.call(this,e,t,void 0)},B.set=function(e,t,r){return Ie.set.call(this,e[0],t,r,e[0])};var Hr=function(){function e(r){var n=this;this.g=it,this.F=!0,this.produce=function(o,u,s){if(typeof o=="function"&&typeof u!="function"){var i=u;u=o;var a=n;return function(y){var A=this;y===void 0&&(y=i);for(var T=arguments.length,C=Array(T>1?T-1:0),k=1;k<T;k++)C[k-1]=arguments[k];return a.produce(y,function(fe){var _;return(_=u).call.apply(_,[A,fe].concat(C))})}}var l;if(typeof u!="function"&&w(6),s!==void 0&&typeof s!="function"&&w(7),U(o)){var c=rt(n),v=we(n,o,void 0),h=!0;try{l=u(v),h=!1}finally{h?ie(c):Ve(c)}return typeof Promise!="undefined"&&l instanceof Promise?l.then(function(y){return he(c,s),pe(y,c)},function(y){throw ie(c),y}):(he(c,s),pe(l,c))}if(!o||typeof o!="object"){if((l=u(o))===void 0&&(l=o),l===Ft&&(l=void 0),n.F&&Re(l,!0),s){var f=[],F=[];D("Patches").M(o,l,f,F),s(f,F)}return l}w(21,o)},this.produceWithPatches=function(o,u){if(typeof o=="function")return function(l){for(var c=arguments.length,v=Array(c>1?c-1:0),h=1;h<c;h++)v[h-1]=arguments[h];return n.produceWithPatches(l,function(f){return o.apply(void 0,[f].concat(v))})};var s,i,a=n.produce(o,u,function(l,c){s=l,i=c});return typeof Promise!="undefined"&&a instanceof Promise?a.then(function(l){return[l,s,i]}):[a,s,i]},typeof(r==null?void 0:r.useProxies)=="boolean"&&this.setUseProxies(r.useProxies),typeof(r==null?void 0:r.autoFreeze)=="boolean"&&this.setAutoFreeze(r.autoFreeze)}var t=e.prototype;return t.createDraft=function(r){U(r)||w(8),x(r)&&(r=_r(r));var n=rt(this),o=we(this,r,void 0);return o[S].C=!0,Ve(n),o},t.finishDraft=function(r,n){var o=r&&r[S],u=o.A;return he(u,n),pe(void 0,u)},t.setAutoFreeze=function(r){this.F=r},t.setUseProxies=function(r){r&&!it&&w(20),this.g=r},t.applyPatches=function(r,n){var o;for(o=n.length-1;o>=0;o--){var u=n[o];if(u.path.length===0&&u.op==="replace"){r=u.value;break}}o>-1&&(n=n.slice(o+1));var s=D("Patches").$;return x(r)?s(r,n):this.produce(r,function(i){return s(i,n)})},e}(),V=new Hr,Lr=V.produce;V.produceWithPatches.bind(V);V.setAutoFreeze.bind(V);V.setUseProxies.bind(V);V.applyPatches.bind(V);V.createDraft.bind(V);V.finishDraft.bind(V);const zr=e=>(t,r,n)=>(n.setState=(o,u,...s)=>{const i=typeof o=="function"?Lr(o):o;return t(i,u,...s)},e(n.setState,r,n)),Br=zr,qr=(e,t)=>{if(typeof Object.getPrototypeOf(e).requestSubmit=="function"){e.requestSubmit(t);return}if(t){Kr(e,t),t.click();return}const r=document.createElement("input");r.type="submit",r.hidden=!0,e.appendChild(r),r.click(),e.removeChild(r)};function Kr(e,t){t instanceof HTMLElement||be(TypeError,"parameter 1 is not of type 'HTMLElement'"),"type"in t&&t.type==="submit"||be(TypeError,"The specified element is not a submit button"),"form"in t&&t.form===e||be(DOMException,"The specified element is not owned by this form element","NotFoundError")}function be(e,t,r){throw new e("Failed to execute 'requestSubmit' on 'HTMLFormElement': "+t+".",r)}const g=(e,t)=>{const r=M(e,t);if(r==null){const n=[];return q(e,t,n),n}return j(Array.isArray(r),`FieldArray: defaultValue value for ${t} must be an array, null, or undefined`),r},te=(e,t,r)=>{const n=e[t],o=e[r],u=t in e,s=r in e;u?e[r]=n:delete e[r],s?e[t]=o:delete e[t]};function Q(e,t,r,n){return e.length<t&&n&&(e.length=t),arguments.length===4?e.splice(t,r,n):e.splice(t,r)}const re=(e,t,r)=>{const[n]=Q(e,t,1);Q(e,r,0,n)},ne=(e,t,r)=>{Q(e,t,0,r)},oe=(e,t)=>{Q(e,t,1)},ue=(e,t,r)=>{Q(e,t,1,r)},E=(e,t,r)=>{const n=new Set,o=[];for(const[s,i]of Object.entries(t))s.startsWith(e)&&s!==e&&(n.add(s),q(o,s.substring(e.length),i));r(o);for(const s of n)delete t[s];const u=De(o);for(const s of u){const i=M(o,s);t[`${e}${s}`]=i}},De=(e,t="")=>Array.isArray(e)?e.flatMap((r,n)=>De(r,`${t}[${n}]`)):typeof e=="object"?Object.keys(e).flatMap(r=>De(e[r],`${t}.${r}`)):[t],b=()=>{},Wr={isHydrated:!1,isSubmitting:!1,hasBeenSubmitted:!1,touchedFields:{},fieldErrors:{},formElement:null,isValid:()=>!0,startSubmit:b,endSubmit:b,setTouched:b,setFieldError:b,setFieldErrors:b,clearFieldError:b,currentDefaultValues:{},reset:()=>b,syncFormProps:b,setFormElement:b,validateField:async()=>null,validate:async()=>{throw new Error("Validate called before form was initialized.")},submit:async()=>{throw new Error("Submit called before form was initialized.")},resetFormElement:b,getValues:()=>new FormData,controlledFields:{values:{},refCounts:{},valueUpdatePromises:{},valueUpdateResolvers:{},register:b,unregister:b,setValue:b,getValue:b,kickoffValueUpdate:b,awaitValueUpdate:async()=>{throw new Error("AwaitValueUpdate called before form was initialized.")},array:{push:b,swap:b,move:b,insert:b,unshift:b,remove:b,pop:b,replace:b}}},Gr=(e,t)=>({isHydrated:!1,isSubmitting:!1,hasBeenSubmitted:!1,touchedFields:{},fieldErrors:{},formElement:null,currentDefaultValues:{},isValid:()=>Object.keys(t().fieldErrors).length===0,startSubmit:()=>e(r=>{r.isSubmitting=!0,r.hasBeenSubmitted=!0}),endSubmit:()=>e(r=>{r.isSubmitting=!1}),setTouched:(r,n)=>e(o=>{o.touchedFields[r]=n}),setFieldError:(r,n)=>e(o=>{o.fieldErrors[r]=n}),setFieldErrors:r=>e(n=>{n.fieldErrors=r}),clearFieldError:r=>e(n=>{delete n.fieldErrors[r]}),reset:()=>e(r=>{var o,u;r.fieldErrors={},r.touchedFields={},r.hasBeenSubmitted=!1;const n=(u=(o=r.formProps)==null?void 0:o.defaultValues)!=null?u:{};r.controlledFields.values=n,r.currentDefaultValues=n}),syncFormProps:r=>e(n=>{n.isHydrated||(n.controlledFields.values=r.defaultValues,n.currentDefaultValues=r.defaultValues),n.formProps=r,n.isHydrated=!0}),setFormElement:r=>{t().formElement!==r&&e(n=>{n.formElement=r})},validateField:async r=>{var s,i,a;const n=t().formElement;j(n,"Cannot find reference to form. This is probably a bug in remix-validated-form.");const o=(s=t().formProps)==null?void 0:s.validator;j(o,"Cannot validator. This is probably a bug in remix-validated-form."),await((a=(i=t().controlledFields).awaitValueUpdate)==null?void 0:a.call(i,r));const{error:u}=await o.validateField(new FormData(n),r);return u?(t().setFieldError(r,u),u):(t().clearFieldError(r),null)},validate:async()=>{var u;const r=t().formElement;j(r,"Cannot find reference to form. This is probably a bug in remix-validated-form.");const n=(u=t().formProps)==null?void 0:u.validator;j(n,"Cannot validator. This is probably a bug in remix-validated-form.");const o=await n.validate(new FormData(r));return o.error&&t().setFieldErrors(o.error.fieldErrors),o},submit:()=>{const r=t().formElement;j(r,"Cannot find reference to form. This is probably a bug in remix-validated-form."),qr(r)},getValues:()=>{var r;return new FormData((r=t().formElement)!=null?r:void 0)},resetFormElement:()=>{var r;return(r=t().formElement)==null?void 0:r.reset()},controlledFields:{values:{},refCounts:{},valueUpdatePromises:{},valueUpdateResolvers:{},register:r=>{e(n=>{var u;const o=(u=n.controlledFields.refCounts[r])!=null?u:0;n.controlledFields.refCounts[r]=o+1})},unregister:r=>{t()===null||t()===void 0||e(n=>{var s,i,a;const o=(s=n.controlledFields.refCounts[r])!=null?s:0;if(o>1){n.controlledFields.refCounts[r]=o-1;return}Object.keys(n.controlledFields.refCounts).some(l=>r.startsWith(l)&&l!==r)||(q(n.controlledFields.values,r,M((i=n.formProps)==null?void 0:i.defaultValues,r)),q(n.currentDefaultValues,r,M((a=n.formProps)==null?void 0:a.defaultValues,r))),delete n.controlledFields.refCounts[r]})},getValue:r=>M(t().controlledFields.values,r),setValue:(r,n)=>{e(o=>{q(o.controlledFields.values,r,n)}),t().controlledFields.kickoffValueUpdate(r)},kickoffValueUpdate:r=>{const n=()=>e(o=>{delete o.controlledFields.valueUpdateResolvers[r],delete o.controlledFields.valueUpdatePromises[r]});e(o=>{const u=new Promise(s=>{o.controlledFields.valueUpdateResolvers[r]=s}).then(n);o.controlledFields.valueUpdatePromises[r]=u})},awaitValueUpdate:async r=>{await t().controlledFields.valueUpdatePromises[r]},array:{push:(r,n)=>{e(o=>{g(o.controlledFields.values,r).push(n),g(o.currentDefaultValues,r).push(n)}),t().controlledFields.kickoffValueUpdate(r)},swap:(r,n,o)=>{e(u=>{te(g(u.controlledFields.values,r),n,o),te(g(u.currentDefaultValues,r),n,o),E(r,u.touchedFields,s=>te(s,n,o)),E(r,u.fieldErrors,s=>te(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)},move:(r,n,o)=>{e(u=>{re(g(u.controlledFields.values,r),n,o),re(g(u.currentDefaultValues,r),n,o),E(r,u.touchedFields,s=>re(s,n,o)),E(r,u.fieldErrors,s=>re(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)},insert:(r,n,o)=>{e(u=>{ne(g(u.controlledFields.values,r),n,o),ne(g(u.currentDefaultValues,r),n,o),E(r,u.touchedFields,s=>ne(s,n,!1)),E(r,u.fieldErrors,s=>ne(s,n,void 0))}),t().controlledFields.kickoffValueUpdate(r)},remove:(r,n)=>{e(o=>{oe(g(o.controlledFields.values,r),n),oe(g(o.currentDefaultValues,r),n),E(r,o.touchedFields,u=>oe(u,n)),E(r,o.fieldErrors,u=>oe(u,n))}),t().controlledFields.kickoffValueUpdate(r)},pop:r=>{e(n=>{g(n.controlledFields.values,r).pop(),g(n.currentDefaultValues,r).pop(),E(r,n.touchedFields,o=>o.pop()),E(r,n.fieldErrors,o=>o.pop())}),t().controlledFields.kickoffValueUpdate(r)},unshift:(r,n)=>{e(o=>{g(o.controlledFields.values,r).unshift(n),g(o.currentDefaultValues,r).unshift(n),E(r,o.touchedFields,u=>u.unshift(!1)),E(r,o.fieldErrors,u=>u.unshift(void 0))})},replace:(r,n,o)=>{e(u=>{ue(g(u.controlledFields.values,r),n,o),ue(g(u.currentDefaultValues,r),n,o),E(r,u.touchedFields,s=>ue(s,n,o)),E(r,u.fieldErrors,s=>ue(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)}}}}),Oe=Cr()(Br((e,t)=>({forms:{},form:r=>{var n;return(n=t().forms[r])!=null?n:Wr},cleanupForm:r=>{e(n=>{delete n.forms[r]})},registerForm:r=>{t().forms[r]||e(n=>{n.forms[r]=Gr(o=>e(u=>o(u.forms[r])),()=>t().forms[r])})}}))),d=(e,t)=>Oe(r=>t(r.form(e))),O=(e,t)=>{const r=p.useContext(dt);if(e)return{formId:e};if(r)return r;throw new Error(`Unable to determine form for ${t}. Please use it inside a ValidatedForm or pass a 'formId'.`)};function xe({fetcher:e,subaction:t,formId:r}){var o;const n=W.useActionData();return e?(o=e.data)!=null&&o.fieldErrors?e.data:null:n!=null&&n.fieldErrors?typeof r=="string"&&n.formId?n.formId===r?n:null:!t&&!n.subaction||n.subaction===t?n:null:null}const bt=e=>{const t=xe(e),r=d(e.formId,n=>n.isHydrated);return z.from(t==null?void 0:t.fieldErrors,r)},gt=({formId:e})=>{const t=W.useMatches();if(typeof e=="string"){const r=ft(e),n=t.reverse().find(o=>o.data&&r in o.data);return n==null?void 0:n.data[r]}return null},Et=e=>{const{formId:t,defaultValuesProp:r}=e,n=d(t,s=>s.isHydrated),o=xe(e),u=gt(e);return n?z.hydratedData():o!=null&&o.repopulateFields?(j(typeof o.repopulateFields=="object","repopulateFields returned something other than an object"),z.serverData(o.repopulateFields)):r?z.serverData(r):z.serverData(u)},Jr=({fetcher:e})=>{const t=W.useTransition();return e?e.state==="submitting":!!t.submission},Xr=(e,{formId:t})=>{const r=d(t,u=>u.touchedFields[e]),n=d(t,u=>u.setTouched),o=p.useCallback(u=>n(e,u),[e,n]);return[r,o]},St=(e,t)=>{const r=bt(t),n=d(t.formId,o=>o.fieldErrors[e]);return r.map(o=>o==null?void 0:o[e]).hydrateTo(n)},Vt=e=>{const{formId:t}=e;return d(t,r=>r.clearFieldError)},Qr=(e,t)=>d(e,r=>M(r.currentDefaultValues,t)),He=(e,t)=>{const r=Et(t),n=Qr(t.formId,e);return r.map(o=>M(o,e)).hydrateTo(n)},Pt=e=>d(e,t=>t.isSubmitting),wt=e=>d(e,t=>t.isValid()),Le=e=>d(e,t=>t.hasBeenSubmitted),ze=e=>d(e,t=>t.validateField),Zr=e=>d(e,t=>t.validate),Yr=()=>()=>{},It=e=>d(e,t=>{var r,n;return(n=(r=t.formProps)==null?void 0:r.registerReceiveFocus)!=null?n:Yr}),Nr={},en=e=>d(e,t=>{var r,n;return(n=(r=t.formProps)==null?void 0:r.defaultValues)!=null?n:Nr}),tn=({formId:e})=>d(e,t=>t.setTouched),rn=e=>d(e,t=>t.touchedFields),nn=e=>d(e,t=>t.fieldErrors),Dt=e=>d(e,t=>t.setFieldErrors),on=e=>d(e,t=>t.resetFormElement),un=e=>d(e,t=>t.submit),sn=e=>d(e,t=>{var r;return(r=t.formProps)==null?void 0:r.action}),ln=e=>d(e,t=>{var r;return(r=t.formProps)==null?void 0:r.subaction}),an=e=>d(e,t=>t.getValues),cn=(e,t)=>{const r=d(e.formId,u=>u.controlledFields.getValue(t)),n=d(e.formId,u=>u.isHydrated),o=He(t,e);return n?r:o},Ot=(e,t)=>{const r=d(e.formId,u=>u.controlledFields.valueUpdateResolvers[t]);p.useEffect(()=>{r==null||r()},[r]);const n=d(e.formId,u=>u.controlledFields.register),o=d(e.formId,u=>u.controlledFields.unregister);p.useEffect(()=>(n(t),()=>o(t)),[e.formId,t,n,o])},fn=(e,t)=>{Ot(e,t);const r=d(e.formId,u=>u.controlledFields.setValue),n=p.useCallback(u=>r(t,u),[t,r]);return[cn(e,t),n]},dn=e=>{const t=d(e,r=>r.controlledFields.setValue);return p.useCallback((r,n)=>t(r,n),[t])},Ct=e=>{const t=O(e,"useIsSubmitting");return Pt(t.formId)},At=e=>{const t=O(e,"useIsValid");return wt(t.formId)},mn=(e,t)=>{const{formId:r,handleReceiveFocus:n}=t!=null?t:{},o=O(r,"useField"),u=He(e,o),[s,i]=Xr(e,o),a=St(e,o),l=Vt(o),c=Le(o.formId),v=ze(o.formId),h=It(o.formId);return p.useEffect(()=>{if(n)return h(e,n)},[n,e,h]),p.useMemo(()=>{const F={error:a,clearError:()=>l(e),validate:()=>{v(e)},defaultValue:u,touched:s,setTouched:i},y=or({...F,name:e,hasBeenSubmitted:c,validationBehavior:t==null?void 0:t.validationBehavior});return{...F,getInputProps:y}},[a,l,u,s,i,e,c,t==null?void 0:t.validationBehavior,v])},vn=(e,t)=>{const r=O(t,"useControlField"),[n,o]=fn(r,e);return[n,o]},hn=e=>{const t=O(e,"useControlField");return dn(t.formId)};/**
|
17
|
+
*/var ae=P.default,pr=vt.exports;function yr(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Fr=typeof Object.is=="function"?Object.is:yr,br=pr.useSyncExternalStore,Er=ae.useRef,gr=ae.useEffect,Sr=ae.useMemo,Vr=ae.useDebugValue;mt.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var u=Er(null);if(u.current===null){var s={hasValue:!1,value:null};u.current=s}else s=u.current;u=Sr(function(){function a(f){if(!l){if(l=!0,c=f,f=n(f),o!==void 0&&s.hasValue){var F=s.value;if(o(F,f))return v=F}return v=f}if(F=v,Fr(c,f))return F;var y=n(f);return o!==void 0&&o(F,y)?F:(c=f,v=y)}var l=!1,c,v,h=r===void 0?null:r;return[function(){return a(t())},h===null?void 0:function(){return a(h())}]},[t,r,n,o]);var i=br(e,u[0],u[1]);return gr(function(){s.hasValue=!0,s.value=i},[i]),Vr(i),i};dt.exports=mt;function Pr(e,t=e.getState,r){const n=dt.exports.useSyncExternalStoreWithSelector(e.subscribe,e.getState,e.getServerState||e.getState,t,r);return p.useDebugValue(n),n}const Ne=e=>{const t=typeof e=="function"?sr(e):e,r=(n,o)=>Pr(t,n,o);return Object.assign(r,t),r},wr=e=>e?Ne(e):Ne;var Ir=wr;function w(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map(function(o){return"'"+o+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function H(e){return!!e&&!!e[S]}function U(e){return!!e&&(function(t){if(!t||typeof t!="object")return!1;var r=Object.getPrototypeOf(t);if(r===null)return!0;var n=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return n===Object||typeof n=="function"&&Function.toString.call(n)===Rr}(e)||Array.isArray(e)||!!e[it]||!!e.constructor[it]||Te(e)||je(e))}function G(e,t,r){r===void 0&&(r=!1),L(e)===0?(r?Object.keys:Ue)(e).forEach(function(n){r&&typeof n=="symbol"||t(n,e[n],e)}):e.forEach(function(n,o){return t(o,n,e)})}function L(e){var t=e[S];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:Te(e)?2:je(e)?3:0}function ge(e,t){return L(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Dr(e,t){return L(e)===2?e.get(t):e[t]}function pt(e,t,r){var n=L(e);n===2?e.set(t,r):n===3?(e.delete(t),e.add(r)):e[t]=r}function Or(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function Te(e){return jr&&e instanceof Map}function je(e){return kr&&e instanceof Set}function M(e){return e.o||e.t}function ke(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Mr(e);delete t[S];for(var r=Ue(t),n=0;n<r.length;n++){var o=r[n],u=t[o];u.writable===!1&&(u.writable=!0,u.configurable=!0),(u.get||u.set)&&(t[o]={configurable:!0,writable:!0,enumerable:u.enumerable,value:e[o]})}return Object.create(Object.getPrototypeOf(e),t)}function Re(e,t){return t===void 0&&(t=!1),Me(e)||H(e)||!U(e)||(L(e)>1&&(e.set=e.add=e.clear=e.delete=Cr),Object.freeze(e),t&&G(e,function(r,n){return Re(n,!0)},!0)),e}function Cr(){w(2)}function Me(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function D(e){var t=_r[e];return t||w(18,e),t}function et(){return J}function ve(e,t){t&&(D("Patches"),e.u=[],e.s=[],e.v=t)}function se(e){Se(e),e.p.forEach(Ar),e.p=null}function Se(e){e===J&&(J=e.l)}function tt(e){return J={p:[],l:J,h:e,m:!0,_:0}}function Ar(e){var t=e[S];t.i===0||t.i===1?t.j():t.O=!0}function he(e,t){t._=t.p.length;var r=t.p[0],n=e!==void 0&&e!==r;return t.h.g||D("ES5").S(t,e,n),n?(r[S].P&&(se(t),w(4)),U(e)&&(e=ie(t,e),t.l||le(t,e)),t.u&&D("Patches").M(r[S].t,e,t.u,t.s)):e=ie(t,r,[]),se(t),t.u&&t.v(t.u,t.s),e!==yt?e:void 0}function ie(e,t,r){if(Me(t))return t;var n=t[S];if(!n)return G(t,function(u,s){return rt(e,n,t,u,s,r)},!0),t;if(n.A!==e)return t;if(!n.P)return le(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var o=n.i===4||n.i===5?n.o=ke(n.k):n.o;G(n.i===3?new Set(o):o,function(u,s){return rt(e,n,o,u,s,r)}),le(e,o,!1),r&&e.u&&D("Patches").R(n,r,e.u,e.s)}return n.o}function rt(e,t,r,n,o,u){if(H(o)){var s=ie(e,o,u&&t&&t.i!==3&&!ge(t.D,n)?u.concat(n):void 0);if(pt(r,n,s),!H(s))return;e.m=!1}if(U(o)&&!Me(o)){if(!e.h.F&&e._<1)return;ie(e,o),t&&t.A.l||le(e,o)}}function le(e,t,r){r===void 0&&(r=!1),e.h.F&&e.m&&Re(t,r)}function pe(e,t){var r=e[S];return(r?M(r):e)[t]}function nt(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function Ve(e){e.P||(e.P=!0,e.l&&Ve(e.l))}function ye(e){e.o||(e.o=ke(e.t))}function Pe(e,t,r){var n=Te(t)?D("MapSet").N(t,r):je(t)?D("MapSet").T(t,r):e.g?function(o,u){var s=Array.isArray(o),i={i:s?1:0,A:u?u.A:et(),P:!1,I:!1,D:{},l:u,t:o,k:null,o:null,j:null,C:!1},a=i,l=we;s&&(a=[i],l=B);var c=Proxy.revocable(a,l),v=c.revoke,h=c.proxy;return i.k=h,i.j=v,h}(t,r):D("ES5").J(t,r);return(r?r.A:et()).p.push(n),n}function Tr(e){return H(e)||w(22,e),function t(r){if(!U(r))return r;var n,o=r[S],u=L(r);if(o){if(!o.P&&(o.i<4||!D("ES5").K(o)))return o.t;o.I=!0,n=ot(r,u),o.I=!1}else n=ot(r,u);return G(n,function(s,i){o&&Dr(o.t,s)===i||pt(n,s,t(i))}),u===3?new Set(n):n}(e)}function ot(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return ke(e)}var ut,J,_e=typeof Symbol!="undefined"&&typeof Symbol("x")=="symbol",jr=typeof Map!="undefined",kr=typeof Set!="undefined",st=typeof Proxy!="undefined"&&Proxy.revocable!==void 0&&typeof Reflect!="undefined",yt=_e?Symbol.for("immer-nothing"):((ut={})["immer-nothing"]=!0,ut),it=_e?Symbol.for("immer-draftable"):"__$immer_draftable",S=_e?Symbol.for("immer-state"):"__$immer_state",Rr=""+Object.prototype.constructor,Ue=typeof Reflect!="undefined"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Mr=Object.getOwnPropertyDescriptors||function(e){var t={};return Ue(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)}),t},_r={},we={get:function(e,t){if(t===S)return e;var r=M(e);if(!ge(r,t))return function(o,u,s){var i,a=nt(u,s);return a?"value"in a?a.value:(i=a.get)===null||i===void 0?void 0:i.call(o.k):void 0}(e,r,t);var n=r[t];return e.I||!U(n)?n:n===pe(e.t,t)?(ye(e),e.o[t]=Pe(e.A.h,n,e)):n},has:function(e,t){return t in M(e)},ownKeys:function(e){return Reflect.ownKeys(M(e))},set:function(e,t,r){var n=nt(M(e),t);if(n!=null&&n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=pe(M(e),t),u=o==null?void 0:o[S];if(u&&u.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(Or(r,o)&&(r!==void 0||ge(e.t,t)))return!0;ye(e),Ve(e)}return e.o[t]===r&&typeof r!="number"&&(r!==void 0||t in e.o)||(e.o[t]=r,e.D[t]=!0,!0)},deleteProperty:function(e,t){return pe(e.t,t)!==void 0||t in e.t?(e.D[t]=!1,ye(e),Ve(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=M(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty:function(){w(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){w(12)}},B={};G(we,function(e,t){B[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),B.deleteProperty=function(e,t){return B.set.call(this,e,t,void 0)},B.set=function(e,t,r){return we.set.call(this,e[0],t,r,e[0])};var Ur=function(){function e(r){var n=this;this.g=st,this.F=!0,this.produce=function(o,u,s){if(typeof o=="function"&&typeof u!="function"){var i=u;u=o;var a=n;return function(y){var A=this;y===void 0&&(y=i);for(var T=arguments.length,C=Array(T>1?T-1:0),k=1;k<T;k++)C[k-1]=arguments[k];return a.produce(y,function(ce){var R;return(R=u).call.apply(R,[A,ce].concat(C))})}}var l;if(typeof u!="function"&&w(6),s!==void 0&&typeof s!="function"&&w(7),U(o)){var c=tt(n),v=Pe(n,o,void 0),h=!0;try{l=u(v),h=!1}finally{h?se(c):Se(c)}return typeof Promise!="undefined"&&l instanceof Promise?l.then(function(y){return ve(c,s),he(y,c)},function(y){throw se(c),y}):(ve(c,s),he(l,c))}if(!o||typeof o!="object"){if((l=u(o))===void 0&&(l=o),l===yt&&(l=void 0),n.F&&Re(l,!0),s){var f=[],F=[];D("Patches").M(o,l,f,F),s(f,F)}return l}w(21,o)},this.produceWithPatches=function(o,u){if(typeof o=="function")return function(l){for(var c=arguments.length,v=Array(c>1?c-1:0),h=1;h<c;h++)v[h-1]=arguments[h];return n.produceWithPatches(l,function(f){return o.apply(void 0,[f].concat(v))})};var s,i,a=n.produce(o,u,function(l,c){s=l,i=c});return typeof Promise!="undefined"&&a instanceof Promise?a.then(function(l){return[l,s,i]}):[a,s,i]},typeof(r==null?void 0:r.useProxies)=="boolean"&&this.setUseProxies(r.useProxies),typeof(r==null?void 0:r.autoFreeze)=="boolean"&&this.setAutoFreeze(r.autoFreeze)}var t=e.prototype;return t.createDraft=function(r){U(r)||w(8),H(r)&&(r=Tr(r));var n=tt(this),o=Pe(this,r,void 0);return o[S].C=!0,Se(n),o},t.finishDraft=function(r,n){var o=r&&r[S],u=o.A;return ve(u,n),he(void 0,u)},t.setAutoFreeze=function(r){this.F=r},t.setUseProxies=function(r){r&&!st&&w(20),this.g=r},t.applyPatches=function(r,n){var o;for(o=n.length-1;o>=0;o--){var u=n[o];if(u.path.length===0&&u.op==="replace"){r=u.value;break}}o>-1&&(n=n.slice(o+1));var s=D("Patches").$;return H(r)?s(r,n):this.produce(r,function(i){return s(i,n)})},e}(),V=new Ur,$r=V.produce;V.produceWithPatches.bind(V);V.setAutoFreeze.bind(V);V.setUseProxies.bind(V);V.applyPatches.bind(V);V.createDraft.bind(V);V.finishDraft.bind(V);const xr=e=>(t,r,n)=>(n.setState=(o,u,...s)=>{const i=typeof o=="function"?$r(o):o;return t(i,u,...s)},e(n.setState,r,n)),Hr=xr,Lr=(e,t)=>{if(typeof Object.getPrototypeOf(e).requestSubmit=="function"){e.requestSubmit(t);return}if(t){zr(e,t),t.click();return}const r=document.createElement("input");r.type="submit",r.hidden=!0,e.appendChild(r),r.click(),e.removeChild(r)};function zr(e,t){t instanceof HTMLElement||Fe(TypeError,"parameter 1 is not of type 'HTMLElement'"),"type"in t&&t.type==="submit"||Fe(TypeError,"The specified element is not a submit button"),"form"in t&&t.form===e||Fe(DOMException,"The specified element is not owned by this form element","NotFoundError")}function Fe(e,t,r){throw new e("Failed to execute 'requestSubmit' on 'HTMLFormElement': "+t+".",r)}const E=(e,t)=>{const r=_(e,t);if(r==null){const n=[];return $(e,t,n),n}return j(Array.isArray(r),`FieldArray: defaultValue value for ${t} must be an array, null, or undefined`),r},te=(e,t,r)=>{const n=e[t],o=e[r],u=t in e,s=r in e;u?e[r]=n:delete e[r],s?e[t]=o:delete e[t]};function X(e,t,r,n){return e.length<t&&n&&(e.length=t),arguments.length===4?e.splice(t,r,n):e.splice(t,r)}const re=(e,t,r)=>{const[n]=X(e,t,1);X(e,r,0,n)},ne=(e,t,r)=>{X(e,t,0,r)},oe=(e,t)=>{X(e,t,1)},ue=(e,t,r)=>{X(e,t,1,r)},g=(e,t,r)=>{const n=new Set,o=[];for(const[s,i]of Object.entries(t))s.startsWith(e)&&s!==e&&(n.add(s),$(o,s.substring(e.length),i));r(o);for(const s of n)delete t[s];const u=Ie(o);for(const s of u){const i=_(o,s);t[`${e}${s}`]=i}},Ie=(e,t="")=>Array.isArray(e)?e.flatMap((r,n)=>Ie(r,`${t}[${n}]`)):typeof e=="object"?Object.keys(e).flatMap(r=>Ie(e[r],`${t}.${r}`)):[t],b=()=>{},Br={isHydrated:!1,isSubmitting:!1,hasBeenSubmitted:!1,touchedFields:{},fieldErrors:{},formElement:null,isValid:()=>!0,startSubmit:b,endSubmit:b,setTouched:b,setFieldError:b,setFieldErrors:b,clearFieldError:b,currentDefaultValues:{},reset:()=>b,syncFormProps:b,setFormElement:b,validateField:async()=>null,validate:async()=>{throw new Error("Validate called before form was initialized.")},submit:async()=>{throw new Error("Submit called before form was initialized.")},resetFormElement:b,getValues:()=>new FormData,controlledFields:{values:{},refCounts:{},valueUpdatePromises:{},valueUpdateResolvers:{},register:b,unregister:b,setValue:b,getValue:b,kickoffValueUpdate:b,awaitValueUpdate:async()=>{throw new Error("AwaitValueUpdate called before form was initialized.")},array:{push:b,swap:b,move:b,insert:b,unshift:b,remove:b,pop:b,replace:b}}},qr=(e,t)=>({isHydrated:!1,isSubmitting:!1,hasBeenSubmitted:!1,touchedFields:{},fieldErrors:{},formElement:null,currentDefaultValues:{},isValid:()=>Object.keys(t().fieldErrors).length===0,startSubmit:()=>e(r=>{r.isSubmitting=!0,r.hasBeenSubmitted=!0}),endSubmit:()=>e(r=>{r.isSubmitting=!1}),setTouched:(r,n)=>e(o=>{o.touchedFields[r]=n}),setFieldError:(r,n)=>e(o=>{o.fieldErrors[r]=n}),setFieldErrors:r=>e(n=>{n.fieldErrors=r}),clearFieldError:r=>e(n=>{delete n.fieldErrors[r]}),reset:()=>e(r=>{var o,u;r.fieldErrors={},r.touchedFields={},r.hasBeenSubmitted=!1;const n=(u=(o=r.formProps)==null?void 0:o.defaultValues)!=null?u:{};r.controlledFields.values=n,r.currentDefaultValues=n}),syncFormProps:r=>e(n=>{n.isHydrated||(n.controlledFields.values=r.defaultValues,n.currentDefaultValues=r.defaultValues),n.formProps=r,n.isHydrated=!0}),setFormElement:r=>{t().formElement!==r&&e(n=>{n.formElement=r})},validateField:async r=>{var s,i,a;const n=t().formElement;j(n,"Cannot find reference to form. This is probably a bug in remix-validated-form.");const o=(s=t().formProps)==null?void 0:s.validator;j(o,"Cannot validator. This is probably a bug in remix-validated-form."),await((a=(i=t().controlledFields).awaitValueUpdate)==null?void 0:a.call(i,r));const{error:u}=await o.validateField(new FormData(n),r);return u?(t().setFieldError(r,u),u):(t().clearFieldError(r),null)},validate:async()=>{var u;const r=t().formElement;j(r,"Cannot find reference to form. This is probably a bug in remix-validated-form.");const n=(u=t().formProps)==null?void 0:u.validator;j(n,"Cannot validator. This is probably a bug in remix-validated-form.");const o=await n.validate(new FormData(r));return o.error&&t().setFieldErrors(o.error.fieldErrors),o},submit:()=>{const r=t().formElement;j(r,"Cannot find reference to form. This is probably a bug in remix-validated-form."),Lr(r)},getValues:()=>{var r;return new FormData((r=t().formElement)!=null?r:void 0)},resetFormElement:()=>{var r;return(r=t().formElement)==null?void 0:r.reset()},controlledFields:{values:{},refCounts:{},valueUpdatePromises:{},valueUpdateResolvers:{},register:r=>{e(n=>{var u;const o=(u=n.controlledFields.refCounts[r])!=null?u:0;n.controlledFields.refCounts[r]=o+1})},unregister:r=>{t()===null||t()===void 0||e(n=>{var s,i,a;const o=(s=n.controlledFields.refCounts[r])!=null?s:0;if(o>1){n.controlledFields.refCounts[r]=o-1;return}Object.keys(n.controlledFields.refCounts).some(l=>r.startsWith(l)&&l!==r)||($(n.controlledFields.values,r,_((i=n.formProps)==null?void 0:i.defaultValues,r)),$(n.currentDefaultValues,r,_((a=n.formProps)==null?void 0:a.defaultValues,r))),delete n.controlledFields.refCounts[r]})},getValue:r=>_(t().controlledFields.values,r),setValue:(r,n)=>{e(o=>{$(o.controlledFields.values,r,n)}),t().controlledFields.kickoffValueUpdate(r)},kickoffValueUpdate:r=>{const n=()=>e(o=>{delete o.controlledFields.valueUpdateResolvers[r],delete o.controlledFields.valueUpdatePromises[r]});e(o=>{const u=new Promise(s=>{o.controlledFields.valueUpdateResolvers[r]=s}).then(n);o.controlledFields.valueUpdatePromises[r]=u})},awaitValueUpdate:async r=>{await t().controlledFields.valueUpdatePromises[r]},array:{push:(r,n)=>{e(o=>{E(o.controlledFields.values,r).push(n),E(o.currentDefaultValues,r).push(n)}),t().controlledFields.kickoffValueUpdate(r)},swap:(r,n,o)=>{e(u=>{te(E(u.controlledFields.values,r),n,o),te(E(u.currentDefaultValues,r),n,o),g(r,u.touchedFields,s=>te(s,n,o)),g(r,u.fieldErrors,s=>te(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)},move:(r,n,o)=>{e(u=>{re(E(u.controlledFields.values,r),n,o),re(E(u.currentDefaultValues,r),n,o),g(r,u.touchedFields,s=>re(s,n,o)),g(r,u.fieldErrors,s=>re(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)},insert:(r,n,o)=>{e(u=>{ne(E(u.controlledFields.values,r),n,o),ne(E(u.currentDefaultValues,r),n,o),g(r,u.touchedFields,s=>ne(s,n,!1)),g(r,u.fieldErrors,s=>ne(s,n,void 0))}),t().controlledFields.kickoffValueUpdate(r)},remove:(r,n)=>{e(o=>{oe(E(o.controlledFields.values,r),n),oe(E(o.currentDefaultValues,r),n),g(r,o.touchedFields,u=>oe(u,n)),g(r,o.fieldErrors,u=>oe(u,n))}),t().controlledFields.kickoffValueUpdate(r)},pop:r=>{e(n=>{E(n.controlledFields.values,r).pop(),E(n.currentDefaultValues,r).pop(),g(r,n.touchedFields,o=>o.pop()),g(r,n.fieldErrors,o=>o.pop())}),t().controlledFields.kickoffValueUpdate(r)},unshift:(r,n)=>{e(o=>{E(o.controlledFields.values,r).unshift(n),E(o.currentDefaultValues,r).unshift(n),g(r,o.touchedFields,u=>u.unshift(!1)),g(r,o.fieldErrors,u=>u.unshift(void 0))})},replace:(r,n,o)=>{e(u=>{ue(E(u.controlledFields.values,r),n,o),ue(E(u.currentDefaultValues,r),n,o),g(r,u.touchedFields,s=>ue(s,n,o)),g(r,u.fieldErrors,s=>ue(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)}}}}),De=Ir()(Hr((e,t)=>({forms:{},form:r=>{var n;return(n=t().forms[r])!=null?n:Br},cleanupForm:r=>{e(n=>{delete n.forms[r]})},registerForm:r=>{t().forms[r]||e(n=>{n.forms[r]=qr(o=>e(u=>o(u.forms[r])),()=>t().forms[r])})}}))),d=(e,t)=>De(r=>t(r.form(e))),O=(e,t)=>{const r=p.useContext(ft);if(e)return{formId:e};if(r)return r;throw new Error(`Unable to determine form for ${t}. Please use it inside a ValidatedForm or pass a 'formId'.`)};function $e({fetcher:e,subaction:t,formId:r}){var o;const n=K.useActionData();return e?(o=e.data)!=null&&o.fieldErrors?e.data:null:n!=null&&n.fieldErrors?typeof r=="string"&&n.formId?n.formId===r?n:null:!t&&!n.subaction||n.subaction===t?n:null:null}const Ft=e=>{const t=$e(e),r=d(e.formId,n=>n.isHydrated);return z.from(t==null?void 0:t.fieldErrors,r)},bt=({formId:e})=>{const t=K.useMatches();if(typeof e=="string"){const r=ct(e),n=t.reverse().find(o=>o.data&&r in o.data);return n==null?void 0:n.data[r]}return null},Et=e=>{const{formId:t,defaultValuesProp:r}=e,n=d(t,s=>s.isHydrated),o=$e(e),u=bt(e);return n?z.hydratedData():o!=null&&o.repopulateFields?(j(typeof o.repopulateFields=="object","repopulateFields returned something other than an object"),z.serverData(o.repopulateFields)):r?z.serverData(r):z.serverData(u)},Kr=({fetcher:e})=>{const t=K.useTransition();return e?e.state==="submitting":!!t.submission},Wr=(e,{formId:t})=>{const r=d(t,u=>u.touchedFields[e]),n=d(t,u=>u.setTouched),o=p.useCallback(u=>n(e,u),[e,n]);return[r,o]},gt=(e,t)=>{const r=Ft(t),n=d(t.formId,o=>o.fieldErrors[e]);return r.map(o=>o==null?void 0:o[e]).hydrateTo(n)},St=e=>{const{formId:t}=e;return d(t,r=>r.clearFieldError)},Gr=(e,t)=>d(e,r=>_(r.currentDefaultValues,t)),xe=(e,t)=>{const r=Et(t),n=Gr(t.formId,e);return r.map(o=>_(o,e)).hydrateTo(n)},Vt=e=>d(e,t=>t.isSubmitting),Pt=e=>d(e,t=>t.isValid()),He=e=>d(e,t=>t.hasBeenSubmitted),Le=e=>d(e,t=>t.validateField),Jr=e=>d(e,t=>t.validate),Xr=()=>()=>{},wt=e=>d(e,t=>{var r,n;return(n=(r=t.formProps)==null?void 0:r.registerReceiveFocus)!=null?n:Xr}),Qr={},Zr=e=>d(e,t=>{var r,n;return(n=(r=t.formProps)==null?void 0:r.defaultValues)!=null?n:Qr}),Yr=({formId:e})=>d(e,t=>t.setTouched),Nr=e=>d(e,t=>t.touchedFields),en=e=>d(e,t=>t.fieldErrors),It=e=>d(e,t=>t.setFieldErrors),tn=e=>d(e,t=>t.resetFormElement),rn=e=>d(e,t=>t.submit),nn=e=>d(e,t=>{var r;return(r=t.formProps)==null?void 0:r.action}),on=e=>d(e,t=>{var r;return(r=t.formProps)==null?void 0:r.subaction}),un=e=>d(e,t=>t.getValues),sn=(e,t)=>{const r=d(e.formId,u=>u.controlledFields.getValue(t)),n=d(e.formId,u=>u.isHydrated),o=xe(t,e);return n?r:o},Dt=(e,t)=>{const r=d(e.formId,u=>u.controlledFields.valueUpdateResolvers[t]);p.useEffect(()=>{r==null||r()},[r]);const n=d(e.formId,u=>u.controlledFields.register),o=d(e.formId,u=>u.controlledFields.unregister);p.useEffect(()=>(n(t),()=>o(t)),[e.formId,t,n,o])},ln=(e,t)=>{Dt(e,t);const r=d(e.formId,u=>u.controlledFields.setValue),n=p.useCallback(u=>r(t,u),[t,r]);return[sn(e,t),n]},an=e=>{const t=d(e,r=>r.controlledFields.setValue);return p.useCallback((r,n)=>t(r,n),[t])},Ot=e=>{const t=O(e,"useIsSubmitting");return Vt(t.formId)},Ct=e=>{const t=O(e,"useIsValid");return Pt(t.formId)},cn=(e,t)=>{const{formId:r,handleReceiveFocus:n}=t!=null?t:{},o=O(r,"useField"),u=xe(e,o),[s,i]=Wr(e,o),a=gt(e,o),l=St(o),c=He(o.formId),v=Le(o.formId),h=wt(o.formId);return p.useEffect(()=>{if(n)return h(e,n)},[n,e,h]),p.useMemo(()=>{const F={error:a,clearError:()=>l(e),validate:()=>{v(e)},defaultValue:u,touched:s,setTouched:i},y=tr({...F,name:e,hasBeenSubmitted:c,validationBehavior:t==null?void 0:t.validationBehavior});return{...F,getInputProps:y}},[a,l,u,s,i,e,c,t==null?void 0:t.validationBehavior,v])},fn=(e,t)=>{const r=O(t,"useControlField"),[n,o]=ln(r,e);return[n,o]},dn=e=>{const t=O(e,"useControlField");return an(t.formId)};/**
|
18
18
|
* @remix-run/server-runtime v1.6.5
|
19
19
|
*
|
20
20
|
* Copyright (c) Remix Software Inc.
|
@@ -23,5 +23,5 @@
|
|
23
23
|
* LICENSE.md file in the root directory of this source tree.
|
24
24
|
*
|
25
25
|
* @license MIT
|
26
|
-
*/const
|
26
|
+
*/const mn=(e,t={})=>{let r=typeof t=="number"?{status:t}:t,n=new Headers(r.headers);return n.has("Content-Type")||n.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),{...r,headers:n})};function vn(e,t,r){return mn({fieldErrors:e.fieldErrors,subaction:e.subaction,repopulateFields:t,formId:e.formId},{status:422,...r})}const hn=(e,t)=>({[ct(e)]:t});class At{constructor(){this.dict=new Map,this.add=(t,r)=>{this.dict.has(t)?this.dict.get(t).push(r):this.dict.set(t,[r])},this.delete=t=>{this.dict.delete(t)},this.remove=(t,r)=>{if(!this.dict.has(t))return;const n=this.dict.get(t),o=n.indexOf(r);o!==-1&&n.splice(o,1),n.length===0&&this.dict.delete(t)},this.getAll=t=>{var r;return(r=this.dict.get(t))!=null?r:[]},this.entries=()=>this.dict.entries(),this.values=()=>this.dict.values(),this.has=t=>this.dict.has(t)}}const pn=()=>{const e=p.useRef(null);return p.useCallback(()=>(e.current||(e.current=new At),e.current),[])};function Tt(e,t){const r=p.useRef(!1);p.useEffect(()=>{e&&(r.current=!0),!e&&r.current&&(r.current=!1,t())})}const yn=e=>t=>{e.filter(Boolean).forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})},be=typeof window!="undefined"?p.useLayoutEffect:p.useEffect,Fn=e=>{const t=p.useRef(e),r=t.current===e||Ee(t.current,e);return p.useEffect(()=>{r||(t.current=e)}),r?t.current:e},bn=e=>new FormData(e);function En(e){return e!==null}const gn=(e,t,r)=>{var u;const n=[...r.elements].map(s=>{const i=s instanceof RadioNodeList?s[0]:s;return i instanceof HTMLElement&&"name"in i?i.name:null}).filter(En).filter(s=>s in e),o=W(n);for(const s of o){if(t.has(s)){t.getAll(s).forEach(a=>{a()});break}const i=r.elements.namedItem(s);if(!!i){if(i instanceof RadioNodeList){const a=(u=[...i].filter(l=>l instanceof HTMLInputElement).find(l=>l.value===i.value))!=null?u:i[0];if(a&&a instanceof HTMLInputElement){a.focus();break}}if(i instanceof HTMLElement){if(i instanceof HTMLInputElement&&i.type==="hidden")continue;i.focus();break}}}},Sn=e=>{const[t]=p.useState(()=>Symbol("remix-validated-form-id"));return e!=null?e:t},Vn=({resetAfterSubmit:e,formRef:t})=>{const r=Ot(),n=Ct();return Tt(r,()=>{var o;n&&e&&((o=t.current)==null||o.reset())}),null};function Pn(e){let t=!1;return new Proxy(e,{get:(r,n)=>n==="preventDefault"?()=>{t=!0}:n==="defaultPrevented"?t:r[n]})}function wn({validator:e,onSubmit:t,children:r,fetcher:n,action:o,defaultValues:u,formRef:s,onReset:i,subaction:a,resetAfterSubmit:l=!1,disableFocusOnError:c,method:v,replace:h,id:f,...F}){var Ge;const y=Sn(f),A=Fn(u),T=p.useMemo(()=>({formId:y,action:o,subaction:a,defaultValuesProp:A,fetcher:n}),[o,n,y,A,a]),C=$e(T),k=bt(T),ce=Kr(T),R=p.useRef(null),kt=(Ge=n==null?void 0:n.Form)!=null?Ge:K.Form,Rt=K.useSubmit(),Z=It(y),Mt=d(y,m=>m.setFieldError),_t=d(y,m=>m.reset),Ut=d(y,m=>m.startSubmit),fe=d(y,m=>m.endSubmit),ze=d(y,m=>m.syncFormProps),Be=d(y,m=>m.setFormElement),qe=De(m=>m.cleanupForm),Ke=De(m=>m.registerForm),Y=pn(),We=p.useCallback((m,N)=>(Y().add(m,N),()=>{Y().remove(m,N)}),[Y]);be(()=>(Ke(y),()=>qe(y)),[qe,y,Ke]),be(()=>{var m;ze({action:o,defaultValues:(m=A!=null?A:k)!=null?m:{},subaction:a,registerReceiveFocus:We,validator:e})},[o,A,We,a,ze,k,e]),be(()=>{Be(R.current)},[Be]),p.useEffect(()=>{var m;Z((m=C==null?void 0:C.fieldErrors)!=null?m:{})},[C==null?void 0:C.fieldErrors,Z,Mt]),Tt(ce,()=>{fe()});const $t=async(m,N,xt)=>{Ut();const I=xt.submitter,Je=bn(m.currentTarget);I!=null&&I.name&&Je.append(I.name,I.value);const ee=await e.validate(Je);if(ee.error)Z(ee.error.fieldErrors),fe(),c||gn(ee.error.fieldErrors,Y(),R.current);else{Z({});const Xe=Pn(m);if(await(t==null?void 0:t(ee.data,Xe)),Xe.defaultPrevented){fe();return}n?n.submit(I||m.currentTarget):Rt(I||N,{replace:h,method:(I==null?void 0:I.formMethod)||v})}};return P.default.createElement(kt,{ref:yn([R,s]),...F,id:f,action:o,method:v,replace:h,onSubmit:m=>{m.preventDefault(),$t(m,m.currentTarget,m.nativeEvent)},onReset:m=>{i==null||i(m),!m.defaultPrevented&&_t()}},P.default.createElement(ft.Provider,{value:T},P.default.createElement(P.default.Fragment,null,P.default.createElement(Vn,{formRef:R,resetAfterSubmit:l}),a&&P.default.createElement("input",{type:"hidden",value:a,name:"subaction"}),f&&P.default.createElement("input",{type:"hidden",value:f,name:q}),r)))}const lt=e=>{const t=new At;return e.forEach(([r,n])=>t.add(r,n)),[...t.entries()].reduce((r,[n,o])=>$(r,n,o.length===1?o[0]:o),{})},at=e=>"entries"in e&&typeof e.entries=="function"?lt([...e.entries()]):lt(Object.entries(e)),In=e=>Kt(e,[q]);function Dn(e){return{validate:async t=>{const r=at(t),n=await e.validate(In(r));return n.error?{data:void 0,error:{fieldErrors:n.error,subaction:r.subaction,formId:r[q]},submittedData:r,formId:r[q]}:{data:n.data,error:void 0,submittedData:r,formId:r[q]}},validateField:(t,r)=>e.validateField(at(t),r)}}const On=e=>{const t=O(e,"useFormState"),r=Vt(t.formId),n=He(t.formId),o=Nr(t.formId),u=Pt(t.formId),s=nn(t.formId),i=on(t.formId),a=Zr(t.formId),c=Et(t).hydrateTo(a),v=en(t.formId),f=Ft(t).hydrateTo(v);return p.useMemo(()=>({action:s,subaction:i,defaultValues:c,fieldErrors:f!=null?f:{},hasBeenSubmitted:n,isSubmitting:r,touchedFields:o,isValid:u}),[s,n,c,f,r,u,i,o])},Cn=e=>{const t=O(e,"useFormHelpers"),r=Yr(t),n=Le(t.formId),o=Jr(t.formId),u=St(t),s=It(t.formId),i=tn(t.formId),a=rn(t.formId),l=un(t.formId);return p.useMemo(()=>({setTouched:r,validateField:n,clearError:u,validate:o,clearAllErrors:()=>s({}),reset:i,submit:a,getValues:l}),[u,i,s,r,a,o,n,l])},An=e=>{const t=O(e,"useFormContext"),r=On(e),{clearError:n,setTouched:o,validateField:u,clearAllErrors:s,validate:i,reset:a,submit:l,getValues:c}=Cn(e),v=wt(t.formId),h=p.useCallback((...f)=>{f.forEach(F=>{n(F)})},[n]);return p.useMemo(()=>({...r,setFieldTouched:o,validateField:u,clearError:h,registerReceiveFocus:v,clearAllErrors:s,validate:i,reset:a,submit:l,getValues:c}),[s,h,v,a,o,r,l,i,u,c])},jt=(e,t,r)=>{const n=xe(t,e);Dt(e,t);const o=He(e.formId),u=Le(e.formId),s=gt(t,e),i={initial:"onSubmit",whenSubmitted:"onChange",...r},a=o?i.whenSubmitted:i.initial,l=p.useCallback(()=>{a==="onChange"&&u(t)},[a,t,u]);j(n==null||Array.isArray(n),`FieldArray: defaultValue value for ${t} must be an array, null, or undefined`);const c=d(e.formId,f=>f.controlledFields.array),v=p.useMemo(()=>({push:f=>{c.push(t,f),l()},swap:(f,F)=>{c.swap(t,f,F),l()},move:(f,F)=>{c.move(t,f,F),l()},insert:(f,F)=>{c.insert(t,f,F),l()},unshift:f=>{c.unshift(t,f),l()},remove:f=>{c.remove(t,f),l()},pop:()=>{c.pop(t),l()},replace:(f,F)=>{c.replace(t,f,F),l()}}),[c,t,l]);return[p.useMemo(()=>n!=null?n:[],[n]),v,s]};function Tn(e,{formId:t,validationBehavior:r}={}){const n=O(t,"FieldArray");return jt(n,e,r)}const jn=({name:e,children:t,formId:r,validationBehavior:n})=>{const o=O(r,"FieldArray"),[u,s,i]=jt(o,e,n);return P.default.createElement(P.default.Fragment,null,t(u,s,i))};exports.FieldArray=jn;exports.ValidatedForm=wn;exports.createValidator=Dn;exports.setFormDefaults=hn;exports.useControlField=fn;exports.useField=cn;exports.useFieldArray=Tn;exports.useFormContext=An;exports.useIsSubmitting=Ot;exports.useIsValid=Ct;exports.useUpdateControlledField=dn;exports.validationError=vn;
|
27
27
|
//# sourceMappingURL=remix-validated-form.cjs.js.map
|