{"version":3,"sources":["../src/api/useMaskInput.ts","../src/api/useHookFormMask.ts","../src/api/withTanStackFormMask.ts","../src/api/useTanStackFormMask.ts","../src/api/withHookFormMask.ts"],"names":["useRef","useCallback","getUnmaskedValue","resolveInputRef","withMask","useEffect","isServer_default","setUnmaskedValue","useLayoutEffect","useMemo","makeMaskCacheKey","applyMaskToElement","flow","setPrevRef","result","maskedRef","refCache"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n  useCallback, useEffect, useRef,\n} from 'react';\n\nimport { resolveInputRef } from '../core';\nimport withMask from './withMask';\nimport isServer from '../utils/isServer';\nimport { getUnmaskedValue, setUnmaskedValue } from '../utils';\n\nimport type {\n  Input, Mask, Options, UseMaskInputReturn,\n} from '../types';\n\ninterface UseMaskInputOptions {\n  mask: Mask;\n  register?: (element: HTMLElement) => void;\n  options?: Options;\n}\n\n/**\n * React hook for applying input masks to form elements.\n * Works with Ant Design and other wrapped components too.\n *\n * @param props - Configuration object\n * @param props.mask - The mask pattern to apply\n * @param props.register - Optional callback that receives the element\n * @param props.options - Optional mask configuration options\n * @returns A ref callback function to attach to the input element\n */\nexport default function useMaskInput(props: UseMaskInputOptions): UseMaskInputReturn {\n  const { mask, register, options } = props;\n  const ref = useRef<HTMLInputElement | null>(null);\n  const maskRef = useRef(mask);\n  const optionsRef = useRef(options);\n  const unmaskedValue = useCallback(() => getUnmaskedValue(ref.current), []);\n\n  const refCallback = useCallback((input: Input | null): void => {\n    if (!input) {\n      ref.current = null;\n      return;\n    }\n\n    ref.current = resolveInputRef(input);\n    withMask(maskRef.current, optionsRef.current)(ref.current);\n  }, []);\n\n  useEffect(() => {\n    if (isServer || !ref.current || !register) return;\n    register(ref.current);\n  }, [register]);\n\n  if (isServer) {\n    const noop = (() => {\n      // server doesn't have dom, so just do nothing\n    }) as unknown as UseMaskInputReturn;\n\n    return setUnmaskedValue(noop, () => '');\n  }\n\n  return setUnmaskedValue(refCallback, unmaskedValue);\n}\n","import { useLayoutEffect, useMemo, useRef } from 'react';\n\nimport { applyMaskToElement } from '../core';\nimport {\n  flow, getUnmaskedValue, makeMaskCacheKey, setPrevRef, setUnmaskedValue,\n} from '../utils';\n\nimport type { RefCallback } from 'react';\nimport type {\n  FieldValues, Path,\n  RegisterOptions,\n  UseFormRegister,\n} from 'react-hook-form';\n\nimport type { Mask, Options, UseHookFormMaskReturn } from '../types';\n\ninterface CacheEntry {\n  stableRef: RefCallback<HTMLElement | null>;\n  element: HTMLElement | null;\n  latestRHFRef?: RefCallback<HTMLElement | null>;\n  syncedRHFRef?: RefCallback<HTMLElement | null>;\n}\n\n/**\n * Creates a masked version of React Hook Form's register function.\n * Takes react-hook-form's register and adds automatic masking. Like an upgrade.\n *\n * @template T - The form data type\n * @template D - The register options type\n * @param registerFn - The register function from useForm hook\n * @returns A function that registers a field with mask support\n */\nexport default function useHookFormMask<\n  T extends FieldValues, D extends RegisterOptions,\n>(registerFn: UseFormRegister<T>): ((fieldName: Path<T>, mask: Mask, options?: (\n  D & Options) | Options | D) => UseHookFormMaskReturn<T>) {\n  const entryCacheRef = useRef(new Map<string, CacheEntry>());\n\n  useLayoutEffect(() => {\n    entryCacheRef.current.forEach((entry) => {\n      const currentEntry = entry;\n      if (!currentEntry.element || !currentEntry.latestRHFRef) return;\n\n      // After reset(), RHF gives us a new ref callback. React won't call it\n      // because our outward ref identity stays stable, so we replay it here.\n      if (currentEntry.latestRHFRef !== currentEntry.syncedRHFRef) {\n        currentEntry.latestRHFRef(currentEntry.element);\n        currentEntry.syncedRHFRef = currentEntry.latestRHFRef;\n      }\n    });\n  });\n\n  return useMemo(() => {\n    // registerFn identity changed, so drop cached refs bound to the previous\n    // register lifecycle.\n    entryCacheRef.current = new Map<string, CacheEntry>();\n\n    return (fieldName: Path<T>, mask: Mask, options?: (\n      D & Options) | Options | D): UseHookFormMaskReturn<T> => {\n      if (!registerFn) throw new Error('registerFn is required');\n\n      const registerReturn = registerFn(fieldName, options as Options);\n      const { ref } = registerReturn as UseHookFormMaskReturn<T>;\n\n      const cacheKey = makeMaskCacheKey(fieldName, mask);\n\n      let entry = entryCacheRef.current.get(cacheKey);\n      if (!entry) {\n        const nextEntry: CacheEntry = {\n          element: null,\n          latestRHFRef: ref,\n          syncedRHFRef: undefined,\n          stableRef: null as unknown as RefCallback<HTMLElement | null>,\n        };\n\n        const applyMaskToRef = (_ref: HTMLElement | null) => {\n          nextEntry.element = _ref;\n          if (_ref) applyMaskToElement(_ref, mask, options as Options);\n          return _ref;\n        };\n\n        nextEntry.stableRef = (\n          nextEntry.latestRHFRef\n            ? flow(applyMaskToRef, (_ref: HTMLElement | null) => nextEntry.latestRHFRef?.(_ref))\n            : applyMaskToRef\n        ) as RefCallback<HTMLElement | null>;\n\n        entry = nextEntry;\n        entryCacheRef.current.set(cacheKey, nextEntry);\n      } else {\n        entry.latestRHFRef = ref;\n      }\n\n      const result = {\n        ...registerReturn,\n        ref: entry.stableRef,\n      } as UseHookFormMaskReturn<T>;\n      setUnmaskedValue(result, () => getUnmaskedValue(entry?.element ?? null));\n\n      setPrevRef(result, ref);\n\n      return result;\n    };\n  }, [registerFn]);\n}\n","import { applyMaskToElement } from '../core';\nimport {\n  getUnmaskedValue, makeMaskCacheKey, setPrevRef, setUnmaskedValue,\n} from '../utils';\n\nimport type { RefCallback } from 'react';\n\nimport type {\n  Mask, Options, TanStackFormInputProps, UseTanStackFormMaskReturn,\n} from '../types';\n\ntype MaskedRefCallback = RefCallback<HTMLElement | null> & {\n  currentElement?: HTMLElement | null;\n};\n\nconst refCache = new WeakMap<\n  RefCallback<HTMLElement | null>,\n  Map<string, RefCallback<HTMLElement | null>>\n>();\n\n/**\n * Enhances TanStack Form-compatible input props with mask support.\n * Works with objects returned by field.getInputProps().\n */\nexport default function withTanStackFormMask<T extends TanStackFormInputProps>(\n  inputProps: T,\n  mask: Mask,\n  options?: Options,\n): UseTanStackFormMaskReturn<T> {\n  const { ref } = inputProps;\n\n  if (!ref) {\n    let currentElement: HTMLElement | null = null;\n    const result = {\n      ...inputProps,\n      ref: ((input: HTMLElement | null) => {\n        currentElement = input;\n        if (input) applyMaskToElement(input, mask, options);\n      }) as RefCallback<HTMLElement | null>,\n    } as unknown as UseTanStackFormMaskReturn<T>;\n    setUnmaskedValue(result, () => getUnmaskedValue(currentElement));\n\n    setPrevRef(result, ref);\n    return result;\n  }\n\n  if (!refCache.has(ref)) {\n    refCache.set(ref, new Map());\n  }\n\n  const maskCache = refCache.get(ref);\n  const cacheKey = makeMaskCacheKey(inputProps.name ?? '', mask);\n\n  if (!maskCache?.has(cacheKey)) {\n    const maskedRef = ((input: HTMLElement | null) => {\n      maskedRef.currentElement = input;\n      if (input) applyMaskToElement(input, mask, options);\n      ref(input);\n    }) as MaskedRefCallback;\n\n    maskCache?.set(cacheKey, maskedRef);\n  }\n\n  const maskedRef = maskCache?.get(cacheKey) as MaskedRefCallback | undefined;\n  const result = {\n    ...inputProps,\n    ref: maskedRef,\n  } as unknown as UseTanStackFormMaskReturn<T>;\n  setUnmaskedValue(result, () => getUnmaskedValue(maskedRef?.currentElement ?? null));\n\n  setPrevRef(result, ref);\n  return result;\n}\n","import { useMemo } from 'react';\n\nimport withTanStackFormMask from './withTanStackFormMask';\n\nimport type { Mask, Options, TanStackFormInputProps, UseTanStackFormMaskReturn } from '../types';\n\n/**\n * Creates a helper to mask TanStack Form-compatible input props.\n * Designed for objects returned by field.getInputProps().\n */\nexport default function useTanStackFormMask(): <T extends TanStackFormInputProps>(\n  mask: Mask,\n  inputProps: T,\n  options?: Options,\n) => UseTanStackFormMaskReturn<T> {\n  return useMemo(\n    () => <T extends TanStackFormInputProps>(\n      mask: Mask,\n      inputProps: T,\n      options?: Options,\n    ): UseTanStackFormMaskReturn<T> => withTanStackFormMask(inputProps, mask, options),\n    [],\n  );\n}\n","import { applyMaskToElement } from '../core';\nimport {\n  getUnmaskedValue, makeMaskCacheKey, setPrevRef, setUnmaskedValue,\n} from '../utils';\n\nimport type { RefCallback } from 'react';\nimport type { FieldValues } from 'react-hook-form';\n\nimport type {\n  Mask, Options, UseFormRegisterReturn, UseHookFormMaskReturn,\n} from '../types';\n\ntype MaskedRefCallback = RefCallback<HTMLElement | null> & {\n  currentElement?: HTMLElement | null;\n};\n\nconst refCache = new WeakMap<\n  RefCallback<HTMLElement | null>,\n  Map<string, RefCallback<HTMLElement | null>>\n>();\n\n/**\n * Enhances a React Hook Form register return object with mask support.\n * Takes an already registered field and adds mask to it.\n * Useful when you registered the field before.\n *\n * @param register - The register return object from React Hook Form\n * @param mask - The mask pattern to apply\n * @param options - Optional mask configuration options\n * @returns A new register return object with mask applied\n */\nexport default function withHookFormMask(\n  register: UseFormRegisterReturn,\n  mask: Mask,\n  options?: Options,\n): UseHookFormMaskReturn<FieldValues> {\n  const { ref } = register as UseHookFormMaskReturn<FieldValues>;\n\n  // null ref — nothing to cache, return as-is.\n  if (!ref) {\n    const result = {\n      ...register,\n      ref: null as unknown as RefCallback<HTMLElement | null>,\n    } as UseHookFormMaskReturn<FieldValues>;\n    setUnmaskedValue(result, () => '');\n    setPrevRef(result, ref);\n    return result;\n  }\n\n  if (!refCache.has(ref)) {\n    refCache.set(ref, new Map());\n  }\n  const maskCache = refCache.get(ref);\n  const cacheKey = makeMaskCacheKey(register.name, mask);\n\n  if (!maskCache?.has(cacheKey)) {\n    const maskedRef = ((input: HTMLElement | null) => {\n      maskedRef.currentElement = input;\n      if (input) applyMaskToElement(input, mask, options);\n      return ref(input);\n    }) as MaskedRefCallback;\n\n    maskCache?.set(cacheKey, maskedRef);\n  }\n\n  const maskedRef = maskCache?.get(cacheKey) as MaskedRefCallback | undefined;\n  const result = {\n    ...register,\n    ref: maskedRef,\n  } as UseHookFormMaskReturn<FieldValues>;\n  setUnmaskedValue(result, () => getUnmaskedValue(maskedRef?.currentElement ?? null));\n\n  setPrevRef(result, ref);\n\n  return result;\n}\n"]}