use-inertia-form
Version:
Extra functionality for Inertia.js useForm hook
1 lines • 65.4 kB
Source Map (JSON)
{"version":3,"file":"useInertiaForm.cjs","sources":["../../src/utils/createContext.ts","../node_modules/es-toolkit/dist/function/noop.mjs","../node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","../node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs","../node_modules/es-toolkit/dist/compat/_internal/getTag.mjs","../node_modules/es-toolkit/dist/compat/_internal/tags.mjs","../node_modules/es-toolkit/dist/predicate/isPlainObject.mjs","../node_modules/es-toolkit/dist/compat/util/eq.mjs","../node_modules/es-toolkit/dist/predicate/isEqualWith.mjs","../node_modules/es-toolkit/dist/predicate/isEqual.mjs","../node_modules/es-toolkit/dist/predicate/isLength.mjs","../../src/utils/fillEmptyValues.ts","../node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs","../node_modules/es-toolkit/dist/compat/_internal/isDeepKey.mjs","../node_modules/es-toolkit/dist/compat/_internal/toKey.mjs","../node_modules/es-toolkit/dist/compat/util/toPath.mjs","../node_modules/es-toolkit/dist/compat/object/get.mjs","../node_modules/es-toolkit/dist/compat/_internal/isIndex.mjs","../node_modules/es-toolkit/dist/compat/predicate/isArguments.mjs","../node_modules/es-toolkit/dist/compat/object/set.mjs","../node_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs","../node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs","../node_modules/es-toolkit/dist/compat/object/unset.mjs","../node_modules/es-toolkit/dist/compat/predicate/isEmpty.mjs","../../src/utils/isUnset.ts","../../src/utils/renameObjectWithAttributes.ts","../../src/utils/unsetCompact.ts","../../src/utils/useMaybeRemember.ts","../../src/utils/index.ts","../../src/Form/FormMetaWrapper.tsx","../../src/useInertiaForm.ts","../../src/Form/FormProvider.ts","../../src/Form/index.tsx","../../src/Inputs/NestedFields.tsx","../../src/useInertiaInput/inputStrategy.ts","../../src/useInertiaInput/index.ts","../../src/Inputs/Input.tsx","../../src/Inputs/Submit.tsx","../../src/Inputs/useDynamicInputs.ts","../../src/Inputs/DynamicInputs.tsx"],"sourcesContent":[null,"function noop() { }\n\nexport { noop };\n","function isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexport { isTypedArray };\n","function getSymbols(object) {\n return Object.getOwnPropertySymbols(object).filter(symbol => Object.prototype.propertyIsEnumerable.call(object, symbol));\n}\n\nexport { getSymbols };\n","function getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\n\nexport { getTag };\n","const regexpTag = '[object RegExp]';\nconst stringTag = '[object String]';\nconst numberTag = '[object Number]';\nconst booleanTag = '[object Boolean]';\nconst argumentsTag = '[object Arguments]';\nconst symbolTag = '[object Symbol]';\nconst dateTag = '[object Date]';\nconst mapTag = '[object Map]';\nconst setTag = '[object Set]';\nconst arrayTag = '[object Array]';\nconst functionTag = '[object Function]';\nconst arrayBufferTag = '[object ArrayBuffer]';\nconst objectTag = '[object Object]';\nconst errorTag = '[object Error]';\nconst dataViewTag = '[object DataView]';\nconst uint8ArrayTag = '[object Uint8Array]';\nconst uint8ClampedArrayTag = '[object Uint8ClampedArray]';\nconst uint16ArrayTag = '[object Uint16Array]';\nconst uint32ArrayTag = '[object Uint32Array]';\nconst bigUint64ArrayTag = '[object BigUint64Array]';\nconst int8ArrayTag = '[object Int8Array]';\nconst int16ArrayTag = '[object Int16Array]';\nconst int32ArrayTag = '[object Int32Array]';\nconst bigInt64ArrayTag = '[object BigInt64Array]';\nconst float32ArrayTag = '[object Float32Array]';\nconst float64ArrayTag = '[object Float64Array]';\n\nexport { argumentsTag, arrayBufferTag, arrayTag, bigInt64ArrayTag, bigUint64ArrayTag, booleanTag, dataViewTag, dateTag, errorTag, float32ArrayTag, float64ArrayTag, functionTag, int16ArrayTag, int32ArrayTag, int8ArrayTag, mapTag, numberTag, objectTag, regexpTag, setTag, stringTag, symbolTag, uint16ArrayTag, uint32ArrayTag, uint8ArrayTag, uint8ClampedArrayTag };\n","function isPlainObject(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n const hasObjectPrototype = proto === null ||\n proto === Object.prototype ||\n Object.getPrototypeOf(proto) === null;\n if (!hasObjectPrototype) {\n return false;\n }\n return Object.prototype.toString.call(value) === '[object Object]';\n}\n\nexport { isPlainObject };\n","function eq(value, other) {\n return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\nexport { eq };\n","import { isPlainObject } from './isPlainObject.mjs';\nimport { getSymbols } from '../compat/_internal/getSymbols.mjs';\nimport { getTag } from '../compat/_internal/getTag.mjs';\nimport { functionTag, regexpTag, symbolTag, dateTag, booleanTag, numberTag, stringTag, objectTag, errorTag, dataViewTag, arrayBufferTag, float64ArrayTag, float32ArrayTag, bigInt64ArrayTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, bigUint64ArrayTag, uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, arrayTag, setTag, mapTag, argumentsTag } from '../compat/_internal/tags.mjs';\nimport { eq } from '../compat/util/eq.mjs';\n\nfunction isEqualWith(a, b, areValuesEqual) {\n return isEqualWithImpl(a, b, undefined, undefined, undefined, undefined, areValuesEqual);\n}\nfunction isEqualWithImpl(a, b, property, aParent, bParent, stack, areValuesEqual) {\n const result = areValuesEqual(a, b, property, aParent, bParent, stack);\n if (result !== undefined) {\n return result;\n }\n if (typeof a === typeof b) {\n switch (typeof a) {\n case 'bigint':\n case 'string':\n case 'boolean':\n case 'symbol':\n case 'undefined': {\n return a === b;\n }\n case 'number': {\n return a === b || Object.is(a, b);\n }\n case 'function': {\n return a === b;\n }\n case 'object': {\n return areObjectsEqual(a, b, stack, areValuesEqual);\n }\n }\n }\n return areObjectsEqual(a, b, stack, areValuesEqual);\n}\nfunction areObjectsEqual(a, b, stack, areValuesEqual) {\n if (Object.is(a, b)) {\n return true;\n }\n let aTag = getTag(a);\n let bTag = getTag(b);\n if (aTag === argumentsTag) {\n aTag = objectTag;\n }\n if (bTag === argumentsTag) {\n bTag = objectTag;\n }\n if (aTag !== bTag) {\n return false;\n }\n switch (aTag) {\n case stringTag:\n return a.toString() === b.toString();\n case numberTag: {\n const x = a.valueOf();\n const y = b.valueOf();\n return eq(x, y);\n }\n case booleanTag:\n case dateTag:\n case symbolTag:\n return Object.is(a.valueOf(), b.valueOf());\n case regexpTag: {\n return a.source === b.source && a.flags === b.flags;\n }\n case functionTag: {\n return a === b;\n }\n }\n stack = stack ?? new Map();\n const aStack = stack.get(a);\n const bStack = stack.get(b);\n if (aStack != null && bStack != null) {\n return aStack === b;\n }\n stack.set(a, b);\n stack.set(b, a);\n try {\n switch (aTag) {\n case mapTag: {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a.entries()) {\n if (!b.has(key) || !isEqualWithImpl(value, b.get(key), key, a, b, stack, areValuesEqual)) {\n return false;\n }\n }\n return true;\n }\n case setTag: {\n if (a.size !== b.size) {\n return false;\n }\n const aValues = Array.from(a.values());\n const bValues = Array.from(b.values());\n for (let i = 0; i < aValues.length; i++) {\n const aValue = aValues[i];\n const index = bValues.findIndex(bValue => {\n return isEqualWithImpl(aValue, bValue, undefined, a, b, stack, areValuesEqual);\n });\n if (index === -1) {\n return false;\n }\n bValues.splice(index, 1);\n }\n return true;\n }\n case arrayTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag:\n case bigUint64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case bigInt64ArrayTag:\n case float32ArrayTag:\n case float64ArrayTag: {\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(a) !== Buffer.isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual)) {\n return false;\n }\n }\n return true;\n }\n case arrayBufferTag: {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);\n }\n case dataViewTag: {\n if (a.byteLength !== b.byteLength || a.byteOffset !== b.byteOffset) {\n return false;\n }\n return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);\n }\n case errorTag: {\n return a.name === b.name && a.message === b.message;\n }\n case objectTag: {\n const areEqualInstances = areObjectsEqual(a.constructor, b.constructor, stack, areValuesEqual) ||\n (isPlainObject(a) && isPlainObject(b));\n if (!areEqualInstances) {\n return false;\n }\n const aKeys = [...Object.keys(a), ...getSymbols(a)];\n const bKeys = [...Object.keys(b), ...getSymbols(b)];\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n for (let i = 0; i < aKeys.length; i++) {\n const propKey = aKeys[i];\n const aProp = a[propKey];\n if (!Object.hasOwn(b, propKey)) {\n return false;\n }\n const bProp = b[propKey];\n if (!isEqualWithImpl(aProp, bProp, propKey, a, b, stack, areValuesEqual)) {\n return false;\n }\n }\n return true;\n }\n default: {\n return false;\n }\n }\n }\n finally {\n stack.delete(a);\n stack.delete(b);\n }\n}\n\nexport { isEqualWith };\n","import { isEqualWith } from './isEqualWith.mjs';\nimport { noop } from '../function/noop.mjs';\n\nfunction isEqual(a, b) {\n return isEqualWith(a, b, noop);\n}\n\nexport { isEqual };\n","function isLength(value) {\n return Number.isSafeInteger(value) && value >= 0;\n}\n\nexport { isLength };\n",null,"import { isLength } from '../../predicate/isLength.mjs';\n\nfunction isArrayLike(value) {\n return value != null && typeof value !== 'function' && isLength(value.length);\n}\n\nexport { isArrayLike };\n","function isDeepKey(key) {\n switch (typeof key) {\n case 'number':\n case 'symbol': {\n return false;\n }\n case 'string': {\n return key.includes('.') || key.includes('[') || key.includes(']');\n }\n }\n}\n\nexport { isDeepKey };\n","function toKey(value) {\n if (Object.is(value, -0)) {\n return '-0';\n }\n return value.toString();\n}\n\nexport { toKey };\n","function toPath(deepKey) {\n const result = [];\n const length = deepKey.length;\n if (length === 0) {\n return result;\n }\n let index = 0;\n let key = '';\n let quoteChar = '';\n let bracket = false;\n if (deepKey.charCodeAt(0) === 46) {\n result.push('');\n index++;\n }\n while (index < length) {\n const char = deepKey[index];\n if (quoteChar) {\n if (char === '\\\\' && index + 1 < length) {\n index++;\n key += deepKey[index];\n }\n else if (char === quoteChar) {\n quoteChar = '';\n }\n else {\n key += char;\n }\n }\n else if (bracket) {\n if (char === '\"' || char === \"'\") {\n quoteChar = char;\n }\n else if (char === ']') {\n bracket = false;\n result.push(key);\n key = '';\n }\n else {\n key += char;\n }\n }\n else {\n if (char === '[') {\n bracket = true;\n if (key) {\n result.push(key);\n key = '';\n }\n }\n else if (char === '.') {\n if (key) {\n result.push(key);\n key = '';\n }\n }\n else {\n key += char;\n }\n }\n index++;\n }\n if (key) {\n result.push(key);\n }\n return result;\n}\n\nexport { toPath };\n","import { isDeepKey } from '../_internal/isDeepKey.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\nimport { toPath } from '../util/toPath.mjs';\n\nfunction get(object, path, defaultValue) {\n if (object == null) {\n return defaultValue;\n }\n switch (typeof path) {\n case 'string': {\n const result = object[path];\n if (result === undefined) {\n if (isDeepKey(path)) {\n return get(object, toPath(path), defaultValue);\n }\n else {\n return defaultValue;\n }\n }\n return result;\n }\n case 'number':\n case 'symbol': {\n if (typeof path === 'number') {\n path = toKey(path);\n }\n const result = object[path];\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n }\n default: {\n if (Array.isArray(path)) {\n return getWithPath(object, path, defaultValue);\n }\n if (Object.is(path?.valueOf(), -0)) {\n path = '-0';\n }\n else {\n path = String(path);\n }\n const result = object[path];\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n }\n }\n}\nfunction getWithPath(object, path, defaultValue) {\n if (path.length === 0) {\n return defaultValue;\n }\n let current = object;\n for (let index = 0; index < path.length; index++) {\n if (current == null) {\n return defaultValue;\n }\n current = current[path[index]];\n }\n if (current === undefined) {\n return defaultValue;\n }\n return current;\n}\n\nexport { get };\n","const IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex(value, length = Number.MAX_SAFE_INTEGER) {\n switch (typeof value) {\n case 'number': {\n return Number.isInteger(value) && value >= 0 && value < length;\n }\n case 'symbol': {\n return false;\n }\n case 'string': {\n return IS_UNSIGNED_INTEGER.test(value);\n }\n }\n}\n\nexport { isIndex };\n","import { getTag } from '../_internal/getTag.mjs';\n\nfunction isArguments(value) {\n return value !== null && typeof value === 'object' && getTag(value) === '[object Arguments]';\n}\n\nexport { isArguments };\n","import { isIndex } from '../_internal/isIndex.mjs';\nimport { toPath } from '../util/toPath.mjs';\n\nfunction set(obj, path, value) {\n const resolvedPath = Array.isArray(path) ? path : typeof path === 'string' ? toPath(path) : [path];\n let current = obj;\n for (let i = 0; i < resolvedPath.length - 1; i++) {\n const key = resolvedPath[i];\n const nextKey = resolvedPath[i + 1];\n if (current[key] == null) {\n current[key] = isIndex(nextKey) ? [] : {};\n }\n current = current[key];\n }\n const lastKey = resolvedPath[resolvedPath.length - 1];\n current[lastKey] = value;\n return obj;\n}\n\nexport { set };\n","function isPrototype(value) {\n const constructor = value?.constructor;\n const prototype = typeof constructor === 'function' ? constructor.prototype : Object.prototype;\n return value === prototype;\n}\n\nexport { isPrototype };\n","import { isTypedArray as isTypedArray$1 } from '../../predicate/isTypedArray.mjs';\n\nfunction isTypedArray(x) {\n return isTypedArray$1(x);\n}\n\nexport { isTypedArray };\n","import { get } from './get.mjs';\nimport { isDeepKey } from '../_internal/isDeepKey.mjs';\nimport { toKey } from '../_internal/toKey.mjs';\nimport { toPath } from '../util/toPath.mjs';\n\nfunction unset(obj, path) {\n if (obj == null) {\n return true;\n }\n switch (typeof path) {\n case 'symbol':\n case 'number':\n case 'object': {\n if (Array.isArray(path)) {\n return unsetWithPath(obj, path);\n }\n if (typeof path === 'number') {\n path = toKey(path);\n }\n else if (typeof path === 'object') {\n if (Object.is(path?.valueOf(), -0)) {\n path = '-0';\n }\n else {\n path = String(path);\n }\n }\n if (obj?.[path] === undefined) {\n return true;\n }\n try {\n delete obj[path];\n return true;\n }\n catch {\n return false;\n }\n }\n case 'string': {\n if (obj?.[path] === undefined && isDeepKey(path)) {\n return unsetWithPath(obj, toPath(path));\n }\n try {\n delete obj[path];\n return true;\n }\n catch {\n return false;\n }\n }\n }\n}\nfunction unsetWithPath(obj, path) {\n const parent = get(obj, path.slice(0, -1), obj);\n const lastKey = path[path.length - 1];\n if (parent?.[lastKey] === undefined) {\n return true;\n }\n try {\n delete parent[lastKey];\n return true;\n }\n catch {\n return false;\n }\n}\n\nexport { unset };\n","import { isArguments } from './isArguments.mjs';\nimport { isArrayLike } from './isArrayLike.mjs';\nimport { isTypedArray } from './isTypedArray.mjs';\nimport { isPrototype } from '../_internal/isPrototype.mjs';\n\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value)) {\n if (typeof value.splice !== 'function' &&\n typeof value !== 'string' &&\n (typeof Buffer === 'undefined' || !Buffer.isBuffer(value)) &&\n !isTypedArray(value) &&\n !isArguments(value)) {\n return false;\n }\n return value.length === 0;\n }\n if (typeof value === 'object') {\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0;\n }\n const keys = Object.keys(value);\n if (isPrototype(value)) {\n return keys.filter(x => x !== 'constructor').length === 0;\n }\n return keys.length === 0;\n }\n return true;\n}\n\nexport { isEmpty };\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["createContext","context","React","useContext","c","Error","Provider","isTypedArray","fillEmptyValues","data","clone","structuredClone","key","isPlainObject","Array","isArray","map","el","undefined","isUnset","v","Boolean","Date","isNaN","valueOf","isEmpty","renameObjectWithAttributes","str","Object","values","forEach","value","recursiveAppendString","entries","renameKey","obj","oldKey","newKey","unsetCompact","path","sanitizedPath","replace","includes","emptyArrayPosition","indexOf","startPath","slice","restPath","arr","get","i","length","charAt","match","lastIndexOf","groups","index","splice","Number","unset","useMaybeRemember","initialValue","rememberKey","rememberedData","setRememberedData","useRemember","localData","setLocalData","useState","coerceArray","arg","useFormMeta","FormMetaProvider","attributesReducer","state","attribute","newState","Set","add","FormMetaWrapper","children","model","railsAttributes","nestedAttributes","addAttribute","useReducer","metaValues","_jsx","useInertiaForm","rememberKeyOrInitialValues","maybeInitialValues","getFormArguments","useCallback","transformedData","defaults","setDefaults","setData","rootModelKey","useMemo","keys","errors","setErrors","hasErrors","setHasErrors","rewriteErrorKeys","newErrors","processing","setProcessing","progress","setProgress","wasSuccessful","setWasSuccessful","recentlySuccessful","setRecentlySuccessful","cancelToken","useRef","recentlySuccessfulTimeoutId","transformRef","isMounted","useEffect","current","onChangeRef","onChangeArgsRef","meta","e","submit","method","url","options","async","_options","onCancelToken","token","onBefore","visit","clearTimeout","onStart","onProgress","event","onSuccess","page","setTimeout","onError","onCancel","onFinish","axios","onUploadProgress","progressEvent","then","response","catch","error","finally","router","delete","clearErrors","fields","arrFields","reduce","carry","field","String","isDirty","isEqual","transform","callback","onChange","keyOrData","maybeValue","set","Function","getData","unsetData","fieldOrFields","reset","setError","getError","post","put","patch","cancel","useForm","FormProvider","Form","to","resetAfterSubmit","remember","filter","onSubmit","props","filteredData","form","contextValueObject","shouldSubmit","handleSubmit","preventDefault","stopPropagation","submitOptions","URL","window","location","href","searchParams","WrappedForm","useNestedAttribute","NestedAttributeProvider","NestedFields","inputModel","nested","child","cloneElement","inputStrategy","name","inputId","inputName","useInertiaInput","defaultValue","errorKey","strategy","clearErrorsOnChange","usedModel","initializingRef","inputValue","usedErrorKey","setValue","Input","component","type","handleChange","target","checked","Element","id","Submit","forwardRef","disabled","Component","requiredFields","ref","hasEmptyRequiredFields","some","memo","useDynamicInputs","emptyData","formModel","nestedModel","handleAddInputs","override","formData","node","merge","push","assign","handleRemoveInputs","record","generatePaths","_","addInput","removeInput","paths","DynamicInputs","addInputButton","removeInputButton","_jsxs","_Fragment","onClick"],"mappings":"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