{"version":3,"file":"react-server.esm.mjs","sources":["../src/utils/is-undefined.ts","../src/logic/get-checkbox-value.ts","../src/utils/is-date-object.ts","../src/utils/is-null-or-undefined.ts","../src/utils/is-object.ts","../src/utils/is-plain-object.ts","../src/utils/is-web.ts","../src/utils/clone-object.ts","../src/utils/convert-to-array-payload.ts","../src/utils/create-subject.ts","../src/utils/is-primitive.ts","../src/utils/deep-equal.ts","../src/utils/compact.ts","../src/utils/get.ts","../src/utils/is-boolean.ts","../src/utils/is-check-box-input.ts","../src/utils/is-empty-object.ts","../src/utils/is-file-input.ts","../src/utils/is-function.ts","../src/utils/is-html-element.ts","../src/utils/is-multiple-select.ts","../src/utils/is-radio-input.ts","../src/utils/is-radio-or-checkbox.ts","../src/utils/is-string.ts","../src/utils/live.ts","../src/utils/object-has-function.ts","../src/utils/is-key.ts","../src/utils/string-to-path.ts","../src/utils/set.ts","../src/utils/set-observable.ts","../src/utils/unset.ts","../src/utils/unset-observable.ts","../src/logic/get-dirty-fields.ts","../src/logic/get-event-value.ts","../src/logic/get-field-value-as.ts","../src/logic/get-radio-value.ts","../src/logic/get-field-value.ts"],"sourcesContent":["export const isUndefined = (val: unknown): val is undefined => val === undefined;\n","import { isUndefined } from '../utils/is-undefined';\n\ntype CheckboxFieldResult = {\n    isValid: boolean;\n    value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n    value: false,\n    isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport const getCheckboxValue = (options?: HTMLInputElement[]): CheckboxFieldResult => {\n    if (Array.isArray(options)) {\n        if (options.length > 1) {\n            const values = options\n                .filter((option) => option && option.checked && !option.disabled)\n                .map((option) => option.value);\n            return { value: values, isValid: !!values.length };\n        }\n\n        return options[0].checked && !options[0].disabled\n            ? // @ts-expect-error expected to work in the browser\n              options[0].attributes && !isUndefined(options[0].attributes.value)\n                ? isUndefined(options[0].value) || options[0].value === ''\n                    ? validResult\n                    : { value: options[0].value, isValid: true }\n                : validResult\n            : defaultResult;\n    }\n\n    return defaultResult;\n};\n","export const isDateObject = (value: unknown): value is Date => value instanceof Date;\n","export const isNullOrUndefined = (value: unknown): value is null | undefined => value == null;\n","import { isDateObject } from './is-date-object';\nimport { isNullOrUndefined } from './is-null-or-undefined';\n\nexport const isObjectType = (value: unknown): value is object => typeof value === 'object';\n\nexport const isObject = <T extends object>(value: unknown): value is T =>\n    !isNullOrUndefined(value) &&\n    !Array.isArray(value) &&\n    isObjectType(value) &&\n    !isDateObject(value);\n","import { isObject } from './is-object';\n\nexport const isPlainObject = (tempObject: object): boolean => {\n    const prototypeCopy = tempObject.constructor?.prototype;\n\n    return (\n        isObject(prototypeCopy) &&\n        Object.prototype.hasOwnProperty.call(prototypeCopy, 'isPrototypeOf')\n    );\n};\n","export const isWeb =\n    typeof window !== 'undefined' &&\n    typeof window.HTMLElement !== 'undefined' &&\n    typeof document !== 'undefined';\n","import { isObject } from './is-object';\nimport { isPlainObject } from './is-plain-object';\nimport { isWeb } from './is-web';\n\nexport function cloneObject<T>(data: T): T {\n    let copy: any;\n    const isArray = Array.isArray(data);\n    const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;\n\n    if (data instanceof Date) {\n        copy = new Date(data);\n    } else if (data instanceof Set) {\n        copy = new Set(data);\n    } else if (\n        !(isWeb && (data instanceof Blob || isFileListInstance)) &&\n        (isArray || isObject(data))\n    ) {\n        copy = isArray ? [] : {};\n\n        if (!isArray && !isPlainObject(data)) {\n            copy = data;\n        } else {\n            for (const key in data) {\n                if (Object.prototype.hasOwnProperty.call(data, key)) {\n                    copy[key] = cloneObject(data[key]);\n                }\n            }\n        }\n    } else {\n        return data;\n    }\n\n    return copy;\n}\n","export const convertToArrayPayload = <T>(value: T | Array<T>): Array<T> =>\n    Array.isArray(value) ? value : [value];\n","import type { Noop } from '../types';\n\nexport type Observer<T> = {\n    next: (value: T) => void;\n};\n\nexport type Subscription = {\n    unsubscribe: Noop;\n};\n\nexport type Subject<T> = {\n    readonly observers: Observer<T>[];\n    subscribe: (value: Observer<T>) => Subscription;\n    unsubscribe: Noop;\n} & Observer<T>;\n\nexport const createSubject = <T>(): Subject<T> => {\n    let _observers: Observer<T>[] = [];\n\n    const next = (value: T): void => {\n        for (const observer of _observers) {\n            observer.next?.(value);\n        }\n    };\n\n    const subscribe = (observer: Observer<T>): Subscription => {\n        _observers.push(observer);\n\n        return {\n            unsubscribe: (): void => {\n                _observers = _observers.filter((o) => o !== observer);\n            },\n        };\n    };\n\n    const unsubscribe = (): void => {\n        _observers = [];\n    };\n\n    return {\n        get observers(): Array<Observer<T>> {\n            return _observers;\n        },\n        next,\n        subscribe,\n        unsubscribe,\n    };\n};\n","import type { Primitive } from '../types';\n\nimport { isNullOrUndefined } from './is-null-or-undefined';\nimport { isObjectType } from './is-object';\n\nexport const isPrimitive = (value: unknown): value is Primitive =>\n    isNullOrUndefined(value) || !isObjectType(value);\n","import { isDateObject } from './is-date-object';\nimport { isObject } from './is-object';\nimport { isPrimitive } from './is-primitive';\n\nexport function deepEqual(object1: any, object2: any) {\n    if (isPrimitive(object1) || isPrimitive(object2)) {\n        return object1 === object2;\n    }\n\n    if (isDateObject(object1) && isDateObject(object2)) {\n        return object1.getTime() === object2.getTime();\n    }\n\n    const keys1 = Object.keys(object1);\n    const keys2 = Object.keys(object2);\n\n    if (keys1.length !== keys2.length) {\n        return false;\n    }\n\n    for (const key of keys1) {\n        const val1 = object1[key];\n\n        if (!keys2.includes(key)) {\n            return false;\n        }\n\n        if (key !== 'ref') {\n            const val2 = object2[key];\n\n            if (\n                (isDateObject(val1) && isDateObject(val2)) ||\n                (isObject(val1) && isObject(val2)) ||\n                (Array.isArray(val1) && Array.isArray(val2))\n                    ? !deepEqual(val1, val2)\n                    : val1 !== val2\n            ) {\n                return false;\n            }\n        }\n    }\n\n    return true;\n}\n","export const compact = <TValue>(value: TValue[]): TValue[] =>\n    Array.isArray(value) ? value.filter(Boolean) : [];\n","import { compact } from './compact';\nimport { isNullOrUndefined } from './is-null-or-undefined';\nimport { isObject } from './is-object';\nimport { isUndefined } from './is-undefined';\n\nexport const get = <T>(object: T, path?: string | null, defaultValue?: unknown): any => {\n    if (!path || !isObject(object)) {\n        return defaultValue;\n    }\n\n    const result = compact(path.split(/[,[\\].]+?/)).reduce(\n        (r, key) => (isNullOrUndefined(r) ? r : r[key as keyof object]),\n        object,\n    );\n\n    return isUndefined(result) || result === object\n        ? isUndefined(object[path as keyof T])\n            ? defaultValue\n            : object[path as keyof T]\n        : result;\n};\n","export const isBoolean = (value: unknown): value is boolean => typeof value === 'boolean';\n","import type { FieldElement } from '../types';\n\nexport const isCheckBoxInput = (element: FieldElement): element is HTMLInputElement =>\n    element.type === 'checkbox';\n","import type { EmptyObject } from '../types';\n\nimport { isObject } from './is-object';\n\nexport const isEmptyObject = (value: unknown): value is EmptyObject =>\n    isObject(value) && !Object.keys(value).length;\n","import { FieldElement } from '../types';\n\nexport const isFileInput = (element: FieldElement): element is HTMLInputElement =>\n    element.type === 'file';\n","export const isFunction = (value: unknown): value is () => void => typeof value === 'function';\n","import { isWeb } from './is-web';\n\nexport const isHTMLElement = (value: unknown): value is HTMLElement => {\n    if (!isWeb) {\n        return false;\n    }\n\n    const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n\n    return (\n        value instanceof (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n    );\n};\n","import { FieldElement } from '../types';\n\nexport const isMultipleSelect = (element: FieldElement): element is HTMLSelectElement =>\n    element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nexport const isRadioInput = (element: FieldElement): element is HTMLInputElement =>\n    element.type === 'radio';\n","import { FieldElement } from '../types';\n\nimport { isCheckBoxInput } from './is-check-box-input';\nimport { isRadioInput } from './is-radio-input';\n\nexport const isRadioOrCheckbox = (ref: FieldElement): ref is HTMLInputElement =>\n    isRadioInput(ref) || isCheckBoxInput(ref);\n","export const isString = (value: unknown): value is string => typeof value === 'string';\n","import { Ref } from '../types';\n\nimport { isHTMLElement } from './is-html-element';\n\nexport const live = (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import { isFunction } from './is-function';\n\nexport const objectHasFunction = <T>(data: T): boolean => {\n    for (const key in data) {\n        if (isFunction(data[key])) {\n            return true;\n        }\n    }\n    return false;\n};\n","export const isKey = (value: string) => /^\\w*$/.test(value);\n","import { compact } from './compact';\n\nexport const stringToPath = (input: string): string[] =>\n    compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import type { FieldPath, FieldValues } from '../types';\n\nimport { isKey } from './is-key';\nimport { isObject } from './is-object';\nimport { stringToPath } from './string-to-path';\n\nexport const set = (object: FieldValues, path: FieldPath<FieldValues>, value?: unknown) => {\n    let updatedObject = object;\n    let index = -1;\n    const tempPath = isKey(path) ? [path] : stringToPath(path);\n    const length = tempPath.length;\n    const lastIndex = length - 1;\n\n    while (++index < length) {\n        const key = tempPath[index];\n        let newValue = value;\n\n        if (index !== lastIndex) {\n            const objValue = updatedObject[key];\n            newValue =\n                isObject(objValue) || Array.isArray(objValue)\n                    ? objValue\n                    : !Number.isNaN(+tempPath[index + 1])\n                      ? []\n                      : {};\n        }\n\n        if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n            return;\n        }\n\n        updatedObject[key] = newValue;\n        updatedObject = updatedObject[key];\n    }\n\n    return updatedObject;\n};\n","import { isObservable, Observable } from '@legendapp/state';\n\nimport type { FieldPath, FieldValues } from '../types';\n\nimport { isKey } from './is-key';\nimport { isObject } from './is-object';\nimport { stringToPath } from './string-to-path';\n\nexport const setObservable = (\n    object: Observable,\n    path: FieldPath<FieldValues>,\n    value?: unknown,\n) => {\n    let index = -1;\n    const tempPath = isKey(path) ? [path] : stringToPath(path);\n    const length = tempPath.length;\n    const lastIndex = length - 1;\n\n    while (++index < length) {\n        const key = tempPath[index];\n        let newValue = value;\n\n        if (index !== lastIndex) {\n            let objValue = object[key];\n\n            if (isObservable(objValue)) {\n                objValue = objValue.get();\n            }\n\n            newValue =\n                isObject(objValue) || Array.isArray(objValue)\n                    ? objValue\n                    : !Number.isNaN(+tempPath[index + 1])\n                      ? []\n                      : {};\n        }\n\n        if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n            return;\n        }\n\n        if (isObservable(object[key])) {\n            object[key].set(newValue);\n        }\n\n        object = object[key] as Observable<FieldValues>;\n    }\n\n    return object;\n};\n","import { isEmptyObject } from './is-empty-object';\nimport { isKey } from './is-key';\nimport { isObject } from './is-object';\nimport { isUndefined } from './is-undefined';\nimport { stringToPath } from './string-to-path';\n\nexport function baseGet(object: any, updatePath: (string | number)[]) {\n    const length = updatePath.slice(0, -1).length;\n    let index = 0;\n\n    while (index < length) {\n        object = isUndefined(object) ? index++ : object[updatePath[index++]];\n    }\n\n    return object;\n}\n\nexport function isEmptyArray(obj: unknown[]) {\n    for (const key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key) && !isUndefined(obj[key])) {\n            return false;\n        }\n    }\n    return true;\n}\n\nexport function unset(object: any, path: string | (string | number)[]) {\n    const paths = Array.isArray(path) ? path : isKey(path) ? [path] : stringToPath(path);\n\n    const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n    const index = paths.length - 1;\n    const key = paths[index];\n\n    if (childObject) {\n        delete childObject[key];\n    }\n\n    if (\n        index !== 0 &&\n        ((isObject(childObject) && isEmptyObject(childObject)) ||\n            (Array.isArray(childObject) && isEmptyArray(childObject)))\n    ) {\n        unset(object, paths.slice(0, -1));\n    }\n\n    return object;\n}\n","import { isObservable, Observable } from '@legendapp/state';\n\nimport { isEmptyObject } from './is-empty-object';\nimport { isKey } from './is-key';\nimport { isObject } from './is-object';\nimport { stringToPath } from './string-to-path';\nimport { baseGet, isEmptyArray } from './unset';\n\nexport function unsetObservable(object: Observable, path: string | (string | number)[]) {\n    const paths = Array.isArray(path) ? path : isKey(path) ? [path] : stringToPath(path);\n\n    const childObject$ = paths.length === 1 ? object : baseGet(object, paths);\n    const childObject = childObject$.peek();\n\n    const index = paths.length - 1;\n    const key = paths[index];\n\n    if (childObject && isObservable(childObject$[key])) {\n        Array.isArray(childObject) ? childObject$[key].set(undefined) : childObject$[key].delete();\n    }\n\n    if (\n        index !== 0 &&\n        ((isObject(childObject) && isEmptyObject(childObject)) ||\n            (Array.isArray(childObject) && isEmptyArray(childObject)))\n    ) {\n        unsetObservable(object, paths.slice(0, -1));\n    }\n\n    return object;\n}\n","import {\n    deepEqual,\n    isNullOrUndefined,\n    isObject,\n    isPrimitive,\n    isUndefined,\n    objectHasFunction,\n} from '../utils';\n\nfunction markFieldsDirty<T>(data: T, fields: Record<string, any> = {}) {\n    const isParentNodeArray = Array.isArray(data);\n\n    if (isObject(data) || isParentNodeArray) {\n        for (const key in data) {\n            if (\n                Array.isArray(data[key]) ||\n                (isObject(data[key]) && !objectHasFunction(data[key]))\n            ) {\n                fields[key] = Array.isArray(data[key]) ? [] : {};\n                markFieldsDirty(data[key], fields[key]);\n            } else if (!isNullOrUndefined(data[key])) {\n                fields[key] = true;\n            }\n        }\n    }\n\n    return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues<T>(\n    data: T,\n    formValues: T,\n    dirtyFieldsFromValues: Record<\n        Extract<keyof T, string>,\n        ReturnType<typeof markFieldsDirty> | boolean\n    >,\n) {\n    const isParentNodeArray = Array.isArray(data);\n\n    if (isObject(data) || isParentNodeArray) {\n        for (const key in data) {\n            if (\n                Array.isArray(data[key]) ||\n                (isObject(data[key]) && !objectHasFunction(data[key]))\n            ) {\n                if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {\n                    dirtyFieldsFromValues[key] = Array.isArray(data[key])\n                        ? markFieldsDirty(data[key], [])\n                        : { ...markFieldsDirty(data[key]) };\n                } else {\n                    getDirtyFieldsFromDefaultValues(\n                        data[key],\n                        isNullOrUndefined(formValues) ? {} : formValues[key],\n                        dirtyFieldsFromValues[key],\n                    );\n                }\n            } else {\n                dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n            }\n        }\n    }\n\n    return dirtyFieldsFromValues;\n}\n\nexport const getDirtyFields = <T>(defaultValues: T, formValues: T) =>\n    getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n","import { isCheckBoxInput, isObject } from '../utils';\n\ntype Event = { target: { checked: boolean; value: string; name: string } };\n\nexport const getEventValue = (event: unknown): unknown =>\n    isObject(event) && (event as Event).target\n        ? isCheckBoxInput((event as Event).target)\n            ? (event as Event).target.checked\n            : (event as Event).target.value\n        : event;\n","import { Field, NativeFieldValue } from '../types';\nimport { isString, isUndefined } from '../utils';\n\nexport const getFieldValueAs = <T extends NativeFieldValue>(\n    value: T,\n    { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n    isUndefined(value)\n        ? value\n        : valueAsNumber\n          ? value === ''\n              ? NaN\n              : value\n                ? +value\n                : value\n          : valueAsDate && isString(value)\n            ? new Date(value)\n            : setValueAs\n              ? setValueAs(value)\n              : value;\n","type RadioFieldResult = {\n    isValid: boolean;\n    value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n    isValid: false,\n    value: null,\n};\n\nexport const getRadioValue = (options?: HTMLInputElement[]): RadioFieldResult =>\n    Array.isArray(options)\n        ? options.reduce(\n              (previous, option): RadioFieldResult =>\n                  option && option.checked && !option.disabled\n                      ? {\n                            isValid: true,\n                            value: option.value,\n                        }\n                      : previous,\n              defaultReturn,\n          )\n        : defaultReturn;\n","import { Field } from '../types';\nimport {\n    isCheckBoxInput,\n    isFileInput,\n    isMultipleSelect,\n    isRadioInput,\n    isUndefined,\n} from '../utils';\n\nimport { getCheckboxValue } from './get-checkbox-value';\nimport { getFieldValueAs } from './get-field-value-as';\nimport { getRadioValue } from './get-radio-value';\n\nexport function getFieldValue(_f: Field['_f']) {\n    const ref = _f.ref;\n\n    if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n        return;\n    }\n\n    if (isFileInput(ref)) {\n        return ref.files;\n    }\n\n    if (isRadioInput(ref)) {\n        return getRadioValue(_f.refs).value;\n    }\n\n    if (isMultipleSelect(ref)) {\n        return [...ref.selectedOptions].map(({ value }) => value);\n    }\n\n    if (isCheckBoxInput(ref)) {\n        return getCheckboxValue(_f.refs).value;\n    }\n\n    return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n"],"names":[],"mappings":"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"}